Dutt
侠客
侠客
  • 最后登录2023-09-04
  • 发帖数11
阅读:3093回复:0

[es 6]js的运算符

楼主#
更多 发布于:2023-02-02 00:05
赋值运算符
赋值运算符用于为变量指定变量值,与 Java和C 类似,JavaScript 也使用“=”作为赋值运算符。
//将变量str 赋值为 JavaScript
let str = "JavaScript "; 
//将变量 pi 赋值为3.14
let pi= 3. 14 ; 
//将变量赋值为 true
let visited= true ;

除此之外,也可使用赋值运算符将一个变量的值赋给另一个变量。 即如下代码也是正确的
//将变扯 str 赋值为 JavaScript
let str = "JavaScript "; 
//将变批 str 的值赋给 str2
let str2 = str;

赋值语句本身是有值的,赋值语句的值就是等号(=)右边被赋的值。
因此 ,赋值运算符支持连续赋值,通过使用多个赋值运算符 ,可以一次为多个变量赋值 ,如下代码 是正确的
//为 b, c,d 赋值,四个变量的值都是
let a= b = c = d = 7; 
//输出四个变量的值
alert(a + b+ c + d);

赋值运算符还可用于将表达式的值赋给变量,如下代码也是正确的:
//为变量 x 赋值为 12.34
let x = 12 . 34;
//将表达式的值赋给y
let y= x + 5 ; 
//输出 的值
alert(y) ;

算术运算符

+:加 法运算符 例如如下代码:
let a= 5.2 ; 
let b = 3.1 ; 
let sum= a + b ; 
// sum 的值为 8.3
alert (sum) ;

-: 减法运算符 例如如下代码:
let c = 5.2 ; 
let d = 3.1; 
let sub= c - d ; 
// sub 的值为 2.1
alert (sub) ;

*:乘法运算符 例如如下代码:
let e = 5.2 ; 
let f = 3.1 ; 
let product=e * f; 
// product 的值为 16.12
alert (product) ;

/: 除法运算符。例如如下代码
let m = 36 ; 
let n = 9; 
let div= m / n; 
// div 的值为 4
alert (div) ;

%: 求余运算符 例如如下代码:
let x = 5.2 ; 
let y= 3.1; 
let mod= x % y;
//mod 的值为 2.1
alert(mod);

++: 自加 这是个单目运算符,运算符既可以出现在操作数的左边,也可以出现在操作数的右边。当++在变量的右边时,程序先用变量的值参与计算;当++在操作数的左边时,先执行自加,然后再执行算术运算。
- -:自减,这也是个单目运算符,效果与++基本相似,只是将操作数的值减 1 。
JavaScript 并没有提供其他更复杂的运算符,如需要完成乘方、开方等运算,可借助于Math 类的方法完成复杂的数学运算,见如下代码
<script type="text/javascript "> 
    //定义变量a为 3.2
    let a= 3 . 2; 
    //求a的5次方,并将计算结果赋给b
    let b = Math.pow(a, 5); 
    //输出b的值
    alert (b); 
    //求a的平方根,井将结果赋给
    let c = Math sqrt(a);
    //输出c的值
    alert(c); 
    // 计算随机数
    let d =Math . random(); 
    //输出随机数d的值
    alert (d); 
</script>

位运算符

JavaScript 支待的位运算符与 Java 支持的位运算符基本相似,大致有如下7个位运算符。
&: 按位与
| :按位或
~: 按位非
^: 按位异或
<<: 左位移运算符。
>>: 右位移运算符
>>>: 无符号右移运算符。

&lt;script type= text/javascript&gt;
    // 输出5 & 9  和 5|9 的值
    aler (5 & 9) + "==&gt;" + (5 | 9)) ; 
    //输出-5异或和5异或的值
    alert(~-5 + "==&gt;"+~5);
&lt;/script&gt;

执行结果先弹出 1==>13 再弹出 4==>-6
则5&9 的结果是 1, 5 I 9 结果是13。
5的二进制码是 00000101, 9的二进制码是 00001001。位运算过程如图



