JS里的数据类型
JS里的7种数据类型
JavaScript 语言的每一个值,都属于某一种数据类型。JavaScript 的数据类型,共有六种。(ES6 新增的第七种 Symbol 类型的值,不描述。)
- 数值(number):整数和小数(比如1和3.14)
- 字符串(string):文本(比如Hello World)。
- 布尔值(boolean):表示真伪的两个特殊值,即true(真)和false(假)
- undefined:表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值
- null:表示空值,即此处的值为空。
- 对象(object):各种值组成的集合。
- Symbol(符号):https://developer.mozilla.org/zh-CN/docs/Glossary/Symbol
string 表示可以用
1 | ' '//空字符串 |
转义符号为\
1 | var a = "'"//单引号 |
多行字符串表示
1 | //不是字符串里有回车 |
以上两种不建议使用
1 | var s3 = '12345'+ |
==建议使用这个语法==
在ES6中有个新的语法特性为:
1 | var s4 = '12345 //此处5后面有个回车 |
关于null和undefined
- 变量没有值-undefined(语法)
有一个对象objest,现在不想赋值-null
有一个非对象,不想赋值-undefined
对象也是哈希表
关于命名
1 | person['name'] |
typeof 运算符
JavaScript 有三种方法,可以确定一个值到底是什么类型。
typeof运算符
instanceof运算符
Object.prototype.toString方法
instanceof运算符和Object.prototype.toString方法。这里介绍typeof运算符。
typeof运算符可以返回一个值的数据类型。
数值、字符串、布尔值分别返回number、string、boolean。
1 | typeof 123 // "number" |
函数返回function。
1 | function f() {} |
undefined返回undefined。
1 | typeof undefined |
利用这一点,typeof可以用来检查一个没有声明的变量,而不报错。
1 | v |
上面代码中,变量v没有用var命令声明,直接使用就会报错。但是,放在typeof后面,就不报错了,而是返回undefined。
实际编程中,这个特点通常用在判断语句。
1 | // 错误的写法 |
对象返回object。
1 | typeof window // "object" |
上面代码中,空数组([])的类型也是object,这表示在 JavaScript 内部,数组本质上只是一种特殊的对象。这里顺便提一下,instanceof运算符可以区分数组和对象。instanceof运算符的详细解释,请见《面向对象编程》一章。
1 | var o = {}; |
1 | typeof null // "object" |
null的类型是object,这是由于历史原因造成的。1995年的 JavaScript 语言第一版,只设计了五种数据类型(对象、整数、浮点数、字符串和布尔值),没考虑null,只把它当作object的一种特殊值。后来null独立出来,作为一种单独的数据类型,为了兼容以前的代码,typeof null返回object就没法改变了。
参考链接
- 阮一峰,JavaScript教程