javascript中的Number类型转换详解编程语言

javascript中的Number类型转换详解编程语言

上面描述的是 String 类型的转换,很多时候也会发生 Number 类型的转换:

    调用 Number() 函数,强制进行 Number 类型转换

    调用 Math.sqrt() 这类参数需要 Number 类型的方法

    obj == 1  ,进行对比的时候

    obj + 1  , 进行运算的时候

与 String 类型转换相似,但是 Number 类型刚好反过来,先查询自身的  valueOf 方法,再查询自己  toString 方法:

    1.如果  valueOf  存在,且返回原始类型数据,返回  valueOf  的结果。

    2.如果  toString  存在,且返回原始类型数据,返回  toString  的结果。

    3.其他情况,抛出错误。

按照上述步骤,分别尝试一下:

var obj = {

    valueOf: function() {

        console.log(‘调用 valueOf’);

        return 5;

    }

}

console.log(obj + 1);

// 调用 valueOf

// 6

var obj = {

    valueOf: function() {

        console.log(‘调用 valueOf’);

        return {};

    },

    toString: function() {

        console.log(‘调用 toString’);

        return 10;

    }

}

console.log(obj + 1);

// 调用 valueOf

// 调用 toString

// 11

var obj = {

    valueOf: function() {

        console.log(‘调用 valueOf’);

        return {};

    },

    toString: function() {

        console.log(‘调用 toString’);

        return {};

    }

}

console.log(obj + 1);

// 调用 valueOf

// 调用 toString

// Uncaught TypeError: Cannot convert object to primitive value

javascript中的Number类型转换详解编程语言

转载请注明来源网站:blog.ytso.com谢谢!

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/14955.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论