javascript的undefined什么时候要加引号什么时候不加
这里以json(数组也一样)为例,创建一个json对象赋给变量json
var json = {"a":"miss","b":"you"};
存在对象json,不存在的键c
1.直接判断
json.c == undefined; //true json.c == 'undefined';//false
结论:返回的类型是undefined 。
2.使用typeof来判断
typeof json.c == undefined;//false typeof json.c == 'undefined';//true
结论:使用typeof返回的类型是'undefined'字符串。
不存在的对象json22
1.直接判断(会报错)
json22 == undefined;//报错,json22 is not defined json22 == 'undefined';//报错,json22 is not defined
直接判断会报错。可见not defined与 undefined 有区别。
2.使用typeof来判断
typeof json22 == undefined;//false typeof json22 == 'undefined';//true
typeof后面加不加括号都可以,如
typeof(json22) == 'undefined';//true
判断函数是否存在
function myFunc(){}//定义一个函数myFunc typeof myFunc != 'undefined';//true typeof myFunc == 'function';//true typeof myFunc22 == 'function';//false myFunc22未定义,不是函数
也就是当undefined为字符串的时候要加引号,为类型的时候不加号,使用typeof时返回的类型是字符串。
PS. javascript的几种类型:undefined、null、number、string、boolean、object、symbol。