JS算术运算符

本文详细介绍了JavaScript中的算术运算符(加减乘除、取模)、一元运算符(正负号)、自增自减、逻辑运算符(非、与、或)、赋值运算符、关系运算符、相等和不相等运算,以及条件运算符和逗号运算符的用法,强调了类型转换和运算优先级的概念。
摘要由CSDN通过智能技术生成

JS算术运算符

即操作符,可以对一个或多个值进行计算。

1,算术运算符

当对非Number类型的值进行计算时,会将这些值转换为Number再进行计算。

任何值与NaN做运算都是NaN。

1.1 +

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

如果对两个字符串进行加法运算,则会进行拼串,两个字符串拼接为一个。(+表示换行)

任何的值和字符串做加法运算,都会转换为字符串,在和字符串做拼串。

可以利用这一个特点,来将一个任意的数据类型转换为String,只需要+一个“ ”,即可转换为String,这是一种隐式的类型转换,由浏览器自动完成,实际上也是调用了String函数,

1.2 -

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

任何值都会自动转换为Number进行计算

(可以利用这一特点做隐式的类型转换--可以通过一个值-0 *1 /1 来将其转换为Number,原理和Number()函数一样,使用起来更加简单)

1.3 *

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

1.4 /

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

1.5 %

取模运算(取余数)

2,一元运算符

只需要一个操作数

2.1 + 正号

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

可以对一个其他的任意数据类型使用 + ,来将其转换为Number类型,其原理和Number()函数更简单。

2.2 - 负号

负号可以对数字进行负号的取反

3,自增 自减

3.1 自增++

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

后++(a++) 和 前加加 (++a),无论是哪一种,都会使变量的值增加1,

但是两个值不同,a++的值是a的原值,++a是a自增后的值

3.2 自减--

通过自减可以使变量在自身的基础上减少1。(同上)

4,逻辑运算符

4.1 !非

!可以对一个值进行一个非运算,即对一个布尔值进行取反操作

如果对一个非布尔值进行取反操作,会先将其转换成成布尔值,再进行取反(利用该特点将其他数据类型转换为布尔值),可以为一个任意数据类型进行两次取反,来将其转换为布尔值,其原理和Boolean()函数一样。

4.2 && 与

可以对符号两侧的值进行 与 运算并返回结果。

一假则假

JS中的与是短路的与,如果第一个为false,则不会检查第二个值

非布尔值的情况

会先将其转换为布尔值,然后在运算,并且返回原值。

如果第一个值为true,则必然返回第二个值(原值)。

如果第一个值为false,则直接返回第一个值。

4.3 || 或

可以对符号两侧的值进行 或 运算并返回结果。

一真则真

JS中的与是短路的 或。

非布尔值的情况

如果第一个值为true,则直接返回第一个值(原值)。

如果第一个值为false,则返回第二个值。

5,赋值运算符

5.1 =

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

+= -= *= /= %=

6,关系运算符

通过关系运算符可以比较两个值之间的大小关系。成立返回true,不成立返回false

大于号 >,小于号 < ,大于等于 >= 小于等于 <=

非数值的情况

对于非数值进行比较时,会将其转换为数值,然后再进行比较

任何值和NaN做任何比较都是false。

如果符号两侧的值都是字符串时,不会将其转换为数字进行比较,而会分别比较字符串中字符的Unicode编码(十六进制的)。

比较字符编码时一位一位进行比较,如果两位相等一样,则比较下一位,所以借用它来对英文进行排序。

比较中文没有意义。

如果比较的两个字符串型的数字,可能会得到不可预期的结果。

(注意:在比较两个字符串型的数字时,一定一定要转型(加一个+号)

Unicode编码

在字符串中使用转义字符输入Unicode编码,\u四位编码

在网页中使用Unicode编码,&#编码。(编码是十进制的)

7,相等运算符

7.1 相等==

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

当使用 == 来比较两个值时,如果值的类型不同,则会自动进行类型转换,将其转换为相同的类型(大部分转换为数字)。

null没有转成0

undefined 衍生自null,所以这两个值做相等判断时,会返回true。

NaN不和任何值相等,包括它本身

(判断b的值是否是NaN,可以通过isNaN()函数来判断一个值是否是NaN,如果该值是NaN,则返回true)

7.2 不相等!=

不相等也会对变量进行自动的类型转换,如果转换后相等,它也会返回false。

7.3 全等===

用来判断两个值是否全等,它和相等类似,不同的是他不会自动进行数据类型转换如果两个值的类型不同,直接返回false

7.4 不全等!==

用来判断两个值是否不全等,它不等类似,不同的是他不会自动进行数据类型转换如果两个值的类型不同,直接返回true。

8,条件(三元)运算符

语法:

条件表达式?语句一:语句二;

流程:

条件运算符在执行时,首先对条件表达式进行求值,如果该值为true,则会执行语句一,并返回执行结果。如果该值为false,则会执行语句二,并返回执行结果。

如果条件表达式的求值结果是一个非布尔值,会将其转换为布尔值然后再运算。

9,逗号运算符

,逗号,可以分割多个语句,一般可以在声明多个变量并赋值时使用

运算符优先级

优先级越高,越先计算,若相同,从左到右计算。

可以用括号改变优先级。

  • 24
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值