JavaScript中数据类型的转化
含义:数据类型转化,就是将当前数据类型转化为其他数据类型;
分类:数据类型的转化分为自动转化和强制转化:
-
自动转化:计算机程序,自动完成的转化;
-
强制转化:程序员强行完成的转化;
自动转化:
1.布尔类型的自动转化
在执行if判断时,其他数据类型会自动转化为布尔类型;
转化原则:
- false的五种情况:0(零) 、 ‘’(空字符串)、undefind、null、NaN;
- true:其他的所有都会转化为 true;
if判断的基本语法:
if语句会根据**()**中表达式的结果来执行程序;
- 如果表达式的结果 为 true ,执行 **if{}**中的程序;
- 如果表达式的结果 为 false ,执行 **else{}**中的程序;
案例:
输出程序为:转化为false;
【注】()中的表达式可以是任意内容,
其他类型(除true,false外),写在()中会自动转化为布尔类型。
2.转化为字符串类型
在执行字符串拼接时,其他数据类型会自动转化为字符串类型;
执行字符串拼接, 拼接符号 **+**号 两侧 应该都是 字符串类型;
如果是其他类型 JavaScript程序,会自动转化为 字符串类型,再执行拼接;
转化原则:
1.基本数据类型 直接 转化为 字符串形式
- 布尔类型 true ----> 字符串**‘true’**
- 布尔值 false —> 字符串 'fasle’
- undefined —> 字符串 'undefined’
- unll —> 字符串 'null’
- 数值 —> 将数值解析转化为 对应的 纯数字的字符串
案例
输出
2.引用数据类型
-
数组 : 将 [] 内的数据,转化为字符串
-
对象 : 一律转化为 [object Object]
-
函数 : 将函数的所有内容,都转化为字符串
案例:
输出结果:
3.转化为数值类型
在执行数学运算时,其他数据类型会自动转化为数值类型
转化原则:
- 布尔类型 : ture—>1
false—>0
-
undefined : NaN
-
null : 0
案例
输出
-
字符串 : 是纯数字的,会转化为对应的数值
有不符合数值规范的,转化为 NaN
案例
输出
- 数组,对象,函数:
如果是 + 加号,执行的是字符串拼接效果
按照这些数据类型转化为字符串的原则来转化
如果是其他形式的运算执行结果都是 NaN
案例
输出
强制转化:
1.转化为布尔类型
其他数据类型,强制转化为布尔类型,就是使用JavaScript中定义好的 方法/函数;
Boolean( 数据/变量 )
转化原则与自动转化原则相同
即:
- false : 0 ‘’ undefined null NaN
- true : 其他数据,都转化为true
【注】Boolean() 这个方法 不会改变 变量中存储的原始数值
案例
输出
2.转化为字符串
字符串拼接时,会将其他数据类型自动转化为字符串
原则与自动转化原则相同
即:
1》.基本数据类型 直接 转化为 字符串形式**
- 布尔类型 true ----> 字符串**‘true’**
- 布尔值 false —> 字符串 'fasle’
- undefined —> 字符串 'undefined’
- unll —> 字符串 'null’
- 数值 —> 将数值解析转化为 对应的 纯数字的字符串
2》.引用数据类型
数组 : 将 [] 内的数据,转化为字符串
对象 : 一律转化为 [object Object]
函数 : 将函数的所有内容,都转化为字符串
【注】 不会改变变量中存储的数据
方法1:String(变量 / 数据)
将变量或者数据,转化为字符串
原则与自动转化原则相同
案例
输出
【注】不会改变变量中存储的数据
方法2: 变量.toString(进制类型)
- 将数值强制转化为字符串,并且可以设定转化的进制
- .toString() 之前,不能直接写数值,必须是写成变量的形式
- 进制常用的数值是 2 8 16
- 可以设定的范围是 2 - 36 进制 10个数值+26个英文字母
案例
输出
3.转化为数值
1》。Number(数值/变量)
与自动转化原则相同
即:
- 布尔类型 : ture—>1
false—>0
- undefined : NaN
- null : 0
- 字符串 : 是纯数字的,会转化为对应的数值
有不符合数值规范的,转化为 NaN
- 数组,对象,函数:
如果是 + 加号,执行的是字符串拼接效果
按照这些数据类型转化为字符串的原则来转化
如果是其他形式的运算执行结果都是 NaN
案例
【注】不会改变,变量中存储的数值
2》。 parseInt(数值/变量)
从数据的左侧起 获取数据的整数部分
布尔类型 undefined null 对象 函数 —> NaN
案例
输出结果:都是NaN
数组
- 是获取数组中 第一个单元的 整数部分
- 有整数部分,执行结果就是这个整数部分的内容
- 没有整数部分,执行结果是 NaN
数值
- 整数正常获取 浮点数获取小数点之前的部分
案例
输出
字符串:
- 整数,是正常获取
- 浮点数,获取整数部分,也就是小数点之前
- 科学计数法 获取 e字符串之前的整数部分
- 带有不符合数值规范的内容,获取从左侧起,符合整数规范的部分
案例
输出
3》。parseFloat(数值/变量)
从数据的左侧起 获取浮点数部分
布尔类型 undefined null 对象 函数 —> NaN
数组
- 是获取数组中 第一个单元的 整数部分
- 有整数部分,执行结果就是这个整数部分的内容
- 没有整数部分,执行结果是 NaN
案例
输出结果:都是NaN
数值
- 整数,浮点数,科学计数法会先解析 都会完整获取
案例
输出
字符串
- 整数,是正常获取
- 浮点数,是正常获取浮点数部分
- 科学计数法 会解析成浮点数来获取结果
- 带有不符合数值规范的内容,获取从左侧起,符合整数规范的部分
案例
输出