1

JavaScript では、なぜ人々はtypeof myVar == "undefined"代わりに? を書くのmyVar == undefinedでしょうか?

互換性の理由ですか?

4

2 に答える 2

2

これが主な理由です。

if(a == undefined) console.log('test')
>> ReferenceError: a is not defined
if(typeof a == "undefined") console.log('test')
>> test

しかし、この比較を実行すると:

if(window.a == undefined) console.log('test')
>> test

したがってa、スタンドアロン変数として使用する場合はできません。それを使用windowすることは可能であり、どのアプローチを使用するかは問題ではありませんが、コメントで述べたように、すべての変数がスコープtypeofに属しているわけではないため、使用する方が安全です。window

于 2013-05-06T08:10:21.030 に答える
1

myVar が実際に未定義の場合、typeof 演算子はエラーをスローしないためです。

myVar == undefined; // Throws a ReferenceError

typeof myVar == "undefined" //True
于 2013-05-06T08:09:08.733 に答える