javascript怎么进行强制类型转换


本文摘自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

let a = {

    valueOf:function(){

        return "42";

    }

};

let b = {

    toString:function(){

        return "42";

    }

};

let c = [4,2];

c.toString = function(){

    return this.join(""); //"42"

};

 

Number(a);     //42

Number(b);     //42

Number(c);     //42

Number('');    //0

Number([]);    //0

Number(["abc"];//NaN

3.ToBoolean

JavaScript中的值可以分为能被强制转换为false的值和能被强制转换为true的值两类。
假值:

  • undefined
  • null
  • false
  • +0、-0、NaN
  • ""

真值:除了以上列表的都可以理解为是真值,所有对象都是真值

1

2

3

4

5

6

7

8

9

let a1 = new Boolean( false );

let b1 = new Number( 0 );

let c1 = new String( "" );

let d1 = Boolean(a1 && b1 && c1); //true

 

let a2 = [];

let b2 = {};

let c2 = function(){};

let d2 = Boolean(a2 && b2 && c2); //true

二、显示强制类型转换

1.字符串与数字之间的显示转换

字符串和数字之间的转换是通过 String(..)Number(..) 这两个内建函数。
除了 String(..) 和 Number(..) 以外,还有其他方法可以实现字符串和数字之间的显式 转换:

1

2

3

4

5

6

let a = 42;

let b = a.toString();

let c = "3.14";

let d = +c;

b; // "42"

d; // 3.14

a.toString() 是显式的,不过其中涉及隐式转换。因为 toString() 对 42 这样的基本类型值不适用,所以 JavaScript 引擎会自动为 42 创建一个封装对象,然后对该对象调用 toString()。这里显式转换中含有隐式转换。

2.显示转换为布尔值

阅读剩余部分

相关阅读 >>

详解javascript中的service workers!

浏览器不支持javascript怎么办

javascript放在什么标签内

javascript数组如何转为string

head标签中有什么属性?

javascript如何实现json转数组

d3js是什么

jsp里面怎么写javascript

javascript输出语句怎么打

javascript怎么保留两位小数

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...