JavaScript-运算符

运算符

运算符也叫操作符
通过运算符可以对一个或多个值进行运算
例如typeof就是一个运算符,可以来获取一个值的类型。

算术运算符

+

  • 对两个值进行加法

  • 如果对两个字符串进行加法运算,则会拼串。

  • 任何的值和字符串做加法运算,都会先转换为然后做拼串操作

        a = 10
        result = a + 1 
        console.log(result)// 11
        result = 1 + 2 
        console.log(result)// 3
        result = true + 1 
        console.log(result)// 2
        result = true + false 
        console.log(result)// 1 
        result = 2 + null 
        console.log(result)// 2
        result = 2 + NaN 
        console.log(result)// NaN
        result = '123' + '456'
        console.log(result)//123456
        result = 123 + '1'
        console.log(result)//1231
        
        // 想想下面两个的输出结果是什么样的
        result = 1 + 2 + '3'
        result = '1' + 2 + 3

-

可以对两个值进行减法运算,并将结果返回

        result = 100 - true // 99
        result = 100 - '1' // 99

*

可以对两个值进行乘法运算

        result = 2 * 2 //4
        result = 2 * '8' //16
        result = 2 * undefined // NaN
        result = 2 * null // 0

/

可以对两个值进行除法运算

        result = 4 / 2 // 2
        result = 3 / 2 // 1.5

小结

任何值做 - * / 运算时都会自动转换为Number
作用:做隐式的类型转换

        a = '5'
        b = a - 0
        console.log(a) // '5'
        console.log(typeof a) // String
        console.log(b) // 5
        console.log(typeof b) // Number

%

取模运算,取余数

        result = 9 % 3 // 0
        result = 9 % 4 // 1
        result = 9 % 5 // 4

一元运算符

一元运算符,只需要一个操作数

+ 正号

正号不会对数字产生任何影响

a = 123
a = +a // 123

- 负号

  • 负号可以对数字进行 负号的取反
a = 123
a = -a // -123
  • 对于非Number类型的值,它会先转换为Number,然后再运算
  • 可以对一个其他的数据类型使用+,来将其转换为Number

自增

通过自增可以使变量在自身的基础上增加1

a = 1
a = a + 1
console.log(a) // 2
a ++
console.log(a) // 3

自增分为两种,后++(a++),前++(++a)
无论是在前还是后,都会立即使原变量的值自增1。
a++和++a的值不同
a++ 为原值
++a 为原值+1

a = 1
console.log(++a) // 2
console.log(a++) // 2
console.log(a) // 3

自减

通过自减可以使变量在自身的基础上减1
自减分为两种,后-- (a–)和前–(–a)

和自增类似

逻辑运算符

三种逻辑运算符 ! && ||,分别叫非、与、或

!

可以用来对一个值进行取非运算
所谓的取非运算就是对一个布尔值进行取反操作
如果对一个值进行两次取反,它不会变化
如果对非布尔值进行取反,则会将其转换为布尔值

a = true
a != a
console.log('a = '+'a) // False

b = 10
b = !b
console.log('b = '+b) // b = false
console.log(typeof b) // boolean

可以将一个值转换为布尔值

&&

可以对符号两侧的值进行与运算并返回结果
只有两个都为true时才为true

result = ture && ture
console.log(result) // ture

result = ture && fales
console.log(result) // fales

如果第一个值是false,则不会继续判断第二个值,直接返回fales

||

可以对符号两侧的值进行或运算并返回结果
只有两个都为false时才为false

result = false && false
console.log(result) // false

result = ture && fales
console.log(result) // true

如果第一个值是true,则不会继续判断第二个值,直接返回true

非布尔值

对于非布尔值进行与、或运算时,会向将其转换为布尔值,然后再运行,并且返回原值

ture && true

两个true时返回后面一个值

result = 1 && 2
console.log(result) // 2

result = 2 && 1
console.log(result) // 1

true && false

如果有错,返回考前错的那个。

result = 0 && 2
console.log(result) // 0

result = 2 && 0
console.log(result) // 0

result = 0 && NaN
console.log(result) // 0

result = NaN && 0
console.log(result) // NaN

true || true

两个都为true,返回前一个true的值

result = 1 && 2
console.log(result) // 1

result = 2 && 1
console.log(result) // 2

false || true

第一个值为false,直接返回第二个值

result = NaN || 1
console.log(result) // 1

result = NaN || 0
console.log(result) // 0

赋值运算符

=

可以将右侧的值赋值给左侧的变量

例子太多了

+=

a = a + 1
// 等价于
a += 1

-=

a = a - 1
// 等价于
a -= 1

关系运算符

通过关系运算符可以比较两个值之间的关系,如果关系成立它会返回true,如果不成立则返回false

>>=

<<=

非数值的情况

result = 1 > true // false
result = 1 >= true // true

相等运算符

相等运算符用来比较两个值是否相等,如果相等会返回true。否则返回false

==

做相等运算

1 == 1 // true

如果左右值类型不同,则会自动进行类型转换,再比较

'1' == 1 // true

undefined 与 null 相等
NaN不于任何值相等

===

== 的基础上,字符也需要相等。

'1' === 1 // false

条件运算符

条件运算符也叫三元运算符
语法: 条件表达式?语句1:语句2;
执行流程:条件运算符在执行时,首先对条件表达式进行求值,如果该值为true,则执行语句1,反之则执行条件2。

true?alert('语句1'):alert('语句2'); // 执行alert('语句1')

运算符的优先级

在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

溏心蛋*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值