+运算符

2018-04-21  本文已影响0人  张鸽

遵循以下规则:

在 JavaScript 中,一共有两种类型的值:

类型
原始值(primitives) undefined、null、boolean、number、string
对象值(objects) 除了原始值外,其他的所有值都是对象类型的值,包括数组(array)和函数(function)。

原始值转换成数字

参数 结果
undefined NaN
null +0
boolean true被转换为1,false转换为+0
number 无需转换
string 由字符串解析为数字。例如,"324"被转换为324

原始值转换为字符串

参数 结果
undefined "undefined"
null "null"
boolean "true" 或者 "false"
number 数字作为字符串。比如,"1.765"
string 无需转换

对于+操作符来说,两个操作数要么都为字符串,要么全部为数字

    console.log(true + 123);
    console.log(true + '123');
    console.log(new String('1') + 123);
    console.log(new Number(12)  + 123);
    console.log(undefined + '123');
    console.log(undefined + 123);
    console.log(null + '123');
    console.log(null + 123);
    //下面模拟了对象的转化过程
    var o1 = {
        toString: function() {
            return 'str';
        },
        valueOf: function() {
            return {}
        }
    };
    console.log(o1 + '');
    var o2 = {
        toString: function() {
            return 'str';
        },
        valueOf: function() {
            return 'valueOf'
        }
    };
    console.log(o2 + '');

结果是:


+.png
一元正号(+),具有让首选类型设置为数字(Number)的功能,所以可以强制让对象转为数字类型
上一篇 下一篇

猜你喜欢

热点阅读