js运算符,算术运算符、关系运算符、逻辑运算符、条件运算符、逻辑运算符

运算符

  • 运算符:在一个表达式里面起到运算作用的符号

算数运算符

双目运算符
//如果符号两面都为纯数字,则做加法运算
console.log(1+1);  //2
//如果一侧为字符串,则进行字符串的拼接
console.log("1" + 1);   //11
//注:除+以外,其他算数运算符都有隐式类型转换
  
  1. -
  2. *
  3. /
  4. % 取模
	- * / % 
	当算数运算符两侧为纯数字的时候,直接进行运算
	console.log(2*5) //10
	
	当一侧为纯数字字符串,纯数字字符串会转换成数字。
	console.log("2" * 5) //10

	如果符号两侧有一侧是非数字字符串,结果不能正常计算,结果都是NaN  
	console.log( a * 3);  //NaN
	
单目运算符

单目运算符也称为自增(自减)运算符

  1. ++
	a++ = a+1
	a++++a 的区别
	a++ 是先赋值再运算,不参与本次运算
	++a 是先运算后赋值,参与本次运算
	
	var a = 0;
	a++;
	console.log(a);  //a=1 不参与本次运算 
	++a;
	console.log(a);   //a=2 参与本次运算a=1 再自加1;
	console.log(a++); //a=2 这时a=2 不参与本次运算 运算之后a=3
	console.log(++a); //a=4 因为a=3 再加1 所以a=4

	练习题:
      var k=0;  
      console.log(k++ + ++k +k +k++);  //6
      console.log(k); //3
      //k++ = 0 这时k=1   ++k =2 这时k=2    k++ =2  运算完成k=3
      
  1. – 用法与++一致

条件运算符(三目运算符)

表达式1 ? 表达式2 : 表达式3

执行逻辑 : 如果表达式1为true 返回的是表达式2的结果,否则返回的是表达式3

        var a=10;
        var b=a?true:false;
        var c=3+2?8&&true:0;//5?true:0
        console.log(c);//true;

关系运算符

            >     <       ==      >=       <=       !=        ===  全等于       !== 全不等于
            1.符号两边都是纯数字的时候,直接比较大小
            2.如果符号一侧为数字字符串的时候 ,数字字符串会进行隐式类型转换
               eg : 1  < "2"   // true
            3. === 比较结果,类型,内存地址。
            4. 如果两侧都为字符串的时候,把字符串首字符转换成ASCII

逻辑运算符

&& : 与 全真为真,一假则假。
  1. 如果左边的表达式为真,会继续运算右边的表达式。
  2. 如果左边的表达式为假,不会继续运算右边的表达式,返回值为左边表达式的值。
  3. 如果左右都是真时,则返回右边表达式的结果。
  4. 如果左右都为假时,则返回左边表达式的结果。
         console.log(!3);//false;
         console.log(!0);//true;
         console.log(!-1);//false;
         console.log(3&&2);//2
         console.log(2&&3);//3
         console.log(0&&2);//0
         console.log(2&&0);//0
|| : 或 一真为真;
  1. 当左边的表达式为真时,不会继续运行右边的表达式,直接返回左边的表达式的值。
  2. 当左边的表达式为假时,会继续运算右边的表达式
  3. 当左右两边都为真时,返回右边的结果。
  4. 当左右两边都为假时,返回左边的结果。

如果&& 遇到false 后面的表达式不再执行
如果|| 遇到true 后面的表达式不再执行

! 非
		!""===true  //非空字符串为true
		!0===true  //非零数为true
		!undefined===true
		!null===true
		
		注: 
			Boolean() 强制类型转换
			所有非0数字 --- true;
			0 --- false
			所有非空字符串 --- true       
			空字符串 --- false
			[ ]数组 、 { }对象 --- true
			null \undefine --- false;

位运算符

&(按位与运算) |(按位或) ~(取反运算符) ^(异或) <<(左移位运算符) >>(右移位运算符)

总结
  • 单目运算符指的是运算符的左右两边,只有一边有值称之为单目运算符
  • 非0即为真
  • 比较运算符的表达式返回值为boolean类型。
NaN
NaN : not a number 不是一个数字
仅仅代表不是一个数字,自身与自身不相等,NaN == NaN 返回值是FALSE

isNaN() 
       判断是否为NaN;  如果是NaN  返回的则是true;
       执行逻辑:首先用Number() 转换,如果为NaN 返回的则是true;

isNaN()   相当于  window.isNaN();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值