在Javascript中数据类型的转化分为两种:自动转化和强制转化
我们了解到数据类型有布尔数据类型、数值类型(整数、浮点数、NaN)、字符串、undefined、null、数组、对象、函数。
一般数据类型的转化是向布尔类型、数值类型、字符串类型之间转化。
在自动转化中:
其他数据类型转化为布尔数据类型:
布尔数据类型要么是true,要么是false
转化为false的数据类型有:0 、''(空字符串) 、undefined 、null、NaN。其他的数据类型都转化为true。
方法是if语句。
其他类型转化为数值类型:
true转化为1,false转化为0,(undefined、数组、对象、函数)转化为NaN,null转化为0
字符串的比较复杂:纯数字的字符串如“123456”转化为字符串里面的内容也就是123456;不符合数字规范的转化为NaN如‘123abc’
数组,对象,函数
如果是 + 加号 执行的是字符串拼接效果
按照这些数据类型转化为字符串的原则来转化
如果是 其他形式的运算 执行结果都是 NaN
减号的话结果都是NaN
其他类型转化为字符串类型:
布尔值 true ---> 字符串 'true' 布尔值 false ---> 字符串 'fasle' undefined ---> 字符串 'undefined' null ---> 字符串 'null'
数值 ---> 将数值解析转化为 对应的 纯数字的字符串(输出结果没有引号)
数组 ---> 将 [] 中的内容,转化为字符串的形式,进行拼接 对象 ---> 任何对象,任何内容,都会转化为 [object Object] 固定的内容形式
函数 ---> 将所有的程序代码,转化为字符串
其他类型强制转化为布尔类型:
通过console.log(Boolean(数据/变量));来实现强制转化的
转化原理与自动转化一样:转化为falsh:0 ‘’ undefined null NaN其他转化为true。
其他类型强制转化为字符串:
第一种是数值的进制转化 .toString()比如:var int=123;console.log(int.toString(2));就是转化为2进制的数。
第二种是string()将变量或者数据,转化为字符串, 原则按照自动转化的原则来执行,不会改变变量中存储的原始数值
其他类型转化为数值类型:
与自动转化为数值类型原理相同
方法:1、ParseInt()取整数部分,从数据左侧开始解析整数内容
// console.log( parseInt(true) ); // 都是 NaN
// console.log( parseInt(false) );
// console.log( parseInt(null) );
// console.log( parseInt(undefined) );
// console.log( parseInt( {name:'zhangsan'} ) );
// console.log( parseInt( function fun(){console.log('abc')} ) );
数组执行,是获取 数值部分 也就是 没有 []的部分,获取第一个数值的整数部分,如果有就获取,如果没有,结果是NaN
如果是整数就直接获取,如果是浮点数,或者科学计数法,就获取整数部分
字符串有所不同,如果是纯字符串的话直接输出引号里的数值的整数部分,如果是不规则的数值字符串就输出从左至右解析数值的整数部分。科学计数法也是从左至右解析整数部分,不会算出来在解析。
2、ParseFloat(变量或数值)
获取浮点数部分
// console.log( parseFloat(true) ); // 都是 NaN
// console.log( parseFloat(false) );
// console.log( parseFloat(null) );
// console.log( parseFloat(undefined) );
// console.log( parseFloat( {name:'zhangsan'} ) );
// console.log( parseFloat( function fun(){console.log('abc')} ) );
数值 整数,浮点数,都会完整获取 例如console.log(ParseFloat(‘100.123’));输出的是100.123
在科学计数法中转化与ParseInt有些不同,ParseFloat是将内容解析出来,比如‘123.4567e3’输出的是123456.7
而ParseInt输出的则是123
逆战班0314