2.数据类型

JS中原始值一共有七种
1.数值 Number
2.大整数 BigInt
3.字符串 String
4.布尔值 Boolean
5.空值 Null
6.未定义 Undefined
7.符号 Symbol
七种原始值是构成各种数据的基石
原始值在JS中是不可变类型,一旦创建就不能修改
let b = ‘哈哈’
b = ‘嘻嘻’ 这是给变量重新赋值,会先在内存中找有没有该数据没有则,会开辟新的内存空间存数据,让变量指向数据的内存地址
在这里插入图片描述

数值(Number)

在JS中所有的整数和浮点数都是Number类型
JS中的数值并不是无限大的,当数值超过一定范围后会显示近似值
Infinity 是一个特殊的数值表示无穷
所以在JS中进行一些精度比较高的运算时要十分注意
NaN 也是一个特殊的数值,表示非法的数值

let a = 10 //整数
a = 10.5 //浮点数
a = 9999999999999991111111111111111111 //近似值
a = 99999 ** 99999 //Infinity 
a = Infinity //避免出现
a = 1.11111111111111111111111111111111111111111111 //近似值
a = 0.0000000000000000000000000000000000001 //科学计数法1e.37
a = 0.1 + 0.2 //0.300000000004
a = 1 - "a" // NaN (Not a Number)
a = NaN //避免出现

大整数(BigInt)

大整数用来表示一些比较大的整数
大整数使用n结尾,它可以表示的数字范围是无限大

变量 = 99999999999999999999999999999999999999999999999999n

其他进制的数字:

变量 = 0b1010 //二进制 0b
变量 = 0o10 //二进制 0b
变量 = 0xff //二进制 0b

typeof 运算符

typeof用来检查不同的值的类型
它会根据不同的值返回不同的结果

let a = 10
let b = 10n
console.log(typeof a) // "number"
console.log(typeof b) // "bigint"

字符串(String)

在JS中使用单引号或双引号来表示字符串
使用反单引号`来表示模板字符串,模板字符串中可以嵌入变量
使用typeof检查一个字符串时会返回 “string”

let a = "Hello"
a = "你好"
//转义字符 \
a = "呵呵\"哈哈哈" // \" = "
a = "呵呵\'哈哈哈" // \' = '
a = "呵呵\\哈哈哈" // \\ = \
a = "呵呵\t哈哈哈" //制表符=TAB
a = "呵呵\n哈哈哈" //换行

//模板字符串
//使用反单引号`来表示模板字符串,模板字符串中可以嵌入变量
a = `今天天 
气挺好
的` //跨行使用
let name = "猪八戒"
let str = `你好,${name}` //你好,猪八戒

let b = 10
console.log(b)//10
console.log(`b = ${b}`) //b = 10

let c = "5"
c = "hhh"
c = `aaa`
console.log(typeof c) //String

布尔值(Boolean)

布尔值主要用来进行逻辑判断
布尔值只有两个true 和 false
使用typeof检查一个布尔值时会返回 “boolean”

let bool = true // 真1
bool = false // 假0

空值 (Null)

空值用来表示空对象
空值只有一个 null
使用typeof检查一个空值时会返回"object"(历史悠久的BUG)
使用typeof无法检查空值,

let a = 10
console.log(a)//10
a = null
console.log(a) //null(空值)

未定义(Undefined)

当声明一个变量而没有赋值时,它的值就是Undefined
Undefined类型的值只有一个就是 undefined
使用typeof检查一个Undefined类型的值时,会返回 “undefined”

符号(Symbol)

用来创建一个唯一的标识
使用typeof检查符号时会返回 “symbol”

let c = Symbol() // 调用Symbol()函数创建了一个符号

数据类型转换

类型转换指将一种数据类型转换为其他类型
将其他类型转换为(字符串、数值和布尔值)

转换为字符串

1.调用toString()方法将其他类型转换为字符串
调用xxx的yyy方法 = xxx.yyy()
由于null和undefined中没有toString()
所以对这两个东西调用toString()时会报错

let a = 10
console.log(typeof a, a) //number 10 //先打印类型 再打印值

//数字字符串...都是不可变类型,没有方法改变他们的类型
//所以类型转换根据数字10去创建一个字符串10
let a = 10 // "10"
a = true // "true"
a = 11n  // "11"
a = undefined //报错
a = unll //报错
a = a.toString()  

2.调用String()函数将其他类型转换为字符串 推荐使用
调用xxx函数 xxx()
原理:
对于拥有toString()方法的值调用String()函数时,
实际上就是在调用toString()方法
对于null,则直接转换为"null"
对于undefined,直接转换为"undefined"

let b = 33 // "33"
b = null // "null"
b = undefined // "undefined"
b = true // "true"
b = String(b)

将其他的数据类型转换为数值

1.使用Number()函数来将其他类型转换为数值
转换的情况:

字符串:

如果字符串是一个合法的数字,则会自动转换为对应的数字
如果字符串不是合法数字,则转换为NaN
如果字符串是空串或纯空格的字符串,则转换为0

let a = '123' // 123
a = 'abc' // NaN
a = '3.1415926' // 3.1415926
a = '11px' // NaN
a = ''  // 0
a = '    ' // 0
a = Number(a)
布尔值:

true转换为1,false转换为0

a = true // 1
a = false // 0

null 转换为 0
undefined 转换为 NaN

a = null // 0
a = undefined // NaN
专门用来将字符串转换为数值的两个方法

parseInt() —— 将一个字符串转换为一个整数
解析时,会自左向右读取一个字符串,直到读取到字符串中所有的有效的整数
也可以使用parseInt()来对一个数字进行取整
parseFloat() —— 将一个字符串转换为浮点数
解析时,会自左向右读取一个字符串,直到读取到字符串中所有的有效的小数

let b = '123px' //123
b = 'a123' //NaN
b = '123.45' //45
b = parseInt(b) 
b = parseFloat(b) 

类型转换布尔值

所有表示空性的没有的错误的值都会转换为false: 0、NaN、空串、null、undefined、false
使用Boolean()函数来将其他类型转换为布尔值

数字:

0 和 NaN 转换为false其余是true

let a = 1 // true
a = -1 // true
a = 0 // false
a = NaN // false
a = Infinity // true
a = Boolean(a) //实际开发中仅使用一次并不需要赋值,直接把他嵌套到表达式里直接使用就可以了
字符串:

空串 转换为 false其余是true

a = 'abc' // true
a = 'true' // true
a = 'false' // true
a = '' // false
a = " " // true

null和undefined 都转换为 false

a = null
a = undefined
对象:对象会转换为true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值