数据类型概述
简介
JavaScript 语言的每一个值,都属于某一种数据类型。JavaScript 的数据类型,共有6种。(ES6 新增了第七种 Symbol 类型的值)
数值 number:整数和小数
字符串 string:文本
布尔值 boolean:true 和 false
undefined:表示未定义或不存在,
null:空值,此处的值为空
对象 object:各种值组成的集合
数值、字符串、布尔值合成为原始类型 primitive type 的值。即他们是最基本的数据类型,不能再细分了
对象则称为合成类型 complex type 的值,因为一个对象往往是多个原始类型的值的合成,可以看作是一个存放各种值的容器
至于 undefined 和 null 一般将它们看成两个特殊的值
对象是最复杂的数据类型,又可以分成三个子类型:
侠义的对象 object
数值 array
函数 function
typeof 运算符
JavaScript 有三种方法,可以确定一个值到底是什么类型
typeof 运算符
instanceof 运算符
Object.prototype.toString 方法
这里是介绍 typeof 运算符
typeof 123 // "number"
typeof '123' // "string"
typeof false // "boolean"
function f() {}
typeof f // "function"
typeof undefined // "undefined"
typeof window // "object"
typeof {} // "object"
typeof [] // "object"
typeof null // "object"
null 的类型是 object 是由于历史原因造成的
利用 typeof undefined 返回 "undefined" 这一点,可以用来检查一个没有声明的变量,而不报错。 实际编程中,这个特点通常用在判断语句
v
// ReferenceError: v is not defined
typeof v
// "undefined"
// 错误的写法
if (v) {
//...
}
// ReferenceError:v is not defined
// 正确的写法
if (typeof v === "undefined") {
//...
}
空数组 [] 的类型也是 object,这表明在 JavaScript 内部,数组本质上只是一种特殊的对象。 instanceof 运算符可以区分数组和对象
var o = {};
var a = [];
o instanceof Array // false
a instanceof Array // true
最后更新于
这有帮助吗?