类型转换
类型转换: 显示类型转换
隐式类型转换
前提:知道数据类型
js数据类型包括:原始类型、对象
原始类型:Boolean、String、Number、Undefined、Symbol、null
对象:Object
显示类型转换与隐式类型转换都是通过 Number函数、String函数、Boolean函数 三个进行类型转换的。
显示类型转换:
Number函数转换规制:
一、对原始类型转换
1、对数值,转换后还是原来的值。
2、对字符串,如果是纯数值的字符串类型,则转换为对应的数值,如果是混合则转换为NaN,没有的情况下转换为0。
3、对布尔值,true转换为1,false转换为0
4、对于Undefined,直接转换为NaN
5、对于null,直接转换为0
二、对对象类型转换
1、若是对对象类型转换,会先调用对象本省的valueOf方法,《valueOf方法:1、如果该方法返回原始类型的值(数值、字符串、布尔值),
则会对返回的值使用Number方法(遵循Number函数对原始类型的转换规制),至此。2、如果该方法返回复合类型,会调用对象本身的toString()方法,
如果toString()方法返回的是原始类型的值,会调用Number方法,至此。若返回的是复合类型,则会报错。》
String函数转换规制:
一、对原始类型转换
1、对数值,转换为响应的字符串。
2、对字符串,转换后还是字符串。
3、对布尔值,true转换为'true',false转换为'false'
4、对于Undefined,直接转换为'undefined'
5、对于null,直接转换为'null'
二、对对象类型转换
1、若是对对象类型转换,会先调用对象本身的toString()方法,《toString()方法:1、如果该方法返回原始类型的值,则会对返回的值使用String()
方法(遵循String()函数对原始类型的转换规制),至此。2、如果该方法返回复合类型,会调用对象本身的valueOf()方法,如果valueOf()方法
返回的是原始类型的值,会调用string()方法,至此。若返回的是复合类型,则会报错。》
Boolean函数转换规制:
一、对原始类型转换
Boolean只需记住几个转换为false外,其余全部为true
-0,+0,undefined,NaN,''(空) 这几个都为false,其余都是true。
隐式类型转换:程序自动进行转换。
四则运算(+、-、*、/)、程序本身的如console、alert等。
//Number函数 // 一、原始类型转换 // 数值 const a = 100 console.log(Number(a)) // 字符串 const b = '101' const c = '101zbc' console.log(Number(b)) console.log(Number(c)) // 布尔值 const d = true const e = false console.log(Number(d)) console.log(Number(e)) // 对于Undefined const f = undefined console.log(Number(f)) // 对于null const g = null console.log(Number(g)) // 二、对象类型 const h = { a:1 } // 过程规则 // const abc = h.valueOf() // {a: 1} // const abe = abc.toString() // "[object Object]" // abe.toString() // NaN console.log(Number(h)) //NaN console.log('-------------------------------------------------') // ------------------------------------------------------------------------------------ //String函数 // 一、原始类型转换 // 数值 const sa = 100 console.log(String(sa)) // 字符串 const sb = '101' const sc = '101zbc' console.log(String(sb)) console.log(String(sc)) // 布尔值 const sd = true const se = false console.log(String(sd)) console.log(String(se)) // 对于Undefined const sf = undefined console.log(String(sf)) // 对于null const sg = null console.log(String(sg)) // 二、对象类型 const sh = { a:1, toString:function(){ return {b:12} } } // // 过程规则 // const abc = sh.toString() // {b:12} // const abe = abc.valueOf() // 非原始类型,报错 console.log(String(sh)) // ------------------------------------------------------------------------------------

浙公网安备 33010602011771号