JavaScript - 数据类型及类型转换

2 数据类型

2.1 数据类型的划分

① 原始类型
number		数值类型
string		字符串类型
boolean		布尔类型
undefined	未定义类型
null		空类型
② 对象类型
Array		数组类型
Object		对象类型
Function    函数类型
....

2.2 判断数据的类型

typeof()

注意(特殊现象):

使用 typeof 判断 null 的数据类型,返回的是 object。

2.3 number 数值类型

① 整型

整型就是整数的数字。 数字直接量有十进制表示法,八进制表示法以及十六进制表示法。

892;  // 10 进制表示法
065;  // 8 进制表示   以0开头
0x8a; // 16 进制表示 以0x开头
② 浮点型

浮点型就是带小数点的数字。

123.34;  // 浮点数
3.4e10;  // 科学计数法表示的数字

注意: 浮点型数字的计算存在精度问题。

③ NaN

NaN 表示 Not A Number,是 number 类型的一个值。

可以使用函数 isNaN() 判断一个数据是否是 NaN, 如果是 NaN 返回 true,否则返回 false。

④ JavaScript 中数字的有效范围

JS 中可表示的数字有效范围是: -5e324 ~ 1.7976931348623157e+308

如果数字超出有效范围,使用 Infinity(正无穷) 和 -Infinity(负无穷) 表示。

可以使用函数 isFinite() 判断一个数字是否在有效范围内,在有效范围内返回 true,不在有效范围内返回 false。 不在有效范围内的数值有: Infinity、-Infinity、NaN。

2.4 string 字符串类型

① 字符串的表示方式

可以使用单引号或者双引号定义字符串,二者没有任何区别。

'字符串内容';
"字符串内容"

单引号定义的字符串内容中不能有单引号,双引号定义的字符串内容中不能有双引号。

② 转义字符

转义字符用于表示一些无法直接输入的字符。

\n		表示换行符
\'		表示单引号
\"		表示双引号
\\		表示反斜杠本身
\uXXXX  unicode编码

2.5 boolean 布尔类型

boolean 类型用于表示一种状态,要么是要么否。

boolean 类型只有两种值, true 表示是,false 表示否。

2.6 null 和 undefined

undefined 主要是被动产生,如声明了变量没有赋值、使用不存的属性等。

null 可以主动定义,比如声明了变量暂时不知道赋哪个值,可以先赋值为 null。

3 数据类型转换

3.1 数据类型转换的规则

① 其他类型转为 number 类型
string -> number:
	① 纯数字字符串可以转为一个有效number数字, 注意科学计算法和十六进制的表示也是纯数字。
	② 空字符串转为 0。
	③ 其他形式的字符串转为 NaN。
	④ string转为number的时候,取去掉两端的空格。

boolan -> number:
	true 转为 1。
	false 转为 0。
	
	
null -> number:
	转为 0
	

undefined -> number:
	转为 NaN
② 其他类型转为 string 类型
数据长什么转为字符串就什么样
③ 其他类型转为 boolean 类型
number -> boolean:
	① NaN 和 0 转为 false
	② 其他数字转为 true
	
string -> boolean:
	① 空字符串转为 false
	② 其他字符串转为 true (string转为boolean两端空格不会去掉)
	
null -> boolean:
	转为 false
	
undefined -> boolean:
	转为 false

总结: 0、NaN、空字符串、null、undefined 转为 boolean 会转为 false,其他的数据都转为 true。

3.2 强制类型转换(显示转换)

① 强制把其他类型转为 number 类型的函数
Number()
parseInt()
parseFloat()

parentInt()、parseFloat() 与 Number() 的区别:

  1. 使用 parseInt() 和 parseFloat() 纯数字字符串可以转为有效数字(包括十六进制表示的,不包括科学计数法表示)。
  2. 使用 parseInt() 和 parseFloat() ,以数字开头也可以转为有效数字。
  3. 其他字符串都转为 NaN。
  4. parseInt() 和 parseFloat() 可以用于提取字符串中的数字,所以如果要转换的数据类型不是字符串,统统转为 NaN

parseInt() 与 parseFloat() 的区别:

  1. parseInt() 提取的是字符串中的整数部分(舍去小数部分)。
  2. parseFloat() 连同小数部分也可以提取。

注意:

Number() 的转换规则才是标准的转换规则! 自动类型转换的规则与 Number() 是一致的。

② 强制把其他类型转为 string 类型的函数
String()
③ 强制把其他类型转为 boolean 类型的函数
Boolean()

3.3 自动类型转换(隐式转换)

1. JS 作为弱类型的语言,数据类型可以自动转换。
2. 数据参与运算的时候,不符合该运算对数据类型的要求,数据会自动进行类型转换。
3. 运算对数据类型的要求是由运算符决定
4. 自动类型转换的规则与强制类型转换是一致的

3.4 关于 NaN 的总结

NaN 具有如下两个特点:

  1. NaN 与任何数据进行任何运算,结果仍然是 NaN。
  2. NaN 与任何数据都不相等,包括自己。

关于 isNaN() 的特点:

  1. isNaN() 用于判断一个数据是否是 NaN,是 NaN 返回 true,否则 false
  2. isNaN 也可以判断number类型以外的数据,如果该数据能够转为NaN,返回结果也是 true。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值