摘要:问题高级程序设计第版第页部分写到首先,任何涉及的操作例如,都会返回。这一点写错了,加性操作符就是个特例加性操作符中如果有一个操作数是字符串,即便有一个,也会将其转为字符串进行拼接。而对于减性操作符,书中所写是对的
1. 基本类型与引用类型
牛客网上的一个题:
var arr=[{a:1},{}]; arr.forEach(function(item,idx){ item.b=idx; });
执行完上面代码后,arr 的值是?
觉得 forEach 方法中的 item 参数是按值传递,所以不会改变原来的 arr,答案为:[{a:1},{}] 。正确答案是:[{a:1, b:0},{b:1}] 。这里忽略了一个重要的点,即函数参数虽然是按值传递,不是按引用传递,但是基本类型和引用类型本身的差别被忽略了。
基本类型占用的内存空间不大,所以把变量 a 赋给 b,是把 a 的值拷贝一份给b,a、b 所在的内存空间是独立的,所以修改 a 不会影响 b:
var a = 1; var b = a; a = 2; a; // 2 b; // 1
但是引用类型就不一样了,因为引用类型存储的内容可能很多,比如将对象 a 赋值给对象 b,如果是简单拷贝一遍内容,可能会带来很大的内存开销,所以这种情况,对象a 和 b 实际上指向同一个内存空间,赋值操作实际上是将 a 的内存地址复制一份给 b,所以 a 对象的属性改变也会影响到 b 对象:
var obja = { a: 1, b: 2 } var objb = obja obja.a = 2; obja; // {a:2, b:2} objb; // {a:2, b:2}
那么就很好理解啦,forEach 中的参数 item 如果是一个引用类型,就要警惕啦,虽然是按值传递,但是传递的值是内存地址。
2. NaN问题<
首先,任何涉及NaN的操作(例如 NaN/10),都会返回NaN。
这一点写错了,加性操作符就是个特例:
console.log(NaN + "A"); // "NaNA" console.log(NaN + NaN); // NaN console.log(NaN + 1); // NaN
加性操作符中如果有一个操作数是字符串,即便有一个NaN,也会将其转为字符串进行拼接。
而对于减性操作符,书中所写是对的:
console.log(NaN - "A"); // NaN console.log(NaN - NaN); // NaN console.log(NaN - 1); // NaN
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/95941.html
摘要:如果我们能把不同路由对应的组件分割成不同的代码块,只在路由被访问的时候才加载对应的组件,这样就更加高效了。这样会大大提高首屏显示的速度,但是可能其他的页面的速度就会降下来。 一、 代码分割,让页面按需加载,加快首屏速率 vue.js构建单页应用虽然能通过路由来实现多页面效果,但是实际上打包后所有的代码都只有一个入口文件app.bundle.js,当项目变得十分庞大的时候,app.bun...
摘要:在系统的手机中,其实微信点击网页的图片会自动调用这个接口一次。然后在在下面进行微信的接口的调用判断是还是终端终端更新这个好像微信自己修复了,现在无论还是,如果不调用这个方法,微信自己不会去调用了。 1.微信网页开发调用jssdk时报permission denied 大致是两个原因 (1)首先注册时未将你所调用的接口名字添加至jsApiList (2)第二个就是你的这个公众号没有权限使...
摘要:遇到的一些坑问题手机端事件会有大约的延迟原因手机端事件,因为在事件触发之后,浏览器要判断用户是否会做出双击屏幕的操作,所以会等待来判断,再做出是否触发事件的处理,所以就会有的延迟解决方法使用事件来代替事件,如的事件和,还有我自己 遇到的一些坑 问题:手机端 click 事件会有大约 300ms 的延迟 原因:手机端事件 touchstart --> touchmove --...
摘要:遇到的一些坑问题手机端事件会有大约的延迟原因手机端事件,因为在事件触发之后,浏览器要判断用户是否会做出双击屏幕的操作,所以会等待来判断,再做出是否触发事件的处理,所以就会有的延迟解决方法使用事件来代替事件,如的事件和,还有我自己 遇到的一些坑 问题:手机端 click 事件会有大约 300ms 的延迟 原因:手机端事件 touchstart --> touchmove --...
阅读 1379·2023-04-25 16:45
阅读 1922·2021-11-17 09:33
阅读 2311·2021-09-27 14:04
阅读 918·2019-08-30 15:44
阅读 2636·2019-08-30 14:24
阅读 3417·2019-08-30 13:59
阅读 1693·2019-08-29 17:00
阅读 891·2019-08-29 15:33