一、任意类型值转为字符串( string )
—不涉及 symbol 类型
1.使用 toString()
类型 | 返回值 | 举例 |
---|---|---|
数值(number) | 相应的字符串 | var a = 3; a.toString; // 返回 '3' |
布尔(boolean) | true转换为字符串 'true', false转换为字符串'false' | var a= false; a.toString(); // 返回 'false' |
null | 报错 | Uncaught TypeError: Cannot read property 'toString' of null |
undefined | 报错 | Uncaught TypeError: Cannot read property 'toString' of undefined |
对象-数组(object) | 返回该数组的字符串形式 | var x = [3,4,6]; x.toString(); // 返回 '3,4,6' |
对象-非数组(object) | 返回一个类型字符串: '[object,Object]' | var x = {a: 1};x.toString(); // 返回 '[object,Object]' |
2.加法运算符
如果一个运算子是字符串,另一个运算子是非字符串,这时加号运算符会尝试把非字符串会转成字符串,再连接在一起。如
3.使用 String()
类型 | 返回值 | 举例 |
---|---|---|
数值(number) | 相应的字符串 | var a = 3; a.String; // 返回 '3' |
布尔(boolean) | true转换为字符串 'true', false转换为字符串'false' | var a= false; a.String(); // 返回 'false' |
null | 返回null | var a = null; String(a); // 返回'null' |
undefined | 返回undefined | var a = undefined; String(a); // 返回'undefined' |
对象-数组(object) | 返回该数组的字符串形式 | var x = [3,4,6]; x.String(); // 返回 '3,4,6' |
对象-非数组(object) | 返回一个类型字符串: '[object,Object]' | var x = {a: 1};x.String(); // 返回 '[object,Object]' |
二、任意类型值转为布尔( boolean)
—不涉及 symbol 类型
1.使用 Boolean()
五个 falsy 值:0,NaN,null,undefined,''(空字符串)。
除以上五个 falsy 值返回 false 以外,所有数据类型值全部返回 true。
2.取反运算符(!)
对某一值接连前缀两个反运算符(!)相当于将其转为对应的布尔值,与 Boolean 函数的作用相同,此法较 Boolean()更为常用。
三、任意类型值转为数值( number)
—不涉及 symbol 类型
1.使用 Number()
2.使用 parseInt(): 用于将字符串转为整数
规则:
(1) 如果字符串头部有空格,空格会被自动去除。
(2) 如果 parseInt 的参数不是字符串,则会先转为字符串再转换。
(3) 字符串转为整数的时候,是一个个字符依次转换,如果遇到不能转为数字的字符,就不再进行下去,返回已经转好的部分。
(4) 如果字符串的第一个字符不能转化为数字(后面跟着数字的正负号除外),返回 NaN。
(5) 如果字符串以 0x 或 0X 开头,parseInt 会将其按照十六进制数解析;如果字符串以 0 开头,将其按照十进制解析。
3.使用 parseFloat(): 用于将一个字符串转为浮点数
规则:
(1) 如果字符串符合科学计数法,则会进行相应的转换。
(2) 如果字符串包含不能转为浮点数的字符,则不再进行往后转换,返回已经转好的部分。
(3) 会自动过滤字符串前导的空格。
(4) 如果参数不是字符串,或者字符串的第一个字符不能转化为浮点数,则返回 NaN。
(5) 上面代码中,尤其值得注意,parseFloat 会将空字符串转为 NaN。
4.减零运算(-0):任一值减 0 后可以得到相应的 number
5.加正号运算(+): 任一值前面加一个 + 后可以得到相应的 number