博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js显示强制类型转换
阅读量:7122 次
发布时间:2019-06-28

本文共 1772 字,大约阅读时间需要 5 分钟。

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中对象到字符串的转换经过了如下步骤:

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

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

  3. 否则,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)) //转换结果3console.log(parseFloat('0.1')) //转换结果0.1console.log(parseInt('a12')) //转换结果NaNconsole.log(parseFloat('  4.2aa')) //转换结果4.2

对象类型

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

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

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

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

例如:

console.log(Number([])) //转换结果0console.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

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

转载地址:http://iwsel.baihongyu.com/

你可能感兴趣的文章
adt 22.6出现的问题
查看>>
Struts2(补充)
查看>>
Linux文件系统的目录结构详解
查看>>
MySQL server PID file could not be found!
查看>>
洛谷 P3049园林绿化 题解
查看>>
eclipse New菜单项的显示问题
查看>>
python3常用内置函数总结
查看>>
二分法在生活中的一次应用
查看>>
iOS7新特性的兼容性处理方法 之三
查看>>
转载:Python正则表达式
查看>>
UVA10140 Prime Distance
查看>>
.NET深入 c#数据类型2
查看>>
leetcode Database3
查看>>
PHP环境构架
查看>>
php中三元运算符用法
查看>>
iOS 中UITableViewController 中tableView 会被状态栏覆盖的问题
查看>>
Ubuntu系统用户忘记密码
查看>>
31天重构学习笔记17. 提取父类
查看>>
201671010444 夏向明 词频统计软件项目报告
查看>>
MatlabSourceCode
查看>>