资讯专栏INFORMATION COLUMN

js显示强制类型转换

yeooo / 2529人阅读

摘要:同样,也可以将数字转换为其他进制数,如转换结果转换结果转换结果对象类型中对象到字符串的转换经过了如下步骤如果对象具有方法,则调用这个方法。如果它返回一个基本类型值,将这个值转换为字符串,并返回这个字符串。

ToString

其他类型值转化为字符串类型的值通常使用String()或者toString()方法

基本类型

基本类型的字符串转化规则为:null转化为"null",undefined转化为"undefined",true转化为"true",数字遵循通用规则。注意除了null和undefined的任何值都具有toString方法。
Number类定义的toString()方法可以接受表示转换基数的可选参数,如果不指定此参数,转换规则将是基于十进进制。同样,也可以将数字转换为其他进制数,如:

var num = 20;
console.log(num.toString(2)) //转换结果"10100"
console.log(num.toString(8)) //转换结果"24"
console.log(num.toString(16))//转换结果"14"
对象类型

js中对象到字符串的转换经过了如下步骤:

如果对象具有toString()方法,则调用这个方法。如果它返回一个基本类型值,js将这个值转换为字符串,并返回这个字符串。

如果对象没有toString()方法,或者这个方法返回的不是一个基本类型值,那么js将调用valueOf()方法。如果存在这个方法,则调用,如果返回值是基本类型值,转换为字符串并返回

否则,js无法从toString()或valueOf()获得一个基本类型值,此时将会抛出类型错误异常

例如:

console.log([1].toString()) //转换结果"1"
console.log(({x:1}).toString()) //转换结果[object Object]
console.log(({x:1}).valueOf())  //转换结果"{ x: 1 }"
ToNumber

其他类型值转化为字符串类型的值通常使用Number()、parseInt()、parseFloat方法

基本类型

基本类型的数字转化规则为:null转化为0,undefined转化为NaN,true转化为1,fale转化0,字符串遵循通用规则,处理失败时返回NaN。
通过Number()传入一个字符,它会试图将其转换为一个整数或者浮点数的直接量,这个方法只能基于十进制进行转换,并且不能出现非法的尾随字符。
parseInt()函数和parseFloat()函数更加灵活,parseInt()只解析整数,可以传递第二个参数作为转换基数,parseFloat()可以解析整数和浮点数,parseInt()和parseFloat()都会跳过前导空格,尽可能解析更多数值字符,并忽略后面内容。
如果第一个非空格字符是非法的数字直接量,将返回NaN,例如:

console.log(parseInt("11",2)) //转换结果3
console.log(parseFloat("0.1")) //转换结果0.1
console.log(parseInt("a12")) //转换结果NaN
console.log(parseFloat("  4.2aa")) //转换结果4.2
对象类型

js对象转数字的过程和对象转字符串过程类似,只是它会首先尝试使用valueOf()方法:

如果对象具有valueOf()方法,后者返回一个基本类型值,则js将这个基本类型值转换为数字并返回

否则,如果对象具有toString()方法,后者返回一个基本类型值,则js将这个基本类型值转换为数字并返回

否则,将抛出类型错误异常

例如:

console.log(Number([])) //转换结果0
console.log([].valueOf()) //转换结果[]
console.log([].toString()) //转换结果""
ToBoolean

假值列表:undefined、null、false、+0、-0、NaN、""
假值列表以为的值都是真值。例如:

var a = [];
var b = {};
var c = function () {};
console.log(Boolean( a && b && c)) //true

以上内容是个人的一点总结,如果有错误或不严谨的地方,欢迎批评指正,如果喜欢,欢迎点赞收藏

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/85186.html

相关文章

  • JavaScript数据类型及(隐式)类型转换详解

    摘要:显示的调用转换过程称为显式强制类型转换,隐式的情况称为隐式强制类型转换。隐式强制类型转换让代码变得晦涩难懂而又便捷而奇妙。事实上,允许在比较中进行强制类型转换,而不允许。如果有并且返回基本类型值,就使用该值进行强制类型转换。 JavaScript是一种非常灵活的现代编程语言,灵活到使用者极其容易被忽视的它那广阔的世界以及它带给我们的无限遐想空间。本文将对JavaScript最最基础也最...

    hiyayiji 评论0 收藏0
  • JS重要知识点记录(一)

    摘要:包装对象即,与数值字符串布尔值相对应的三个原生对象。显示类型转换强制转换即,显示调用函数进行类型转换。返回对象的字符串数值或布尔值表示,通常与返回的值相同。 一、类型与包装对象 1. 类型 原始类型: number string boolean null undefined Symbol 对象类型: Object Array Function 原始类型(基本类型)和对象类型(引...

    HtmlCssJs 评论0 收藏0
  • 有关javascript强制转换不得不说的故事

    摘要:我们首先了解一下中有关类型转换的知识。新增类型抛出异常从列表可以明显看到少了一个类型转换为的规则。这里要强调一点第二个表达式没有涉及到强制类型转换。如果文中有错误或者有某些强制转换的情形没有涉及到请及时留言告知,我会修改并补充进去。 javascript是一门非常奇特的语言,它有时候奇特的会让人怀疑人生。比如让我们看一下下面的一些奇葩例子: false == 0 ...

    xcold 评论0 收藏0
  • JavaScript 类型转换

    摘要:这样导致结果不一致,等解析语句为,对空对象强制转为数字类型,即为,将非空字符串转换为数字类型,结果为。综上,右边表达式转换为。 首先从一系列让JavaScript初学者抓狂的运算说起。 1 + {} {} + 1 [] + {} {} + [] [] + [] {} + {} 能全部答对上面的运算结果,不必浪费时间继续阅读本文了。如果对某一些的结果还不确定,请慢慢往下看。 上面列的所有...

    sydMobile 评论0 收藏0
  • 【读书笔记】JavaScriptの类型

    摘要:函数类型检测是的子类型,其属性为参数个数,但是判断结果有内建函数原生函数常见的有,可能被当作构造函数来使用,创建出来的是封装了的基本类型值。构造函数可以不带关键字。建议使用和来进行显示强制转换。 前言 此篇小结来源与《你不知道的JavaScript》和《JavaScript高级程序设计》的结合??或许是的,龟速总结中... 七种内置类型 null undefined boolean ...

    cjie 评论0 收藏0

发表评论

0条评论

yeooo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<