1、数据类型
原始类型:数值 字符串 布尔值; 复杂类型:对象;
数值(number)
特殊的数值:NaN,NaN不等于任何值,包括它本身,NaN与任何数运算,得到的仍是NaN。
字符串(string)
布尔值(boolean)
undefined null false 0 NAN “” ‘’(空字符串) 转换为false
undefined :
未定义的值,转为数值时为NaN
// 变量声明了,但没有赋值 var i console.log(i) // undefined // 调用函数时,应该提供的参数没有提供,该参数等于 undefined function fn(x){ return x } x = fn() console.log(x) // undefined // 对象没有赋值的属性 var a = new Object() console.log(a.name) // undefined // 函数没有返回值时,默认返回 undefined function fc(){ } console.log(fc()) // undefined
null:
null
是一个表示“空”的对象,转为数值时为0
;null
表示空值,即该处的值现在为空。调用函数时,某个参数未设置任何值,这时就可以传入null
,表示该参数为空。比如,某个函数接受引擎 抛出的错误作为参数,如果运行过程中未出错,那么这个参数就会传入null
,表示未发生错误。
对象(object)又分为:狭义的对象(object) 数组(array) 函数(function)
对象
数组
函数:处理数据的方法
Symbol(ES6新增)
2、运算符
typeof
console.log(typeof(111)) // number console.log(typeof('111')) // string console.log(typeof(false)) // boolean function fn(){ } console.log(typeof(fn)) // function console.log(typeof(undefined)) //undefined console.log(typeof({})) // object console.log(typeof([])) //object console.log(typeof(null)) //object console.log(typeof(v)) // undefined
未定义的变量使用时会报错,但是 typeof类型为 undefined。
数组的typeof类型也是object,在js中,数组是一种特殊的对象。 instanceof 可以区分数组和对象
null返回 object,是 历史问题。
instanceof
var a = {} var b = [] console.log(a instanceof Object) // true console.log(b instanceof Array) // true
原文地址:https://wangdoc.com/javascript/types/null-undefined-boolean.html