javascript中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的行为方式如下:

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 (+ "");