开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情
1、数值
数值(Number)
- 在JS中所有的整数和浮点数都是Number类型
- JS中的数值并不是无限大的,当数值超过一定范围后会显示近似值
- Infinity 是一个特殊的数值表示无 穷
- 所以在JS中进行一些精度比较高的运算时要十分注意
- NaN 也是一个特殊的数值,表示非法的数值
<script>
let a = 10
a = 10.5
a = 3.14
a = 9999999999999991111111111111111111
a = 99999 ** 99999
a = Infinity
a = 1.11111111111111111111111111111111111111111111
a = 0.0000000000000000000000000000000000001
a = 0.1 + 0.2
a = 1 - "a" // NaN (Not a Number)
a = NaN
</script>
大整数(BigInt)
-
大整数用来表示一些比较大的整数
-
大整数使用n结尾,它可以表示的数字范围是无限大
a = 99999999999999999999999999999999999999999999999999n
其他进制的数字:
二进制 0b
八进制 0o
十六进制 0x
<strcipt>
a = 0b1010
a = 0o10
a = 0xff
console.log(a)
</strcipt>
2、类型检查
typeof 运算符
-
typeof用来检查不同的值的类型
-
它会根据不同的值返回不同的结果
<script>
let a = 10
let b = 10n
console.log(typeof a) // "number"
console.log(typeof b) // "bigint"
</script>
3、字符串
字符串(String) - 在JS中使用单引号或双引号来表示字符串 - 转义字符 \ " --> " ' --> ' \ --> \ \t --> 制表符 \n --> 换行
<script>
let a = "Hello"
a = "你好"
a = '这是一个"字\\符串'
let str = `你好,${name}`
let b = 10
// console.log(`b = ${b}`)
let c = "5"
c = "hhh"
c = `aaa`
console.log(typeof c)
</script>
4、其他的数据类型
布尔值(Boolean)
- 布尔值主要用来进行逻辑判断
- 布尔值只有两个true 和 false
- 使用typeof检查一个布尔值时会返回 "boolean"
空值 (Null)
- 空值用来表示空对象
- 空值只有一个 null
- 使用typeof检查一个空值时会返回"object"
- 使用typeof无法检查空值
未定义(Undefined)
- 当声明一个变量而没有赋值时,它的值就是Undefined
- Undefined类型的值只有一个就是 undefined
- 使用typeof检查一个Undefined类型的值时,会返回 "undefined"
符号(Symbol)
- 用来创建一个唯一的标识
- 使用typeof检查符号时会返回 "symbol"
JS中原始值一共有七种
1.Number 2.BigInt 3.String 4.Boolean 5.Null 6.Undefined 7.Symbol 七种原始值是构成各种数据的基石 原始值在JS中是不可变类型,一旦创建就不能修改
<script>
let bool = true // 真
bool = false // 假
let num = 1
let a = null
let c = Symbol() // 调用Symbol()创建了一个符号
console.log(typeof c)
</script>
5、类型转换——字符串
类型转换指将一种数据类型转换为其他类型 将其他类型转换为(字符串、数值和布尔值)
转换为字符串
1.调用toString()方法将其他类型转换为字符串
-
调用xxx的yyy方法 --> xxx.yyy()
-
由于null和undefined中没有toString() 所以对这两个东西调用toString()时会报错
2.调用String()函数将其他类型转换为字符串
-
调用xxx函数 --> xxx()
-
原理: 对于拥有toString()方法的值调用String()函数时, 实际上就是在调用toString()方法 对于null,则直接转换为"null" 对于undefined,直接转换为"undefined"
<script>
let a = 10 // "10"
a = true // "true"
a = 11n // "11"
a = undefined
let b = 33 // "33"
b = null // "null"
b = undefined // "undefined"
b = true
console.log(typeof b, b)
b = String(b)
console.log(typeof b, b)
</script>
6、类型转换——数值
将其他的数据类型转换为数值
1.使用Number()函数来将其他类型转换为数值
转换的情况:
- 字符串:
- 如果字符串是一个合法的数字,则会自动转换为对应的数字
- 如果字符串不是合法数字,则转换为NaN
- 如果字符串是空串或纯空格的字符串,则转换为0
- 布尔值:
- true转换为1,false转换为0
- null 转换为 0
- undefined 转换为 NaN
专门用来将字符串转换为数值的两个方法
parseInt() —— 将一个字符串转换为一个整数
- 解析时,会自左向右读取一个字符串,直到读取到字符串中所有的有效的整数
- 也可以使用parseInt()来对一个数字进行取整
parseFloat() —— 将一个字符串转换为浮点数
- 解析时,会自左向右读取一个字符串,直到读取到字符串中所有的有效的小数
<script>
let a = '123' // 123
a = 'abc' // NaN
a = '3.1415926' // 3.1415926
a = '11px' // NaN
a = '' // 0
a = ' ' // 0
a = true // 1
a = false // 0
a = null // 0
a = undefined // NaN
let b = '123px'
b = 'a123'
b = '123.45'
// b = 456.123
console.log(typeof b, b)
b = parseInt(b)
console.log(typeof b, b)
</script>
7、类型转换——布尔值
1.使用Boolean()函数来将其他类型转换为布尔值
- 转换的情况: 数字:
- 0 和 NaN 转换为false
- 其余是true
字符串:
- 空串 转换为 false
- 其余是true
null和undefined 都转换为 false
对象:对象会转换为true
- 所有表示空性的没有的错误的值都会转换为false: 0、NaN、空串、null、undefined、false
<script>
let a = 1 // true
a = -1 // true
a = 0 // false
a = NaN // false
a = Infinity // true
a = 'abc' // true
a = 'true' // true
a = 'false' // true
a = '' // false
a = " " // true
a = null
a = undefined
console.log(typeof a, a)
a = Boolean(a)
console.log(typeof a, a)
</script>