javascript 运算符-了解JavaScript运算符的类型、规则和注意事项

在项目的后端开发中,在编写逻辑时经常会用到运算符,所以我们必须熟练掌握它们的一些应用规则。 今天我们就来了解一下运营商的类型、规则以及一些注意事项。

1. 运营商类型

1. 算术运算符: + 、 - 、 * 、 / 、 % 、 - (一元否定)、 ++ 、 --

2. 等号运算符: == , === , !== , !===

3. 比较运算符:<、>、=

4. 字符串运算符:<、>、=、=、+

5、逻辑运算符:&&、||、!、

6. 赋值运算符:=、+=、*=、-=、/=

2. 运算符规则 1. 算术运算符规则

“+”:可以进行“加”、“连接”操作; 如果两个运算符之一是字符串,javascript 会将另一个转换为字符串,然后连接两个操作数。

“+”:如果操作数是一个对象,javascript会将该对象转换为数字用于乘法或字符串用于连接;

"-" "*" "/" 如果两个操作数之一是非数字,则将其转换为数字以进行物理运算。

"/" 在javascript中,由于所有的数字都是浮点数,所以除法的结果都是浮点数,5 / 2 = 2.5; 除以0的结果是正负无穷大; 0/0 为 NaN;

“%”取模运算符:计算第一个操作数对第二个操作数的模,即第一个操作数除以第二个操作数时,返回余数。 如果操作数是非数字,则将其转换为数字。

“-”一元取反:将操作数取反,如果操作数不是数字,则将其转换为数字。

“++”“--”自增运算符/自减运算符符号:操作数必须是变量、树组的元素或对象的属性。 如果操作数不是数字,则将其转换为数字。

注意:如果操作数前面有“++”,则先将操作数递增,然后再估计操作数递减后的操作数值。

如果“--”在操作数后面,则先估计操作数之前的值不减,然后再递增操作数。

例如:

i = 1; //赋值给i值1
j = ++i; //先将i增量为2,然后将2赋值给j,i的值是2,j的值也是2。
i = 1; //赋值给i值1
j = i++; //先将i赋值给j,然后对将i值增量到2,i的值是2,j的值是1。

减量运算符“--”与“++”相同。

2. 等号运算符和同号运算符

(一)“==”“!==”等价运算符和非等号运算符:

比较 2 个操作数,返回非布尔值

数量用于比较数字、字符串和布尔值。 当且仅当两个变量存储相同的值时,它们才相等。

比较对象、数组和函数时,使用引用。 只有当两个变量引用同一个对象时,它们才是相等的。 两个不同的字段即使具有完全相同的元素,也是完全不同的。 对于存储对对象、数组和函数的引用的变量,仅当它们引用相同的对象、数组或函数时它们才是相等的。

注:应遵守的原则:

当两个操作数类型不同时:将它们转换为相同类型javascript 运算符

1)将字符串转换为数字后,对数字和字符串进行比较。

2) 将 true 转换为 1,将 false 转换为 0 进行比较。

3)一个对象、数组、函数和一个数字或字符串,将对象、数组、函数转换为原始类型的值,然后进行比较。 (先使用valueOf,如果没有就使用toString)

4)其他类型的组合不是量值。

如果两个操作数类型相同,或者转换为相同类型后:

1)2个字符串:如果相同位置的字符相等,则2个字符串相同。

2)2个数字:2个数字相同,它们是相同的。 如果其中一个为 NaN,或者两者均为 NaN,则不相同。

3)两者都为真javascript 运算符,或者两者都为假,则认为相同。

4) 如果两个引用引用同一个对象、函数或数组,则它们相等; 如果它们引用不同的对象、函数或数组,则它们是不一样的,即使这两个对象、函数和数组可以转换为完全相等的原始值。

5) 2 个空值,或者两者都未定义,则它们相等。

“!=”非等式运算符:与等式运算符测量的内容相反。

(二)“===”!===相同运算符和不同运算符:

相同运算符遵循相等运算符的比较规则,但不对操作数进行类型转换。 当两个操作数的类型不同时,返回false; 只有当两个操作数的类型相同时,才遵循相等性。 进行比较的运算符比较规则。

“!==”非相同运算符将相同运算符的结果进行相反比较。 如果两个操作数具有不同的类型或值,则返回 true。

3. 比较运算符

这些比较运算符用于比较不同类型的值并返回布尔值作为结果。

”“”=

请注意规则:比较操作数可以是任何类型,但只能对数字和操作数执行。 非数字和字符串的操作数将转换为数字或字符串。

1)如果两个操作数都是数字,或者都可以转换为数字,则根据数字的大小进行比较;

2)如果两个操作数都是字符串,或者都可以转换为字符串,则按照字母顺序进行比较;

