JavaScript运算符

运算符

算数运算符
+  -  *  / %

  • 字符串相加,首尾相连
    如果+运算符一端是字符串,另一端不管是任何类型都会隐式转换为字符串
    隐式转换:自动默认转换,将目标类型的构造函数强制转换为
console.log(“abc”+“def”)   // abcdef
console.log(“abc”+“5)      //  abc5
//  abc5
console.log(“abc”+true)     // abctrue
console.log(“abc”+null)    // abcnull
console.log(“abc”+{a:1}) //abc[object Object]
 consloe.log(5+“”)        //加一个空的字符串,就转换为字符串

  • 数值+布尔值
    隐式相加
console.log(1+true)  //2
comsole.log(1+false) //1
//数值+Undefined会隐式转化为数值相加 NaN
console.log(1+undefined) //NaN
//null 隐士转换为0
console.log(1+null) //0

数值除了字符串外的非数值相加都会隐式转为数值相加
-、*、/ 都会依照数值运算先将所有其他类型转换为数值后在运算


赋值运算符
a+=2       //先运算等号右边的内容,将运算的结果赋值给等号左侧
吧、      //加一个空的字符串,就转换为字符串

a+2 步长 累加
将运算结果赋值回原来的变量覆盖原值

一元运算符
a++;   //会隐式转换为数值再进行+1
a+=1 ;  //参照算数运算符
后置递增
var b=a++;    //b=1  a=2
先递增后返回原值
前置等曾
var b=++a   //b=2 a=2
先返回原值再进行递增
关系运算符
  • < <= > >= 返回布尔值
  • == =! 会自动隐式转换为两端类型相同后比较
  • === ===!不转换类型,除了比较直以外还会比较类型
  • 0 false “”相等
  • null undefined 相等 空或者未赋值
  • NaN==NaN 不等
var a="4a" ;
Number.isNaN(a);
//都是判断数值类型,非数值类型不隐式转换返回false,数值类型进行判断;
isNaN(a);
//先隐式转换为数值,然后在判断是否是非数值

if 条件语句,如果返回的不是布尔值时会自动隐式转换为布尔值

if(a){
}
  • !a:取反,取布尔值的反,如果是布尔值就会变成相反的结果。
  • 如果值不是布尔值就会隐式转话为布尔值再取反。
console.log([ ] =[ ])     //false
//因为数组是对象类型,也就是引用类型,两个新的数组就是两个不同的对象,所以不想等
console.log([ ] != [ ])  //true
//[ ] 空数组转换为字符串" " ;
// " ”== false ;

逻辑运算符
|| 或
  • true || true 返回第一个true
  • true || false 返回隐式转换为布尔值为true的值
  • false || true 返回隐式转换为布尔值为true的值
  • false || false 返回最后一个false的值
&& 且
  • true && true 返回第二个true的结果
  • true && false 返回false的结果
  • false && true 返回false的结果
  • false && false 返回第一个false的结果

图像 像素点 每个像素点是一个纯色彩
一英寸 72像素点


位运算符
  • 位非运算符 ~
var a=4 ;
加1取负
console.log(~a);   //-5
双位非,取整,任何内容转换为数值,如果是非数值变为0,其他为数值
console.log(~~a) // 4

  • & 运算 于运算
console.log(35 && 42) //结果为12
011110
101101
001100
//两个全为1就为1,有0就为0;
  • | 运算 或运算
011110
101101
111111
//有1就为1
  • ^异或运算
011110
101101
110011
//两个都是相同时则为0,不同时则为1
  • <<左移位运算符
console.log(8<<2);  //结果为32
100000          
左移动两位
console.log(1<<n)
像左移动n位就是2的n次幂
  • 右移位运算符
console.log(8>>2) ;  //结果为2
10
向右移动两位
三目运算符
 ? :
 var a=5 ;
 var b=a>3 ? 1 : 0 ;
//如果a>3时,返回1赋值给b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值