三,JavaScript之运算符,详细篇。 算数,比较,逻辑,赋值,位,其他运算符等。运算符的优先级。

  • 很高心您打开了本篇博客
  • 主要作用:通过学习JavaScript和整理笔记,为前端/后端/大数据项目提供基石;
  • 复习前面两篇

一,JavaScript基础知识。初识JavaScript,变量var和let,变量提升(var和let的区别),常量(const),标识符,注释,引入方式和输出方式-CSDN博客

二,JavaScript之数据类型。原始数据类型,引用数据类型,数据类型转换,查看数据类型。-CSDN博客

  • 本篇博客是JavaScript专栏 笔记梳理 的第篇;
  • 主要内容:梳理js编程语言的运算符。算数运算符(+,-,*,/,%,**, ++,--),逻辑运算符(&&, ||,!),赋值运算符(+=,-=,*=,/-,**=,%=),比较运算符(==,===,<,>,<=,>=,!==,!=),位运算(<<,>>),其他运算符(void,delete,in, ,),运算符的优先级。
  • 学习:知识的初次邂逅
  • 复习:知识的温故知新

目录

一,算数运算符

1,加法运算符 +

1,值相加

2,字符串互相加 

3,不同类型的相加

2,减法运算符 -

3,乘法运算符 *

4,除法运算符 /

5,模运算符 %

6,幂运算符 **

7,自增运算符 ++

8,自减运算符 --

二,赋值运算符

1,基础赋值 =

2,自增赋值 +=

 3,自减赋值 -=

4,自乘赋值 *=

5,自除赋值 /=

6,自模赋值 %=

7,自幂赋值 **=

三,比较运算符

1,小于运算符 < 

2,大于运算符 >

 3,小于或等于 <=

4,大于或等于 >=

5,相等运算符 ==

6,严格相等 ===

7,不等运算符 !=

8,严格不相等 !==

四,逻辑运算符

1,与运算 &&

2,或运算 ||

3,非运算 !

五,位运算符

1,左移运算符 <<

2,右移运算符 >>

六,运算符的优先级

1,通过加()的方式,拆分成多条语句完成。

七,其他运算符

1,void 运算符

2,delete 运算符

3,in 运算符

4, 逗号 ,  运算符

七,思维导图

1,算数运算符

2,赋值运算符

3,比较运算符

4,逻辑运算符

5,位运算符

6,运算符的优先级



一,算数运算符

1,加法运算符 +

加法运算符是最常见的运算符,用来求两个数值的合。

1,值相加
let sum=1+5;
console.log(sum);//6
console.log(1+2);//3
2,字符串互相加 

同类型,字符串与字符串相加,相当于字符串的拼接

console.log('hi'+'hello');//hihello
console.log('hi'+1);//hi1'
3,不同类型的相加

不同类型的对象做加法运算,全部转为字符串,拼接

console.log(1+'2');//12
console.log(1+'hello');//1hello
console.log('hi'+'hello');//hihello
console.log('hi'+1);//hi1'
console.log([1,2]+[3]);//1,2,3

2,减法运算符 -

减法运算符,只能用于数值运算。其他类型互相做减法运算,返回NaN。数值和字符串数字做减法运算会转成字符串之间的运算。

let sub=10-5;
console.log(10-5);
console.log([1,2]-[2]);//NaN
console.log('hi'-2);//NaN
console.log('hi'-'hello');//NaN

console.log('10'-8);//2

3,乘法运算符 *

乘法运算符,通常用于数值运算。其他类型互相做乘法运算,返回NaN。数值和字符串数字相互*会转为字符串之间运算。

let mul=10*5;
console.log(10*5);//50
console.log(10*'hi');//NaN
console.log('hi'*2);//NaN
console.log(10*'2');//20

4,除法运算符 /

除法运算符。通常用于数值运算。其他类型之间互相做乘法运算,返回NaN。数值与字符串数字之间做除法运算会转为字符串之间运算

console.log('除法')
let div=10/5;
console.log(10/5);//2
console.log(10/0);//Infinity
console.log('10'/2);//5
console.log(2/'dd');//NaN

5,模运算符 %

