数据类型转化,就是将当前数据类型转化为其他数据类型 , 分为自动转化和强制转化
一、自动转化:
1,其他数据类型自动转化为布尔类型
**在 执行 if 判断时 ,其他数据类型会自动转化为布尔类型**
0 、 '' (空字符串) 、 undefined 、 null 、 NaN 这五种情况转化为false(注0.0和0.00000等 都算是0 )
其他的所有都会转化为 true 例如 : ' ' (字符串里空格) 、 '0' (字符串0)等
2,其他类型自动转化为字符串
**执行字符串拼接时, 会将其他数据类型转化为字符串类型**
拼接符号 : +号 两侧应该都是字符串类型, 如果是其他类型,会自动转化为 字符串类型,再执行拼接
转化原则:
布尔值 true ---> 字符串 'true'
布尔值 false ---> 字符串 'fasle'
undefined ---> 字符串 'undefined'
unll ---> 字符串 'null'
数值 ---> 将数值解析转化为对应的纯数字的字符串 ; 科学技术法会解析,然后再进行拼接。
数组 ---> 将 [] 中的内容,转化为字符串的形式,进行拼接 [1,2,3,4] --> 结果:1,2,3,4
对象 ---> 任何对象,任何内容,都会转化为: [object Object] 固定的内容形式,
注意第一个object的首字母小写,第二个大写。
函数 ---> 将所有的程序代码,全部转化为字符串
3,其他类型自动转化为数值
**在执行数学运算时 会触发数据类型的自动转化**
转化原则:
true ---> 1
false ---> 0
undefined : 转化为 NaN
null : 转化为 0
字符串 :
如果整个字符串,是纯数字字符串,或者符合科学计数法 ---> 转化为对应的数值
科学技术法会解析,然后再拼接
如果字符串内有不符合数字规范的内容 ---> 转化为 NaN
数组,对象,函数:
如果是 + 加号 执行的是字符串拼接效果 , 按照这些数据类型转化为字符串的原则来转化
如果是 其他形式的运算 执行结果都是 NaN
二、强制转化:
1,其他数据类型,强制转化为布尔类型 : Boolean( 数据/变量 )
**Boolean() 这个方法 不会改变 变量中存储的原始数值**
只是将变量中的数值,解析获取,再转化输出,不会改变变量中存储的内容
转化原则与自动转化原则相同:
false : 0 ''(空字符串) undefined null NaN
true : 除上面以外其他数据,都转化为true
2,其他类型强制转化为字符串类型
**方法1 变量.toString(进制类型)**
将数值强制转化为字符串,并且可以设定转化的进制
.toString(数) 之前,不能直接写数值,必须是写成变量的形式
进制常用的数值是 2 8 16
可以设定的范围是 2 - 36 进制 。因为:10个数值+26个英文字母,最多只能是36个。
例:
var int = 100;
console.log(int.toString(2)); // 这样就是以2进制形式输出, .toString()中没有输入数值,默认执行十进制
**方法2 String( 变量 / 数据 )**
将变量或者数据,转化为字符串
原则按照自动转化的原则来执行
不会改变变量中存储的原始数值
3,将其他数据类型强制转化为 数值类型
**方法1 Number(变量/数值)**
将其他类型强制转化为数值类型,转化原则与自动转化选择相同
true ---> 1
false ---> 0
undefined : 转化为 NaN
null : 转化为 0
字符串 :
如果整个字符串,是纯数字字符串,或者符合科学计数法 ---> 转化为对应的数值
科学技术法会解析,然后再拼接
如果字符串内有不符合数字规范的内容 ---> 转化为 NaN
数组,对象,函数:
执行结果都是 NaN
**方法2 parseInt(变量 / 数据)**
是获取变量或者数据的整数部分 , 从数据的左侧起解析获取整数内容
true false undefined null 对象 函数 : 都转化为 NaN
数组:获取[]中的第一个数值的整数部分,如果有就获取,如果没有,结果是NaN
数值:如果是整数就直接获取,如果是浮点数,或者科学计数法,就获取整数部分, 科学计数法是解析之后再获取
字符串:
如果是纯数字的字符串,就直接获取整数部分,科学计数法不会解析;
如果字符串含有不是数字的部分,则从左侧开始, 找整数部分,如果有就输出数,没有就 NaN
**方法3 parseFloat( 变量 / 数值 )**
获取浮点数部分
true false undefined null 对象 函数 : 都是 NaN
数组:获取[]中第一个数值的整数部分,如果有就获取,如果没有,结果是NaN
数值: 整数,浮点数,都会完整获取,科学计数法是解析之后再获取
字符串:
如果是纯数字的字符串,就全部获取, 科学技术法会解析;
如果字符串含有不是数字的部分,则从左侧开始解析符合浮点数的部分,如果有就输出数,没有就 NaN