(![] + [])[+ []] 是一个 JavaScript 表达式,它的结果是字符串 "undefined"。
解释这个表达式的运行过程如下:
- [] 是一个空数组。
- ![] 的意思是对空数组进行逻辑非运算,空数组被转换为布尔值为 true,所以逻辑非运算的结果为 false。
- false 是一个包含一个元素的数组,该元素是布尔值 false。
- [] 的意思是将空数组进行隐式类型转换,转换为数字类型。由于空数组被转换为字符串 "",再转换为数字类型时,结果为 0。
- 所以最终结果为 (false)0,即取数组 false 的第一个元素,由于数组下标只能是数字类型,所以将字符串 "false" 隐式转换为数字类型 0,所以结果为 "undefined"。
这个表达式的结果是 "undefined",表示未定义。