菜单

js运算符

2019年5月4日 - JavaScript

MDN定义:位运算符将它的操作数视为30位元的二进制串(0和壹结合)而非10进制八进制或十6进制数。

运算符

用来连接轻松表明式,组成多个错综相连的表明式。

诸如:10进制数字玖用2进制表示为⑩0一,位运算符便是在那个二进制表示上进行运算,不过回到结果是行业内部的JavaScript数值。

位运算符有九个,这里只讲贰个:按位异或^

‘+’号

obj={a:1,b:2}
obj+3//'[object object]3',先调用obj.toString()得出[object object]再和3相加

obj={a:1,b:2 valueof:function(){return 100}}//obj+3得出103,调用valueof的方法

+'4'//4
+true//1
+false//1
+'ac'//NaN
+new Date()//1482648206084

用法:

a^b,
运算规则:在a,b的位代表中,每3个应和的位,三个不一样样则赶回一,同样则赶回0.

除法

x/y

代码示例:

/**
 * @param {number[]} nums
 * @return {number}
 */
var singleNumber = function(nums) { // 如果相同数字,则其二进制都一样,返回0,不一样的返回1,这段代码,返回了nums数组中唯一不一样的值
    var a
    for (var index=0, leng=nums.length; index<leng; index++){
        a ^= nums[index]
    }
    return a
};

 

余数

x%y 100/3等于1

a=345,b=22  
parseInt(a/b)//商
a%b//余数

自增

++x或者x++

a=100,b=a++
console.log(a,b)//a=101,b=100先赋值再相加

c=100,d=++c 
console.log(d,c)//d=101,c=101,先加再赋值

求负运算符

-x为求负运算符
+x为数值运算符

赋值运算符

用于给变量赋值,最广大的是等号,x=y正是将y父赋值给x

x+=y//等同于x=x+y
x-=y//等同于x=x-y
x*y//等同于x=x*y
x/y//等同于x=x/y
x%=y//等同于x=x%y

正如运算符

正如四个值,重回多个布尔值,表示是不是满意相比标准

==  
===
!=//不相等
!==//严格不相等
<
>
>=

布尔(逻辑)运算符

!//取反
&&//且
||//或
!''//!就是将后面的强调转换布尔值再取反  
!!//就是将后面强制转换为布尔类型 
condition?true case:false case//三元条件运算符

其他

小括号

设若把表明式放在圆括号内部,作用是求值。
要是跟在函数的末端,功用是调用函数

(1+1)//2
function(){}//报错如果(function(){})当做表达式

void

作用是实行1个表达式重回undefined

void(1+2)//undefined

function fn(){
  var undefined=3;
  var a;
  if(a===undefined){
  console.log('===')
}else{
  console.log('!==')
}
}//fn() !==当把undefined赋值了就不能做判断了,方法就是a===voido

逗号运算符

用于对七个表达式求值,并重回后三个表达式的值。

3,4//4
a=(3,4)//4,括号表示求表达式的值
a=3,4//等号的优先级高,a就等于3
var a=1,
     b=2//等同于var a=1;var b=1;

运算符优先级与结合性

typeof 2*3//(typeof 2)*3等于NaN

4++(不能这样写)
var a=0,b=0
a+++b//0
(a++)+b//0

!2*0//0等价于(!2)*0

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图