コンソール内のjs
[[]][0] これでエラーが報告されないのはなぜですか [] これでエラーが報告されますか
[[]][0]
[]
++[[]][0]: [[]]是一个只包含一个空数组的数组,那么根据运算符优先级,[] > (prefix)++,运算[[]][0],得到一个空数组Array(0),是一个对象,并且是数组中的一个值,符合左值的条件.之后进行(prefix)++运算,由于++运算将执行数据类型转换(PS:Javascript中具体的数据类型转换太复杂了,我就不展开了),这里Array[0]将转换成0,结果++1をゲット
++[[]][0]
[[]]
[] > (prefix)++
Array(0)
(prefix)++
++
Array[0]
0
詳細については、コンソール出力を参照してください:
++[]: lvalue は空の配列であり、正当な lvalue ではないため、エラーが報告されます。
++[]
左値とは:
左辺値は、式が代入演算子の左側にのみ現れることを意味する古い用語です。 JavaScript では、変数、オブジェクトのプロパティ、配列要素はすべて左辺値です。
私は以前にこの質問に回答し、直接リンクを投稿しました:
jsの型変換の問題
++[[]][0]
:[[]]
是一个只包含一个空数组的数组,那么根据运算符优先级,[] > (prefix)++
,运算[[]][0]
,得到一个空数组Array(0)
,是一个对象,并且是数组中的一个值,符合左值的条件.之后进行(prefix)++
运算,由于++
运算将执行数据类型转换(PS:Javascript中具体的数据类型转换太复杂了,我就不展开了),这里Array[0]
将转换成0
,结果++
1をゲット詳細については、コンソール出力を参照してください:
リーリー++[]
: lvalue は空の配列であり、正当な lvalue ではないため、エラーが報告されます。左値とは:
私は以前にこの質問に回答し、直接リンクを投稿しました:
jsの型変換の問題