javascript是一种弱类型的语言,变量和类型无关,所以有时需要我们进行类型转换
一、数字型转换(number)
两种方法:
1、number:类型转化走的是v8引擎最底层机制的转化规则:
先将引用类型转化为字符串(tostring)方法,再把字符串转化为数字
2、parsefloat、parseInt:是提供额外的方法转化规则
parseint、parsefloat(【va】,【进制】),对字符串从左到右依次查找有效的数字字符,知道遇到非有效字符串,停止查找,把找到的当做数字返回,如果不是字符串,先转化为字符串在使用此方法:
isNaN判断数字类型:如果当前类型为数字类型,返回false,否则返回true
二、字符串类型转换(string)
1.原始类型,使用tostring方法()就是之前是什么样子 在外层包一层引号:
数字 => 字符串:包裹一层引号;
Nan => 字符串: 'Nan' ;
true => 字符串: 'true';
null => 字符串: 'null' (浏览器会报错(禁止你使用)—— 通常可以进行转换);
undefined => 字符串:'undefined' (浏览器会报错(禁止你使用)—— 通常可以进行转换);
Object => 字符串: '[object,Object]' 。
2.普通对象转化的结果为 “ [object,object] ”,因为Object.prototype.toString 方法不是转化为字符串的,而是用来检测数据类型的:
3.把字符串转数字
只要遇到一个非有效数字字符,结果就是NaN
三、布尔类型转换(boolean)
1.【‘ ’、underfined、Nan、null、false、0】这6个值在转换成为布尔值的时候为false,其他类型都是true
2.把布尔转数字
四、原始类型的转换
转化原始类型分为两种情况:转化为字符串类型或其他原始类型。
如果已经是原始类型,不需要再进行转化。
如果转字符串类型,就调用内置函数中的 toString() 方法。
如果是其他基本类型,则调用内置函数中的 valueOf() 方法。
如果返回的不是原始类型,则会继续调用 toString() 方法。
如果还没有返回原始类型,则报错。