微醺岁月
微醺岁月
谢谢推荐,最近1024邀请码权限又变严厉了。。。要开启手機兩步驗證功能才能购买@DaoqiuDong
沙发,有问题欢迎大家提出,一起交流,共同进步。
楼主竟然是鄙人参考这篇文章的原作者--JavaScript中,{}+{}等于多少?😄,久仰久仰,一定向前辈多多取经。 @justjavac
{}+{}这个在火狐很正常还是empty block,但是在chrome就比较诡异了,两个{}都被解析为对象字面量。@wenrenzhizui
{}+{}在chrome和firfox结果不同也知道原理了,看到大神贴源码了,就是解析的机制不一样造成了,之前也猜到了 {}+{}:chrome:"[object Object][object Object]" {}+{}=>firfox:NaN http://stackoverflow.com/questions/17268468/why-is-nan-only-on-the-client-side-why-not-in-node-js
多谢提醒,确实是这样的,可能写的时候疏忽了,ECMAScript规范确实是要调用ToNumber()方法,写的时候随意了,少说了一句关键的,辛苦了,看的这么仔细 。@kkxujq
这个得去深究v8引擎的源码了,对{}+{}和{}+1的解读,个人认为火狐对这个解析比较一致,前面的{}都是代码块,而不像chrome这么二义性,让人摸不着头脑。@mqyqingfeng
早期的{a:1,b:2}确实在chrome确实也报错,我在Stack Overflow也看到这种提问,后来nodejs用了v8引擎,修复了这个bug,这其实也不算bug,应该是修改了之前的规则,ECMAScript规范对于{}何时解析为代码块,何时解析为对象字面量在这一块好像也没特别明确的说明。 Chrome对于首是"{"尾是"}"的表达式自动添加了括号,我赞同这个说明,目前看到解释这个现象最好的方法。@mqyqingfeng
感觉横跨了几个世纪,搬砖搬醒了么 @MuyePeikon
在chrome的控制台发现+010竟然是8,上面引用的资料貌似有点老