模运算符就是取余。通常数值运算。用来取余2来判断是否是偶数或者奇数。其他类型之间互相做模运算会返回NaN。如果字符串数字和数值之间做模运算,会强制转为字符串之间运算

console.log('取余')
let mod=10%5;
console.log(8%2);//0
console.log(10%5);//0
console.log(10%'2');//0
console.log(10%'dd');//NaN

6,幂运算符 **

幂运算就是平凡运算。通常用作数值运算。其他类型之间互相做预算会返回NaN。数值和字符串数值之间运算会转为字符串之间的运算

console.log('幂运算')
console.log(2**2);//4
console.log(2**3);//8
console.log(2**'2');//4
console.log(2**'dd');//NaN
console.log(2**0);//1

7,自增运算符 ++

自增运算符又称为 一元运算符。分为++在前和++在后。

  • ++在前,就是先运算,在执行代码;
  • ++在后,就是执行代码,在做运算;
let inc=10;
console.log(++inc);//11
console.log(inc++);//11
console.log(inc);//12

#通常用作for循环里面
for(let i=0;i<10;i++){
    console.log(i);
}

8,自减运算符 --

自减运算符也是一元运算符,也很--在前,和--在后。

  • --在前,先运算,在执行代码语句;
  • --在后,先执行代码语句,在做运算;
let dec=10;
console.log(dec--);//10
console.log(--dec);//8
console.log(dec);//8


二,赋值运算符

1,基础赋值 =

赋值运算符,就是用于给变量赋值。

// 赋值运算符
let a=10;
console.log(a); //10

2,自增赋值 +=

赋值运算符之自增运算   a+=1  可理解为a=a+1

a+=5;
console.log(a); //15

 3,自减赋值 -=

赋值运算符之减运算 a-=1 可理解为a=a-1

a-=5;
console.log(a);//10

4,自乘赋值 *=

赋值运算符之乘运算 a*1=1  可理解为a=a*1

a*=5;
console.log(a);//50

5,自除赋值 /=

赋值运算符之除运算  a/=5 可理解为a=a/5

a/=5;
console.log(a);//10

6,自模赋值 %=

赋值运算符之取余运算 a%=5  可理解 a = a%5

a%=5;
console.log(a);//0

7,自幂赋值 **=

赋值运算符之幂运算  a**=5  可理解为 a=a**5

a**=5;
console.log(a);//0


三,比较运算符

比较运算符是用来比较两个值的大小,然后返回一个布尔值,表示是否满足指定的条件

1,小于运算符

小于运算符,返回布尔值。

console.log(10<9);    //false

2,大于运算符 >

大于运算符,返回布尔值

console.log(10>9);    //true

 3,小于或等于 <=

小于或者等于运算符,返回布尔值

console.log(10<=9);   //false

4,大于或等于 >=

大于或者等于运算符,返回布尔值

console.log(10>=9);   //true

5,相等运算符 ==

相等运算符,返回布尔值,仅比较值,不比较类型

console.log(10==9);   //false
console.log(10=='10');//true

6,严格相等 ===

严格相等运算符,返回布尔值,不仅比较值,还比较类型

console.log(10===9);  //false
console.log('1'==1);  //true
console.log('1'===1);  //false

7,不等运算符 !=

不相等运算符,返回布尔值,仅比较值,不比较类型

console.log(10!=9);   //true
console.log(10!='10'); //false

8,严格不相等 !==

严格不相等运算符,返回布尔值,不仅仅比较值,还比较类型

console.log(10!==9);  //true
console.log(10 != 9);   //true
console.log(10 !== '10');//true


四,逻辑运算符

逻辑运算符又称为布尔运算符。算的是与或非。

1,与运算 &&

两边都为真,才返回真,任何一方为假,结果都为假


console.log(true&&true);//true
console.log(true&&false);//false
console.log(false&&true);//false

2,或运算 ||

任何一方为真,结果就返回真,

console.log(true||true);//true
console.log(true||false);//true
console.log(false||true);//true
console.log(false||false);//false

3,非运算

取反,真的变成假的,假的变成真的

console.log(!undefined); //true
console.log(!null);//true
console.log(!0);//true
console.log(!'');//true
console.log(!NaN);//true
console.log(!false);//true


五,位运算符

