JavaScript基础 运算符

Posted HUMILITY

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript基础 运算符相关的知识,希望对你有一定的参考价值。

算数运算符

运算符也叫操作符,通过运算符可以对一个或多个值进行运算
比如:typeof就是运算符,可以来获得一个值的类型。它会将该值的类型以字符串的形式返回。number string boolean undefined object
当对非Number类型的值进行运算时,会将这些值转换为Number然后再运算 ,除字符串加法。
任何值和NaN做运算结果都是NaN
任何值做-/运算时都会自动转换成Number。可以利用此特点做隐式类型转化,可以通过一个值-0 、1、 /1来将其转换成Number,原理和Number()一样,使用起来更加简单

算术运算符

+:
可以对两个值进行加法运算,并将结果返回。
如果对两个字符串进行加法运算,则会进行拼串操作,会将两个字符串拼接并返回。
任何的值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作。可以利用特点,将一个任意数据类型转换为String,只需要为任意的数据类型+一个""即可。这是一种隐式类型转换,由浏览器自动完成,实际上也是调用String函数
-:
可以对两个值进行减法运算,并将结果返回。
*:
可以对两个值进行乘法运算
/:
可以对两个值进行除法运算
%:
取模运算(取余数)

一元运算符

只需要一个操作数
+:正号
正号不会对数值产生任何影响
-:负号
负号可以对数字进行负号的取反。对于非Number类型的值,会先转换再运算。
注意:
可以对一个其他数据类型使用+正号,来将其转换为number,它的原理和Number()函数一样 a=+a

自增和自减

自增++:
通过自增可以使变量在自身基础上增加1
对于一个变量自增以后,原变量的值会立即自增1如:a++
自增分成两组:后++(a++)和前++(++a)
无论是a++还是++a,都会立即使原变量的值自增1
不同的是a++和++a的值不同
a++的值等于原变量的值(自增前的值)
++a的值等于新值(自增后的值)
自减--:
通过自减可以使变量在自身的基础上减1
自减分成两种:后--(a--)和前--(--a)
无论a--还是--a都会立即使原变量的值自减1
不同的是a--和--a的值不同
a--是变量的原值(自减前的值)
--a是变量的新值(自减后的值)

逻辑运算符

JS中为我们提供了三种逻辑运算符
! 非
!可用来对一个值进行非运算
所谓非运算就是指对一个布尔值进行取反操作,true变flase,flase变true
如果对一个值进行两次取反,它不会变化
如果对非布尔值进行运算,则会将其转换为布尔值,然后再进行取反。
所以我们可以利用该特点,来将一个其他的数据类型转换为布尔值。
可以为一个任意数据类型取两次反,来将其转换为布尔值,原理和Boolean()函数一样
&& 与
&&可以对符号两侧的值进行与运算并返回结果
运算规则:两个值中只要有一个值为false就返回false,只有两个值都为true时,才会返回true
如果两个值都是true则返回true
只要有一个false就返回false
JS中的“与”属于短路的与,如果第一个值为false,则不会看第二个值。
第一个值为true会检查第二个值。
|| 或
||可以对符号两侧的值进行或运算并返回结果
运算规则:
两个都是false,则返回false。
只要有一个true,就返回true
JS中的“或”属于短路的或
如果第一个值为true则不会检查第二个值。

非布尔值的与或运算

对于非布尔值进行与或运算时,会先将其转换成布尔值,然后再运算,并且返回原值。
与运算:
如果两个值都为true,则返回后边的
如果两个值中有false,则返回靠前的false
如果第一个值为true则必然返回第二个值
如果第一个值为false,则直接返回第一个值
或运算:
如果第一个值为true,则直接返回第一个值
如果第一个值为false,则返回第二个值

赋值运算符

=:可以将符号右侧的值赋值给符号左侧的变量
+-:a += 5等价于a = a+5
-=:a -= 5等价于a = a-5
*=:a ✖= 5等价于a = a*5
/=:a /= 5等价于a = a/5
%=:a %= 5等价于a = a%5

关系运算符

