美文网首页
运算符那些事

运算符那些事

作者: haha2333 | 来源:发表于2019-10-03 09:06 被阅读0次

转自别人的解释
输出以下代码运行结果

1 + "1"
2 * "2"
[1, 2] + [2, 1]
"a" + + "b"

1 + "1"
加性操作符:如果只有一个操作数是字符串,则将另一个操作数转换为字符串,然后再将两个字符串拼接起来
所以值为:“11”

如果操作数是数字加undefined,那么结果就是NAN
如果操作数是两个字符串,就执行字符串相连操作

2 * "2"
乘性操作符:如果有一个操作数不是数值,则在后台调用 Number()将其转换为数值
所以值为4

[1, 2] + [2, 1]
Javascript中所有对象基本都是先调用valueOf方法,如果不是数值,再调用toString方法。2与2之间没有逗号,可以直接相连。
所以两个数组对象的toString方法相加,值为:"1,22,1"

"a" + + "b"
后边的“+”将作为一元操作符,如果操作数是字符串,将调用Number方法将该操作数转为数值,如果操作数无法转为数值,则为NaN。第一个+操作符则会承担连接字符串作用。
所以值为:"aNaN"


9.22二更

关于tosring(),valueOf()方法

var obj={
    valueOf(){
        return 'value'
    },
    toString(){
        return 'string'
    },
    get getname(){
        return 'getting'
    }
}
alert(obj)  //string
console.log(obj)  //{ valueOf: [Function: valueOf],toString: [Function: toString],get: [Function: get] }

几个问题:
1.为什么alertconsole.log输出不一样?

console.log() 可以打印任何类型的数据。而 alert() 只能输出string,如果alert输出是对象会自动调用 toString() 方法。如果想 console.log() 输出的与alert相同,需要调用 toString()。

相关文章

  • 运算符那些事

    转自别人的解释输出以下代码运行结果 1 + "1"加性操作符:如果只有一个操作数是字符串,则将另一个操作数转换为字...

  • day03-Java运算符和条件语句

    03.01_Java语言基础(逻辑运算符的基本用法)(掌握) A:逻辑运算符有哪些&,|,^,!&&,|| 注意事...

  • Java基本语法:一些小知识点

    运算符的优先级: 运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。 1. 比较运算符的结果事boole...

  • python常用运算符的使用

    python七类运算符 算术运算符比较运算符逻辑运算符赋值运算符成员运算符身份运算符位运算符 赋值运算符 运算符描...

  • python中的赋值运算符`+=`

    原以为python的算数运算符+与+=运算符是一回事。直到今天看到stackoverflow上讨论,为啥+=能运算...

  • 运算符与字符串

    运算符 算数运算符、比较运算符、赋值运算符、逻辑运算符比较运算符:>、<、>=、<=、==、!=赋值运算符:=、+...

  • 4. Python运算符

    算数运算符 加法运算符: + 减法运算符: - 乘法运算符: * 除法运算符: / 幂运算符: ** 整除运算符:...

  • Golang——运算符和格式化输出

    运算符 算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、其他运算符 算术运算符 + 相加- 相减* ...

  • Go语言基础之运算符

    运算符 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 算术运算符 运算符描...

  • 2018年6月13日【Python学习笔记】

    一、运算符 运算符:算数运算符、比较运算符、赋值运算符、逻辑运算符 1.比较运算符:>、<、>=、<=、==、!=...

网友评论

      本文标题:运算符那些事

      本文链接:https://www.haomeiwen.com/subject/pwaarctx.html