原链接:https://wangdoc.com/javascript/index.html
JS共有6中数据类型(ES6新增了第七中,symbol,JS基础系列不提,未来写ES6的时候说)。分别为Number、String、Boolean、Object、Undefined、Null。
- 原生类型
- 数值类型(Number):整数和小数都有,具体见下文
- 字符串类型(String)
- 布尔值(Boolean)
- 合成数据类型
- 对象(Object)
- 侠义的对象(object),类似关联数组
- 数组(array)
- 函数(function)
- 特殊值
- undefined: 表示未定义不存在的值
- null: 表示空值
如何判断一个变量是什么类型
-
typeof:根据变量类型,返回字符串
示例:
typeof '123' // "string" typeof 123 // "number" typeof true // "boolean" typeof a // "undefined" 对于未定义的变量 typeof undefined // "undefined" 对于undefined本身 function f() {} typeof f // "function" 对于函数 typeof window // "object" typeof {} // "object" typeof [] // "object" 对于对象和数组都返回Object // 对象和数组的具体区分方法如下 var o = {}; var a = []; o instanceof Array // false a instanceof Array // true o instanceof Object // true a instanceof Object // true typeof null // "object" 特殊情况
instanceof的具体原理和使用有待补充,这里先提供一个用于区分变量类型的函数:
输入变量,返回字符串(“string”, “number”, “boolean”, “undefined”, “null”, “object”, “array”, “function”)
export function distinguish(variate) {
switch (typeof variate) {
case 'string':
return 'string'
case 'number':
return 'number'
case 'boolean':
return 'boolean'
case 'undefined':
return 'undefined'
case 'object':
if (variate instanceof Array) {
return 'array'
}
if (variate) {
return 'object'
}
return 'null'
default:
break;
}
}