我是靠谱客的博主 背后御姐,最近开发中收集的这篇文章主要介绍【JS】【Core】类型转换转换和相等性显式类型转换对象转换为原始值,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

JavaScript类型转换:

转换为字符串转换为数字转换为布尔值转换为变量
undefined"undefined"NaNfalsethrows TypeError
null"null"0falsethrows TypeError
true"true"1 new Boolean(true)
false"false"0 new Boolean(false)
""(空字符串) 0falsenew String("")
"1.2"(非空,数字) 1.2truenew String("1.2")
"one"(非空,非数字) NaNtruenew String("one")
0"0" falsenew Number(0)
-0"0" falsenew Number(-0)
NaN"NaN" falsenew Number(NaN)
Infinity"Infinity" truenew Number(Infinity)
-Infinity"-Infinity" truenew Number(-Infinity)
1(非无穷大,非0)“1” truenew Number(1)
{}(任意对象)  true 
[](任意数组)“”0true 
[9](1个数字元素)“9”9true 
['a'](其他数组)使用join()方法NaNtrue 
function(){}(任意函数) NaNtrue 
     

转换和相等性

例如,下面这些比较结果均是 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】类型转换转换和相等性显式类型转换对象转换为原始值所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部