3)如果字符串遇到数字,则将字符串转换为数字进行比较。

4) 如果操作数既不能转换为数字,也不能转换为字符串,则返回结果 false。

4. 字符串运算符

没有专用的字符串运算符,但某些运算符在遇到字符串操作数时的行为有所不同。

(一)“+”连接2根字符串;

1)当两个操作数都是字符串时,将它们连接起来;

2)当其中之一为数字时,将数字转为字符串并连接;

(二)“>”等比较运算符,通过比较确定两个字符串的顺序,比较字符的顺序,较小的位于大写字母的后面,大写字母放在大写字母的前面。

(III)“+”的作用方式取决于估计的顺序,

例如:s = 1 + 2 + "var" 则:返回结果3var; 因为先估计1+2,然后将结果3转成字符串并用“var”连接;

例如: s = "var" + 1 + 2 则:返回结果 var12; 因为先估计var和1之间的连接,然后将结果var1与转换成字符串的2连接。

5. 逻辑运算符

用于进行布尔运算,常与比较运算符一起使用,表示复杂的比较运算。

“&&”逻辑与运算,“||” 逻辑或运算符,“!” 逻辑非运算符

(一)“&&”当两个操作数都是布尔值时,逻辑与对其进行与操作,即:当且仅当两个布尔值都为true时,返回结果true,否则返回false。

注:实际表现

“&&”会测量第一个表达式操作数的布尔值,如果第一个操作数表达式返回false,则返回右边第一个操作数表达式的值:false; 否则继续检查第二个ie左操作数表达式,然后返回第二个操作数表达式的值;

例如: if (a = b) stop(); 相当于 (a = b) && stop();

这个技巧已被弃用,因为运算符左侧的代码不能保证被执行,

例如: if ((a < b) && (b++

将“&&”视为布尔代数运算符更容易、更安全。

(二)“||” 当两个操作数均为布尔值时,逻辑OR对其进行或运算,即:当两个布尔值其中之一为true时,返回结果true,否则返回false。

注:实际表现

“||” 会检查第一个表达式操作数的布尔值,如果第一个操作数表达式返回true,则返回右边第一个操作数表达式的值:true; 否则继续检查第二个即左操作数表达式,然后返回第二个操作数表达式的值;

这个技巧也已被弃用,因为运算符左侧的代码不能保证被执行,

通常不鼓励在 || 右侧使用具有其他效果(赋值、函数调用、递增或递减)的表达式;

想到“||”更容易、更安全作为布尔代数运算符。

(三)“!” 逻辑非是一元运算符,放在操作数之前,其目的是对操作数求反。

6. 赋值运算符

(一)“=”是赋值运算符; 他总是期望左边的操作数是一个变量,一个数组的元素,或者一个对象的属性;

期望左侧有任何类型的任意值;

对于从右到左的关联性,如果表达式中有多个赋值运算符,则从最左边开始求值。

注意:每个赋值表达式都有一个值,就是运算符左边的值;

(二)可以将形参运算与操作一起使用

“+=”左边的值与左边的值相加后,赋值给右边的值。 "-=""/=""*="方法相同;

7、其他经营者

“?:”条件运算符是唯一的三元运算符;

表达式的布尔结果? 表达式1(任何类型的任何值):表达式2(任何类型的任何值);

根据第一个操作数的布尔结果,如果为true,则执行第二个操作数表达式,返回第二个操作数表达式的值; 如果第一个操作数的布尔结果为 false,则执行第三个操作数表达式,返回第三个操作数表达式的值。

3.注意JavaScript运算符

1.注意传递给操作符的数据类型和返回的数据类型! 不同的运算符期望其操作数表达式估计的结果符合某种数据类型。

例如:字符串不能被分割,“a”*“b”是非法的,但是javascript会在可能的情况下将表达式转换为正确的类型,因此表达式“3”*“5”是合法的,javascript将字符串转换为a number 执行运算,结果返回数字 15,而不是字符串“15”。

2.+根据不同的操作数有不同的表现:

字符串 + 字符串 = 字符串(连接); “a”+“b”=“ab”“5”+“6”=“11”

字符串+数字=(字符串转换为数字)字符串(连接); "a" + 5 = "a5" 5 转换为字符串 "1" + 0 = "10"

数字 + 数字 = 数字(加法)5 + 5 = 10。

3、注意运算符的结合性,有些运算符是从左到右结合的; 有些是从右到左关联的。

例如:w=a+b+c等价于w=(a+b)+c;

w = ---b 相当于 w = - ( - ( -b ) ); w = a = b = c 相当于 w= ( a = ( b = c ))

一元运算符、赋值运算符、三元运算符的结合性是从右到左;

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 javascript javascript 运算符-了解JavaScript运算符的类型、规则和注意事项 https://www.wkzy.net/game/142657.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务