{} + [] in Javascript
{} + [] in Javascript
本文关键字:in Javascript 更新时间:2023-09-26
可能的重复项:
CodeMash 2012 的"Wat"演讲中提到的这些奇怪的 JavaScript 行为有什么解释?
当我打字时
{} + []
在谷歌Chrome JavaScript控制台中,我得到
0
结果。但是,当我输入时
Function("return {} + []")()
我得到
"[object Object]"
结果。我认为这两个操作应该返回相同的结果,因为一个操作只是另一个操作的包装器。为什么它们返回不同的结果?
核心原因是{}
在语句上下文{ statement0; statement1 }
中的含义与在表达式上下文({ "property": value, ... })
中的含义不同。
{} + []
是一个块和一个一元比较运算符,所以与
{} // An empty block of statements.
(+ []) // Use of prefix operator +.
另一种是加号运算符的使用,当与两个对象一起使用时,它们连接起来,如
return String({}) + String([])
由于Array.prototype.toString
在逗号上连接数组,因此它类似于
return String({}) + [].join(",")
这减少到
return "[Object object]" + "";
最后到
return "[Object object]"
相关文章:
- Node.js's Buffer.writeFloatBE in Javascript
- write HTML in JavaScript
- SetTimeout and clearTimeout in Javascript
- TicTacToe minimax AI in Javascript
- Calculation in javascript
- "a" element in JavaScript
- Truthy & Falsy in Javascript
- How can I get and replace this in javascript ( jquery?
- Output in Javascript
- Eventlistener in javascript to jQuery
- Escaping/Unescaping html in javascript?
- {} + [] in Javascript
- document.getElementbyId in Javascript
- SharePoint 2010 SP.FileCreationInformation() in javascript c
- url in javascript
- Detect Mountain Lion (OS X 10.8) in javascript?
- document Object in JavaScript
- Error with this.id in Javascript
- DEC2Bin in JavaScript?
- drawImage in JavaScript (Canvas)