概述
JavaScript类型转换:
值 | 转换为字符串 | 转换为数字 | 转换为布尔值 | 转换为变量 |
undefined | "undefined" | NaN | false | throws TypeError |
null | "null" | 0 | false | throws TypeError |
true | "true" | 1 | new Boolean(true) | |
false | "false" | 0 | new Boolean(false) | |
""(空字符串) | 0 | false | new String("") | |
"1.2"(非空,数字) | 1.2 | true | new String("1.2") | |
"one"(非空,非数字) | NaN | true | new String("one") | |
0 | "0" | false | new Number(0) | |
-0 | "0" | false | new Number(-0) | |
NaN | "NaN" | false | new Number(NaN) | |
Infinity | "Infinity" | true | new Number(Infinity) | |
-Infinity | "-Infinity" | true | new Number(-Infinity) | |
1(非无穷大,非0) | “1” | true | new Number(1) | |
{}(任意对象) | true | |||
[](任意数组) | “” | 0 | true | |
[9](1个数字元素) | “9” | 9 | true | |
['a'](其他数组) | 使用join()方法 | NaN | true | |
function(){}(任意函数) | NaN | true | ||
转换和相等性
例如,下面这些比较结果均是 true:
null == undefined
"0" == 0
0 == false
"0" == false
显式类型转换
做显式类型转换最简单的方法就是使用 Boolean(), Number(), String(), Object() 函数。当不通过 new 运算符调用这些函数时,它们会作为类型转换函数:
例如:
Number("3") // => 3
String(false) // => "false"
Boolean([]) // => true
Object(3) // =>new Number(3)
对象转换为原始值
所有的对象继承了两个转换方法:
toString()方法 —— 它的作用是返回一个反应这个对象的字符串,例如:
[1,2,3].toString() //=> "1,2,3"
(function(x){f(x);}).toString() //=> "function(x){n f(x); n}"
/d+/g.toString() //=>"/\d+/g"
new Date(2010,0,1).toString() //=>"Fri Jan 01 2010 00:00:00 GMT-0800 (PST)"
value0f()方法 ——
对象到字符串的转换经过了如下这些步骤:
- 如果对象具有toString()方法,则调用这个方法。如果它返回一个原始值,JS将这个值转换为zifuchau,并返回这个字符串结果
- 如果对象没有toString()方法,或者这个方法并不返回一个原始值,那么JS会调用valueOf()方法。如果存在这个方法,则JS调用它,如果返回值是原始值,JavaScript将这个值转换为字符串,并返回字符串结果
- 否则,JS无法从toString()或valueOf()获得一个原始值,因此这时它将抛出一个类型错误异常
在对象到数字的转换过程中,JS会首先尝试使用valueOf方法:
- 如果对象具有valueOf(0方法,后者返回一个原始值,则JavaScript将这个原始值转换为数字
- 否则,如果对象具有toString()方法,后者返回一个原始值,则JS将其转换并返回
- 否则,JS抛出一个类型异常错误
最后
以上就是背后御姐为你收集整理的【JS】【Core】类型转换转换和相等性显式类型转换对象转换为原始值的全部内容,希望文章能够帮你解决【JS】【Core】类型转换转换和相等性显式类型转换对象转换为原始值所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复