数据类型,指那些可以赋值给变量的值,JS中的数据类型由原始值和对象共同组成。对象我们会稍微晚点介绍,先来介绍原始值。
JavaScript中一共有七种原始值:
- 数值(Number)
- 大整数(BigInt)
- 字符串(String)
- 布尔值(Boolean)
- 空值(Null)
- 未定义(Undefined)
- 符号(Symbol)
数值和大整数
数值就是数字,在JavaScript中数字有两种普通的数值和大整数。
数值
在JavaScript中整数和小数都是数值类型,数值并不是无限大的,当超过一定范围后数值会自动显示近似值,再超过范围会以科学计数法的形式显示,再超过范围会显示为Infinity
。基于此原因再加上浮点数计算的不精确问题,所以尽量不要直接使用数值做一些精度要求较高的运算,使用typeof运算符检查一个数值时会返回"number"
。
let a = 10
let b = 2.5
let c = 9999999999999991 // 9999999999999992
let d = 999999999999999999999 // 1e+21
let e = 999 ** 999 // Infinity
let f = 1.9999999999999999 // 2
let g = 0.0000005 // 5e-7
除了常规的数字外,在数值中还存在两个特殊值NaN
和Infinity
。
NaN —— 错误的数值
Infinity —— 无穷
其他进制数字的表示方法:
let a = 0b1010 // 二进制
let b = 0o77 // 八进制
let c = 0xff // 十六进制
大整数
大整数,顾名思义用来表示一些比较大的整数,注意只是整数。大整数使用n结尾,大整数可以是无限大的(还要看你的内存大写),且大整数只能和大整数计算,和数值计算会报错。使用typeof检查一个大整数时会返回"bigint"
let a = 9999999999999999999999n
字符串
JavaScript中字符串需要使用引号引起来,单引号和双引号都是可以的,没有本质区别。使用typeof运算符检查一个字符串时会返回"string"
。
let a = "今天天气真不错"
let b = '昨天天气也挺好'
转义字符
JavaScript中使用/
作为转义字符,转义字符用以表示一些特殊的符号,比如:
转义字符 | 字符串 |
\’ | ‘ |
\” | “ |
\\ | \ |
\n | 换行 |
\t | 制表符 |
\uxxxx | Unicode编码 |
模板字符串
模板字符串可以用来表示一些比较长的字符串(跨行),且可以直接向字符串中嵌入变量,使用`
表示模板字符串,在模板字符串中使用${变量}
来嵌入变量:
let str = `锄禾日当午
汗滴禾下土
谁知盘中餐
粒粒皆辛苦
`
let name = "孙悟空"
let str = `大家好,我是${name}`
布尔值
布尔值用来进行逻辑判断,只有两个true
和false
。使用typeof检查时会返回"boolean"
true —— 真
false —— 假
let a = true
let b = false
空值
空值表示空、不存在,只有一个值null
。使用typeof检查时会返回"object"
let a = null
未定义
未定义,作用和空值类似,同样只有一个值undefined
。我们一般不会主动使用undefined。使用typeof检查时会返回"undefined"
let a // 此时a的值就是undefined
符号
符号比较特殊,用以表示一个唯一标识,在一些特殊场景下回使用,现在简单了解一下即可。使用typeof检查一个符号时会返回"symbol"
let a = Symbol()
原始值都是不可变的
上边所有的原始值都是不可变的类型,值一旦创建就无法修改!
哇,超哥,我这才一天没刷新就又出来这么多,太肝了
-_-|| 还是有点慢
超哥我看完你HTML的视频了,方便留个社交账号吗,我想买你的课
哈哈 买就不必了,有问题可以问我,ymhold
超哥 我也想加你!
哈哈~ 可以啊 回头咱们建个群
我才看到有笔记!!!太感动了超哥
这部分的前面三个反斜杠”\“打错了哦,超哥
已更正