本文摘自PHP中文网,作者青灯夜游,侵删。
强制转换方法:1、使用ToString()、ToNumber()或ToBoolean()方法;2、使用String()、Number()或Boolean()方法;3、使用“+”或“-”运算符;4、使用“if()”、“while()”等语句。
本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。
一、类型转换规则
1.ToString
对于普通对象来说,除非自行定义toString方法,否则就会调用Object.prototype.toString()方法,如果对象有自己的toString方法,字符串化就会调用该方法并使用其返回值。
2.ToNumber
- 对于基本类型其中true转换为1,false转换为0;undefined 转换为 NaN,null 转换为 0。
- 对于对象类型会首先转换成为基本类型值如果返回的是非数字的基本类型值,则再遵循基本类型转换规则将其强制转换为数字。为了将值转换为相应的基本类型值,抽象操作ToPrimitive会首先检查该值是否有 valueOf() 方法。如果有并且返回基本类型值,再使用该值进行强制类型转换。如果没有就使用 toString() 的返回值(如果存在)来进行强制类型转换。如果 valueOf() 和 toString() 均不返回基本类型值,会产生 TypeError 错误。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
3.ToBoolean
JavaScript中的值可以分为能被强制转换为false的值和能被强制转换为true的值两类。
假值:
- undefined
- null
- false
- +0、-0、NaN
- ""
真值:除了以上列表的都可以理解为是真值,所有对象都是真值
1 2 3 4 5 6 7 8 9 |
|
二、显示强制类型转换
1.字符串与数字之间的显示转换
字符串和数字之间的转换是通过 String(..) 和 Number(..) 这两个内建函数。
除了 String(..) 和 Number(..) 以外,还有其他方法可以实现字符串和数字之间的显式 转换:
1 2 3 4 5 6 |
|
a.toString() 是显式的,不过其中涉及隐式转换。因为 toString() 对 42 这样的基本类型值不适用,所以 JavaScript 引擎会自动为 42 创建一个封装对象,然后对该对象调用 toString()。这里显式转换中含有隐式转换。
2.显示转换为布尔值
相关阅读 >>
详解javascript中的service workers!
更多相关阅读请进入《javascript》频道 >>

Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者