这个奇怪的javascript表达式的解释是什么?
What would be the explanation for the strange javascript expression?
在JavaScript中,下面这行代码给出的答案是1
+ ! {} [true]
我不明白怎么回事?
{}
为空对象。
所以{}[0]
或{}[true]
或{}[1]
等。are undefined
添加!
将{}[0]
转换为boolean
,返回相反的结果。(undefined
变成false
,因此返回true
)。
添加+
将其转换为int
,因此true
成为1
。
我试着用代码来解释。
var emptyObject = {};
valueOfUndefinedKey = emptyObject['key_not_exists'],
itsNot = !valueOfUndefinedKey ,
finalConvertedNumber = +itsNot ;
console.log(
emptyObject,
valueOfUndefinedKey,
itsNot,
finalConvertedNumber
)
打印
Object {}
undefined
true
1
相关文章:
- 这是什么 ==- javascript 运算符
- 我的单元测试选项是什么
- 打破承诺链的好方法是什么
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Javascript中的空白是什么
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 在JavaScript中拆分日期字符串的更好方法是什么
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 对这种与document.domain和CORS相关的不一致行为的解释是什么
- 这个奇怪的javascript表达式的解释是什么?
- 这个JavaScript的英文解释是什么?
- 解释嵌套javascript对象属性访问器字符串的最快方法是什么?
- 这种行为的解释是什么?(什么时候创建函数?)
- 如何解释输出-浏览器日志?下面代码中的确切错误原因是什么?我用的是旧的angular.min.js吗?
- 谁能解释一下这是什么?bit在这个Javascript中
- regexp对象的一个很好的解释是什么?
- 谁能解释一下在页面中自动更新最新帖子的最好方法是什么?
- extjs中的mon是什么?如何在Extjs中解释mon ?
- 这个 ES6 函数的含义或解释是什么?
- 有人能解释一下下面的代码吗?计算文档中页数的行是什么?