如何在javascript中检查未定义的类型
可能重复:如何在javascript中检查未定义的类型,javascript,jquery,Javascript,Jquery,可能重复: 检查javascript中未定义的类型的最佳方法是什么。我知道一种检查未定义类型的方法,即typeOf。但是我必须检查是否有很多地方,所以如果有任何短而更好的检查方法,请让我知道 我尝试了几种方法,但没有成功: alert(undefined === "undefined"); alert(undefined || "defined"); 对你来说没什么新鲜事: // either (val === undefined) // or (typeof val ==
检查javascript中未定义的
类型的最佳方法是什么。我知道一种检查未定义类型的方法,即typeOf
。但是我必须检查是否有很多地方,所以如果有任何短而更好的检查方法,请让我知道
我尝试了几种方法,但没有成功:
alert(undefined === "undefined");
alert(undefined || "defined");
对你来说没什么新鲜事:
// either
(val === undefined)
// or
(typeof val == "undefined")
使用val | |“defined”
的问题是,如果val
为null
,未定义
,0
,false
或,,将返回“defined”,这是使用typeof的最佳方式
例如:
alert(typeof variable === 'undefined')
如果变量1未定义,它将设置为“”,否则,它将使用变量1。使用typeof val==“undefined”
是最好的方法,因为undefined
的值可以修改
var x;
console.log("x == undefined => " + (x == undefined));
console.log("typeof x == 'undefined' => " + (typeof x == 'undefined'));
var undefined = 10; // for some reason, browsers allow this!
console.log('undefined overwritten to ' + undefined);
console.log("x == undefined => " + (x == undefined)); // this will return false!
console.log("typeof x == 'undefined' => " + (typeof x == 'undefined'));
把普通的typeof foo==“undefined”
放在isDefined(value,[默认值])
函数中你已经知道最好的方法了。更准确地说,“如果Variable1是假的…”typeof
总是返回字符串,所以对=
没有特殊需要。是的,没有特殊需要,但我可以放心。我想严格比较字符串,不再进行转换,我知道typeof
返回字符串。@VisioN==
比=
稍微快一点,所以它实际上是首选。@JanDvorak我做了一个检查。每次新的测试运行(Chrome 22)我的结果都不一样。@jbabey考虑到javascript的松散输入,=
非常方便,例如1=='1'
。想象一下,在进行比较之前必须将所有内容转换为相同的类型(这或多或少是=
所做的)。我更喜欢只在必要的地方使用===
,在其他地方使用=
。在ES5中,全局对象的属性是只读的,因此不能将其值设置为任何其他值。
var x;
console.log("x == undefined => " + (x == undefined));
console.log("typeof x == 'undefined' => " + (typeof x == 'undefined'));
var undefined = 10; // for some reason, browsers allow this!
console.log('undefined overwritten to ' + undefined);
console.log("x == undefined => " + (x == undefined)); // this will return false!
console.log("typeof x == 'undefined' => " + (typeof x == 'undefined'));