加强的赋值运算符

赋值运算符可以与算术运算符、位运算符等结合,从而成为功能更加强大的运算符。结合后的加强运算符如下
+= :对于 x+=y ,即对应于 x=x+y
-=: 对于 x-= ,即对应于 =x -y
*=: 对于 =y, 即对应于 x=xy
/= : 对于 x/=y ,即对应于 = x/y
%=; 对于 x%=y, 即对应于 x=x%y
&=: 对于 x&=y ,即对应于 x=x&y
|=; 对于 x|=y ,即对应于 =x I y
^=: 对于x ^&= y, 即对应于 x=x ^ y
<<=: 对于 x<<=y, 即对应于 =x << y
>>=: 对于 x >>=y, 即对应千 = X >> y
>>>=: 对于 x>>>= ,即对应于 x=x>>>y
归纳起来,所有的双目运算符都能与赋值运算符结合,从而成为功能更加强大的运算符。


比较运算符

比较运算符用于判断两个变量或常量的大小,比较运算的结果是一个布尔值。 JavaScript支持的 比较运算符如下
>: 大于,如果前面变量的值大千后面变量的值,则返回 true
>=: 大于等于,如果前面变量的值大于等于后面变量的值,则返回 true
<: 小于,如 果前面变量的值小千后面变量的值,则返回 true
<=: 小于等于,如果前面变量的值小于等千后面变量的值 ,则返回 true
!=: 不等于,如果前后两个变量的值不相等,则返回 true
==: 等于,如果前后两个变量的值相等,则返回 true
!==: 严格不等于,如果前后两个变量的值不相等,或者数据类型不同,都将返回 true
===: 严格等于,必须前后两个变量的值相等,数据类型也相同,才会返回 true
后面的严格等于、严格不等于 与普通等于、普通不等于的区别在于是否支持自动类型转换。
&lt;script type= text/javascript&gt;
    //判断5是否等于"5"
    alert(5 == "5"); 
    //判断5是否严格等于"5"
    alert(5 === "5"); 
&lt;/script&gt;

“5“ 本来是个字符串,但在需要时, “5"可以自动转换成数值型因此由于自动类型转换的缘故, 5="5“ 将返回 true。而5 === “5” 一个是number 一个是string则返回false。

逻辑运算符
&&: 与,必须前后两个操作数都为 true 才返回 true, 否则返回 false
II:或,只要两个操作数中有一个为 true 就可以返同 true, 否则返回 false
!: 非,只操作一个操作数,如果操作数为 true, 则返回 false; 如果操作数为 false,返回 true


三元运算符
三元运算符只有一个"?:",三元运算符的语法格式如下:


(expression) ? if-true-statement : if-false-statement;
1
三元运算符的运算规则是:先对逻辑表达式 expression 求值,如果逻辑表达式返回 true,执行第二部分的语句;如果逻辑表达式返回 false, 则返回第三部分的语句


逗号运算符
逗号运算符允许将多个表达式排在一起,整个表达式返回最右边表达式的值 。看下面的代码。
&lt;script type="text/javascript”&gt;
    //声明变量 a, b, c, d 
    let a, b , c , d ; 
    //使用逗号运算符为a赋值 最右边的表达式为 56, 因此a的值为 56
    a= (b = 5, c = 7, d = 56); 
    //输出四个变量的值
    docurnent . write('a =' + a +'b ='
    + b + 'c=' + c + 'd=' + d); 
&lt;/script&gt;

输出结果为 a=56 b=5 c=7 d=56
void 运算符
void 运算符用于强行指定表达式不会返回值
&lt;script type="text/javascript"&gt; 
    //声明变量 a,b c,d
    let a , b , c, d; 
    //虽然最右边的表达式为 56
    //但由于使用了 void 强制取消返回值,因此a的值为 undefined
    a = void(b = 5, c = 7, d = 56); 
    //输出四个变量的值
    document .write( ' a ='+a+'b ='
    + b + ' c = ' +c t ' d = ' + d); 
&lt;/script&gt;
游客


返回顶部

公众号

公众号