我是JavaScript的新手.我有这样的代码:
<script type="text/javascript">
console.log( [] + {} );
</script>
Run Code Online (Sandbox Code Playgroud)
在我的Google Chrome浏览器日志中:
[object Object]
Run Code Online (Sandbox Code Playgroud)
它看起来与我有关!并做这样的事情:
<script type="text/javascript">
console.log( {} + {} );
</script>
Run Code Online (Sandbox Code Playgroud)
确实生产:
[object Object][object Object]
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,这里究竟发生了什么?怎么来[],{}将这两个结果添加到一个数组objects?
提前致谢.
T.J*_*der 11
当您使用非数字+运算符时,您正在进行字符串连接,因此操作数将转换为字符串.空数组变为空字符串,因为它是一个隐式调用join,没有条目,join返回一个空字符串; 一个物体变成了"[object Object]".
所以
console.log( [] + {} );
Run Code Online (Sandbox Code Playgroud)
......归结为
console.log( String([]) + String({}) );
Run Code Online (Sandbox Code Playgroud)
......归结为......
console.log( "" + "[object Object]");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
195 次 |
| 最近记录: |