js中{}+[]、[]+{}、[]+[]、{}+{}

1、{}+[]

1)以{}开头的会被解析为语句块

2)此时+为一元操作符,非字符串拼接符

3)[]会隐式调用toString()方法,将[]转化为原始值 ''

4)+'' 被转化为数字0

5)扩展:如果将其用()括起来,即({}+[]),此时会显示"[object Object]",因为此时{}不再被解析为语句块


2、[]+{}

1)[]会隐式调用toString()方法,将[]转化为原始值 ''

2){}会隐式调用toString()方法,将{}转化为原始值"[object Object]"

3)+为字符串拼接符


3、[]+[]

1)[]会隐式调用toString()方法,将[]转化为原始值 ''

2)+为字符串拼接符


4、{}+{}

1)以{}开头的会被解析为语句块,即第一个{}为语句块

2)此时+为一元操作符,非字符串拼接符

3)第二个{}会隐式调用toString()方法,将{}转化为原始值"[object Object]"

4)+"[object Object]"为NaN

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容