Javascript 我想解释一下这段代码:(4+;[]+;8)

Javascript 我想解释一下这段代码:(4+;[]+;8),javascript,Javascript,当我执行 console.log((4+[]+8))如注释中所述。 当您在数组中使用+运算符处理不同类型的变量时,js引擎将通过[].toString()将其作为字符串调用。 向字符串中添加数字也会将数字转换为字符串。如注释中所述。 当您在数组中使用+运算符处理不同类型的变量时,js引擎将通过[].toString()将其作为字符串调用。 将数字添加到字符串中也会将数字转换为字符串。因为这是一个数字和一个数组的总和,javascript将两者转换为字符串 因此: '4'++'+'8'='48'

当我执行


console.log((4+[]+8))
如注释中所述。 当您在数组中使用
+
运算符处理不同类型的变量时,js引擎将通过[].toString()将其作为字符串调用。
向字符串中添加数字也会将数字转换为字符串。

如注释中所述。 当您在数组中使用
+
运算符处理不同类型的变量时,js引擎将通过[].toString()将其作为字符串调用。
将数字添加到字符串中也会将数字转换为字符串。

因为这是一个
数字
和一个
数组
的总和,javascript将两者转换为字符串

因此:

'4'++'+'8'='48'
(请注意,结果是
字符串,而不是
数字

如果向数组中添加更多元素,它的工作方式如下

4+[1,2]+8='41,28'

这是因为默认情况下,数组通过将值与
串联而成为字符串

另一个例子

4+[1,2,3,4,5]+8
=
41,2,3,4,58

注意:如果尝试对两个
数组进行求和,它们也会变成字符串,因为javascript没有求和数组的本机实现


[1,2]+[3,4]='1,23,4'

因为这是一个
数字和一个
数组的总和,javascript正在将两者转换为字符串

因此:

'4'++'+'8'='48'
(请注意,结果是
字符串,而不是
数字

如果向数组中添加更多元素,它的工作方式如下

4+[1,2]+8='41,28'

这是因为默认情况下,数组通过将值与
串联而成为字符串

另一个例子

4+[1,2,3,4,5]+8
=
41,2,3,4,58

注意:如果尝试对两个
数组进行求和,它们也会变成字符串,因为javascript没有求和数组的本机实现


[1,2]+[3,4]='1,23,4'

类似于
foo=null
,因此
foo===null
typeof foo===='object'
感谢您的解释@darkmukkee当您单独执行
[]
时,它会给您一个空数组。
[].toString()
,即空连接。您需要说明如何从
[]
获取
0
,以获得解释。
[]
使用
+
(作为二进制运算符)将使其成为空字符串。因此它基本上变成了
4+''+8
,因此是48。它就像
foo=null
,所以
foo===null
typeof foo==='object'
感谢你的解释@darkmukkee当你单独执行
[]
时,它会给你一个空数组。
[].toString()
,也就是一个空连接。您需要说明如何从
[]
获取
0
,以获得解释。
[]
使用
+
(作为二进制运算符)将使其成为空字符串。因此它基本上变成了
4+''+8
48。应该包括一个例子,而不是说“喜欢评论”,你是对的。但我不想要信用卡,也不想要投票,只是在谷歌的有趣页面上或多或少地得到这个问题应该包括一个例子,而不是说“喜欢评论”你是对的。但我不想要积分,也不想要投票,只是或多或少地在谷歌有趣的页面上得到这个问题