JavaScript的数据类型
js的数据类型可以分为7类(四基两空一对象)
- number
- string
- boolean
- string
- undifined
- null
- object
1. number(64位浮点数)
特殊值:
- 0 +0 -0
- Infinity +Infinity -Infinity
- NaN
其中,NaN也是数字,只不过NaN暂时无法用已有的数字表达出来,所以用NaN表示。故,NaN !== NaN
JS中最大的数:Number.MAX_VALUE
JS中最小的数:Number.MIN_VALUE
由于JS中使用的是浮点数存储数字,所以有时会造成计算不准确的问题。
2. string
字符串的类型:
- "" 双引号
- '' 单引号
- `` 反引号
其中:反引号中支持回车换行
若想在引号内在打引号需要使用转义符 \
- ' 表示 '
- " 表示 "
- \n 表示换行
- \r 表示回车
- \t 表示tab制表符
- \\ 表示 \
字符串的属性
- string.length
'123'.length
- string[index]
'hello'[0]
"h"
base64 转码
- 正常字符串转为base64编码的字符串
window.btoa("")
- base64编码的字符串转换为正常的字符串
window.atob("")
3. boolean
bool值只有true或false
- 否定运算
let a = 1
!a
false
!window.f1
true
- 相等运算
1 === 2
false
- 比较运算
1 > 2
false
五个falsy值
两空,两数字,一字符串
- null
- undifined
- 0
- NaN
- ''
4. null 和 undifined
null 与 undifined 并没有本质的区别,主要区别如下:
- 如果一个变量声明了,但没有赋值,那么默认值就是undifined
- 如果一个函数没有写return,那么默认return undifined
- 习惯上将非对象的空值写为undifined , 将对象的空值写为 null
5. 变量声明
结果ES6 更新之后,变量声明的方式最好使用 let 或 const
我们在声明时,可以同时指定类型,例如: var a = "1" ; 就指定了a的类型为字符串
let 声明 规则
- 声明的使用范围不能超过{}
- {} 中不能重复声明
- 可以赋值,也可以不赋值
- 必须先声明再使用
- 全局声明的let, 不会变成window的属性
- 配合for循环循环时有奇效
例如
for (let i = 0 ; i < 5 ; i++){
setTimeout(() => {
console.log(i)
})
}
在使用 var 时,会返回 5 个 5
使用let时, 则会返回 0 1 2 3 4
const 声明 规则
与 let 相同,但 const 赋值时就必须声明
6. 类型转换
- 数字转字符串
- String(n)
String(1)
"1"
- n + ''
2 + ''
"2"
需要注意的是,当数字足够大时,数字转换字符串会有bug,字符串会以科学计数法显示
let a = 11111111111111111111111
String(a)
"1.1111111111111111e+22"
- 字符串转数字
- Number(n)
Number("2")
2
- parseInt(n) / parsFloat(n)
parseInt("2")
2
- n - 0 / +n
"2" - 0
2
- 任意值转布尔
- Boolean(n)
Boolean("2")
true
- !!n
!!0
false
- 任意值转换为字符串
- n.toString()
false.toString()
"false"
但是当我们使用此方法将数字转换为字符串时,需要写为
1..toString()
"1"