2

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"
4

2 に答える 2

6

typeof は関数ではなく単項演算子なので、

typeof + ""; 

と同じです

typeof (+ "");

そして、単項 + 演算子の EcmaScript ノルムで正確に示されるように、 を数値に+something変換します。something

単項 + 演算子は、そのオペランドを Number 型に変換します。

于 2013-03-29T10:33:31.783 に答える
4

+"..."実際には文字列を数値として解析します。これによりtypeof + ""、返される数値が であっても、「数値」が返されNaNます。

最初の 2 つの使用法は単純に間違っていtypeofます。右辺が必要だからです。

参考文献:

于 2013-03-29T10:32:59.637 に答える