javascript中typeof的行为
有人能解释一下为什么typeof的行为方式如下:javascript中typeof的行为,javascript,typeof,Javascript,Typeof,有人能解释一下为什么typeof的行为方式如下: typeof //Returns: SyntaxError: Unexpected token } (Quite obvious) "Why am I a " + typeof //Returns: SyntaxError: Unexpected token } "Why am I a " + typeof + ""; //Returns: "Why am I a number" "Why am I a " + typeof + "?
typeof
//Returns: SyntaxError: Unexpected token } (Quite obvious)
"Why am I a " + typeof
//Returns: SyntaxError: Unexpected token }
"Why am I a " + typeof + "";
//Returns: "Why am I a number"
"Why am I a " + typeof + "??";
//Returns: "Why am I a number"
+“…”
实际上将字符串解析为一个数字。这将导致typeof+”
返回“number”,即使返回的编号是NaN
前两种用法完全错误,因为typeof
需要右手边
参考资料:
-
所以
与
typeof (+ "");
和+something
将something
转换为一个数字,精确到:
一元+运算符将其操作数转换为数字类型
哦我不知道!其他JS函数也会发生这种情况吗?(将
func++
转换为func(+)
?,或者它只是特定于typeof
?@gopi1410:逻辑上是相同的,而不是语法上的,因为typeof
是一个运算符。@gopi1410:typeof
不是一个函数,而是一个运算符。typeof+'
有效的JS是将+
解释为一元运算符,解释器就是这样做的。这与将负数相乘一样:5*-3
。这被解释为5*(-3)
。-
在这种情况下只能是一元运算符。这是否意味着右侧会转换为函数参数?其他JS函数也会发生这种情况吗?不。typeof
不是函数。它是一元运算符,类似于!
。typeof
右侧的括号只是添加而已在你的代码杯上放上传统的糖。
typeof (+ "");