javascript有七种内置类型:
- 空值(null)
- 未定义(undefined)
- 布尔值(boolean)
- 数字(number)
- 字符串(string)
- 对象(object)
- 符号(symbol,ES6新增)
除对象外,其他皆是基本类型。
typeof null === "object" //true
//检测null值
var a = null;
(!a && typeof a === "object") //true
数组和方法都是object的子类型。
值和类型
JavaScript中的变量是没有类型的,只有值有类型。变量是可以随时持有任何类型的值。
Javascript中的undefined和undeclared(未声明)是两码事,已在作用域中但未赋值的是undefined。还没有在作用于中声明过的变量是undeclared。undefined和is not defined是两回事,但是javascript在用typeof进行类型检查时却都是‘undefined’。
var a ;
a //undefined;
b //ReferenceError: b is not defined
typeof的特殊安全防范机制(阻止报错)
//如果没有引入DEBUG,那么程序会报错
if(DEBUG){
console.log('Debugging is starting');
}
//安全的写法
if(typeof DEBUG !== 'undefined'){
console.log('Debugging is starting');
}

网友评论