Type 类型
Javascript中的变量是没有类型的,只有值才有。变量可以被赋予不同类型的值。
大家都知道JavaScript是一门动态语言,那说它有类型有些猿友会觉得这种说法不妥。我们可以这样来理解:对语言引擎和开发人员来说,类型是值的内部特征,它定义了值的行为。
JavaScript有七种内置类型
1.基本类型
- null
- undefined
- boolean
- number
- string
- symbol
2.对象类型 - object
类型检测
typeof运算符
均返回字符串。注意null、function特殊情况。可以将讲null理解为空对象。
typeof null; //'object'
typeof undefined; //'undefined'
typeof true; //'boolean'
typeof 1; //'number'
typeof '1'; //'string'
typeof Symbol(); //'symbol'
typeof {a:1}; //'object'
//还有种情况,函数也是JS的一个内置类型?它实际上是object的‘子类型’,而object的’子类型’还有数组等。函数是‘可调用对象’,有内部属性[[Call]],该属性使其可被调用。
typeof function f(){}; // 'function'
识别null与常规object类型
1.复合条件:
var n = null;
(!n && typeof n === 'object') ;//true
undefined/undeclared不要混为一谈
未定义(undefined):在作用域中已声明但还未赋值
未声明(undeclared):在作用域中还没声明
typeof 对这两种变量均返回undefined,这是由于typeof的安全防范机制,防止报错。因此,typeof可用于检查未声明的变量。