JS 运算符(一元和二元运算符)
最编程
2024-03-31 18:03:21
...
运算符概念:一个运算符对应的只有一个运算元,那么它是 一元运算符。二元运算符同理
举个例子:
let x = 1,y = 2
alert(-x) // '-' 在这里面就是一元运算符
alert(x - y) // '-' 在这里面二元运算符
再举个例子:
let Love = 'I' + 'You' // 相当于使用二元运算符 '+' 连接字符串
alert(Love) // IYou
只有 ‘+’ 才能被用作字符串类型的连接,其它的都会强制转换成数字类型:
let str = 2 + '1' // '+' 在这里也是二元运算符
alert(str) // 21
// 但是只有 '+' 才能被用作字符串类型的连接,其它的都会强制转换成数字类型
let num1 = 6 - '2' // num1 = 4
let num2 = '6' / 2 // num2 = 3
let num3 = '6' / '2' // num3 = 3
运算符的数字转化:
console.log(+true) // 1
console.log(+'') // 0
再将一元运算符和二元运算符整合到一起试试:
let num1 = 1 + '1' // 11
let num2 = 1 + +'1' // 2 // 第一个 '+' 是二元运算符,第二个'+'是一元运算符,用于数字转化
let num3 = 1 - -'1' // 1-(-1) = 2
let str1 = '1' + -'1' // 即 '1' + -1 = '1-1' 这里 '+' 是作为二元运算符,用于字符串连接
附上摘抄于Mozilla的优先级表部分运算符的优先级表:
优先级 | 名称 | 符号 |
---|---|---|
17 | 一元加号 | + |
17 | 一元负号 | - |
16 | 求幂 | ** |
15 | 乘号 | * |
15 | 除号 | / |
13 | 加号 | + |
13 | 减号 | - |
3 | 赋值符号 | = |
可以看到,“一元加号运算符”的优先级是 17,高于“二元加号运算符”的优先级 13。这也是为什么表达式 “1 + +‘1’” 中的一元加号先生效,然后才是二元加法。
推荐阅读
-
ES6 链式判断运算符 (?...) 和 Null 判断运算符 (???)
-
替代运算符和标记 - [ C 语言中文开发手册 ] - 本地在线手册 - php中文网
-
我的 Java 学习笔记(3):基本输入和输出语句、运算符表达式
-
java 的比较运算符 "比较和至上的用法 "的结果 英语语法 - 比较和至上的用法 - KingOrchidTutorials.com...
-
JS-"&&" 运算符的妙用
-
C 语言的按位清 0 和置 1 运算(与移位运算符组合一致的按位运算) - 第二,移位运算符
-
C 语言基础:运算符解释(附运算符优先级和绑定列表)
-
C 语言学习(五)六种基本运算符和表达式
-
C 注释]# 运算符和 ## 运算符
-
第 2 章 数据类型和运算符