通过关系运算符可以比较两个值之间的大小关系,如果关系成立它会返回true,如果关系不成立则返回false
>大于号
判断符号左侧的值是否大于右侧的
如果关系成立,则返回true,如果关系不成立则返回false
>=大于等于
判断符号左侧的值是否大于或等于右侧的值
<小于号

非数值的情况

对于非数值进行比较时,会将其转换为数字,然后再比较。
任何值和NaN做任何比较都是false
如果符号两侧的值都是字符串时,不会将其转换为数字进行比较,而回分别比较字符串中字符的Unicode编码
比较字符编码时,是一位一位进行比较
如果两位一样,则比较下一位,所以可以借用它来对英文进行排序
比较中文时没有意义
如果比较两个字符串型的数字,可能会得到不可预期的结果
所以注意在比较两个字符串型的数字时,一定要转型

Unicode编码

在字符串中使用转义字符输出一个Unicode编码,写一个转义字符
“\\u四位编码"
在网页中使用Unicode编码,使用
“编码”;这里的编码需要的是10进制

相等运算符

相等 ==

比较两个值是否相等,如果相等返回true,否则返回false
使用 == 来做相等运算
当使用 == 来比较两个值时,如果值的类型不同,则会自动进行类型转换,将其转换成相同的类型,然后再比较。
undefined衍生自null
所以这俩值做相等判断时,会返回true
console.log(undefined == null); //true
NaN不和任何值相等,包括他本身

var b = NaN;
console.log(b == NaN);  //判断b是否是NaN
返回false
可以通过isNaN()函数来判断一个值是否是NaN
console.log(inNaN(b));

isNaN()用来判断一个值是否是NaN,如果该值是NaN则返回true,否则返回false

不相等 !=

不相等用来判断两个值是否不相等,如果不相等返回true,否则返回true
使用 != 来做不想等运算
不相等也会对变量进行自动的类型转换,如果转换后相等它也会返回false

全等 ===

用来判断两个值是否全等,和相等类似,不同的是不会做自动的类型转换
如果两个值的类型不同,直接返回false。
null和undefined相等但不全等

不全等 !==

用来判断两个值是否不全等,和不等类似,不同的是它不会做自动的类型转换,如果两个值的类型不同,则直接返回true

条件运算符

条件运算符也叫三元运算符
语法:
条件表达式?语句1:语句2;
条件运算在执行时,首先对条件表达式进行求值,
如果该值为true,则执行语句1,并返回执行结果
如果该值为false,则执行语句2,并返回执行结果
如果条件表达式的求值结果为非布尔值,会将其转换为布尔值,然后再运算

var a = 10;
var b = 20;
var c = 50;
a > b ? alert("a大"):alert("b大");    //返回b大
a < b ? alert("a大"):alert("b大");    //返回a大

获取a和b的最大值
var max = a > b ? a : b;
console.log("max = "+max);
获取abc中的大值
max = max > c ? max : c;
或
var max = a > b ? (a > c ? a : c ):(b > c ? b : C);
(这种写法不推荐使用,不方便阅读)

运算符的优先级

,运算符(逗号运算符)
使用,可以分割多个语句,一般可以在声明多个变量时使用,
使用,运算符同时声明多个变量

var a , b , c;
var a = 1 , b = 2 , c = 3

和数学一样,JS中运算符也有优先级;
比如:先乘除,后加减
在JS中有一个运算符优先级的表,在表中越靠上优先级越高,优先级越高越优先运算,如果优先级一样,则从左往右计算
但是表并不需要记忆,如果遇到优先级不清楚的,可以使用()来改变优先级

var result = 1 || 2 && 3;       //1
var result = (1 || 2) && 3;     //3
var result = 1 || (2 && 3);     //1

以上是关于JavaScript基础 运算符的主要内容,如果未能解决你的问题,请参考以下文章

JSP 基础语法

01JavaScript基础——引入/输出方式变量数据类型运算符

JavaScript基础一(js基础函数与运算符)

微搭低代码JavaScript基础知识-循环和条件控制

微搭低代码JavaScript基础知识-循环和条件控制

微搭低代码JavaScript基础知识-循环和条件控制