位运算符是处理每一个字节,他是一个非常底层的运算,好处就是速度极快,缺点是代码很不直观,许多场合使用他们非导致代码难以差错,以及难以理解。

快速记忆:

  • 左移运算符就是*2n次方(n代表位移次数)
  • 右移运算符就是/2n次方 (n代表位移次数,不同点,出现小数时要取整)

console.log(2>>3);//0
console.log(2<<3);//16
console.log(10>>3);//1
console.log(100>>3);//12

 底层:

1,左移运算符 <<

2,右移运算符 >>

十进制转为二进制,采用除2取余,逆序排列方法。

 console.log(5 << 2); // 20
console.log(1000 >> 8); //3

假设把42转为二进制,如何实现?


六,运算符的优先级

运算符的计算优先级,以下是从高到底

  • . [] ()   字段访问,数组下标,函数调用 表达式分组 ,优先级最高;
  • ++ -- typeof   一元运算符,返回数据类型;
  • * / % **   乘法,除法,取余,幂运算;
  • + - +  加法,减法,字符串的连接;
  • <<  >>  位运算;
  • <= >= < >  小于等于,大于等于,小于,大于;
  • == === != !==  相等,严格相等,不相等,严格不相等;
  • && 逻辑运算 与;
  • || 逻辑运算 或;
  • ! 逻辑运算 取反;
  • ?: 三元运算符

1,通过加()的方式,拆分成多条语句完成。

如果多个运算符混写在一起,常常非导致令人困惑的代码,所以我们一般可以通过多条语句完成,记住所有的运算符的优先级,是非常难的,也没有那么必要。

我们可以万能的括号()   手动拆分,手动指定不同的运算。


七,其他运算符

1,void 运算符

   void 运算符。通常用于执行一个表达式,但是不关心其返回值,常用于将表达式的结果强制转为undefined,这些情况在某些应用场景的时候,非常有用。比如组织a链接的默认行为。

 <a href="javascript:void(0);" onclick="alert('链接被点击,但不会跳转');">点击我</a>
   <script>
    // 或者在JavaScript代码中
    function doSomethingWithoutReturning() {
    // 执行一些操作
    console.log("操作完成");
    // 显式返回 undefined
    return void 0; // 但实际上,直接 return; 也可以达到相同效果
    }
    
    console.log(doSomethingWithoutReturning()); // undefined
</script>

演示:

2,delete 运算符

        delete 运算符用于删除对象的属性。需要注意的是,delete不能通过删除var或者let声明的变量。只能删除对象的属性。

let obj = {  
    name: "John",  
    age: 30  
};  
  
console.log(obj.name); // John  
  
delete obj.name;  
  
console.log(obj.name); // undefined,属性已被删除  
  
// 尝试删除全局变量(不推荐,且可能不起作用,取决于严格模式和作用域)  
// window.someGlobalVar = "Hello";  
// delete window.someGlobalVar; // 可能会工作,但不建议这样操作全局变量

3,in 运算符

in 运算符用于检查一个属性是否存在指定的对象中

let obj = {  
    name: "John",  
    age: 30  
};  
  
console.log("name" in obj); // true  
console.log("address" in obj); // false  
  
// 也可以用于检查属性是否存在于原型链中  
function Person(name) {  
    this.name = name;  
}  
  
Person.prototype.greet = function() {  
    return "Hello, my name is " + this.name;  
};  
  
let person = new Person("Jane");  
  
console.log("name" in person); // true  
console.log("greet" in person); // true,因为 greet 存在于 Person 的原型链上

4, 逗号 ,  运算符

逗号运算符用于执行多个表达式,并返回最后一个表达式的值。

let result = (1 + 2, 3 * 4, 5 - 1);  
console.log(result); // 4,因为 5 - 1 是最后一个表达式  
  
// 另一个例子,用于在同一行上声明多个变量  
let a = 1, b = 2, c = a + b;  
console.log(c); // 3


七,思维导图

1,算数运算符

2,赋值运算符

3,比较运算符

4,逻辑运算符

5,位运算符

6,运算符的优先级

7,其他运算符

  • 学习:知识的初次邂逅
  • 复习:知识的温故知新
  • 谢谢观看~

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值