没有给变量赋值,如:var tmp;如果这是用typeof去判断这个变量的类型的话肯定是undefined类型。
如果用var 声明了某变量之后我们可以直接用
代码如下 | 复制代码 |
if( tmp == undefined )或者if( tmp != undefined ) |
去判断,这个是没有问题的,不过这边也容易出现一个陷阱,如果一个变量没有用var声明过,而直接用
代码如下 | 复制代码 |
if( tmp == undefined )或者if( tmp != undefined ) |
去判断的话是错误的,这个时候浏览器会报错,提示 XXX 未定义(IE下)或者XXX is not defined(火狐下)。我想在js中还是存在变量先声明再使用这个限制的,但是遇到上面的问题时还是可以直接使用typeof(XXX)来判断的吗,这个在所有浏览器下都是支持的,但是需要注意的是用typeof得出的结果是一个字符串,所以在比较的时候要比较字符串,
如:
代码如下 | 复制代码 |
typeof(undefined) == 'undefined' |
JavaScript 中有两个特殊数据类型:undefined 和 null,下节介绍了 null 的判断,下面谈谈 undefined 的判断。
以下是不正确的用法:
代码如下 | 复制代码 |
if (reValue== undefined){ alert("undefined"); } |
reValue为 null 时,也会得到与 undefined 相同的结果,虽然 null 和 undefined 不一样。注意:要同时判断 undefined 和 null 时可使用本法。
代码如下 | 复制代码 |
var exp = undefined; if (typeof(exp) == undefined) { alert("undefined"); } |
typeof 返回的是字符串,有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined"
以下是正确的用法:
代码如下 | 复制代码 |
var exp = undefined; if (typeof(exp) == "undefined") { alert("undefined"); } |
时间: 2024-10-26 03:02:25