ECMAScript - 运算符

运算符优先级

• () 圆括号优先级最高
• 【* / %】 高于【+ -】 高于【<、<=、>、>=】高于【==、!=、===、!==】高于【||、&&】 高于【=】

运算符优先级汇总表

面试题

console.log(!!' ' + !!'' - !!false || '没通过') //输出1
// 1 + 0 - 0 ||'没通过'(||遇到真即返回)-> 返回1  
//优先级排序:【* / %】高于【+ -】高于【|| &&】高于【=】

window.a || (window.a = "1");//输出1
//  优先级:() 高于 || 高于 = 
// ()执行,window.a被赋值为1 -> 或运算 1|| -> 返回1

常用运算符

1.加号+

• “+”可以用于数学运算,也可用于字符串拼接
• 任何数据类型加上字符串的值 + 字符串 都是字符串
• 运算顺序:从左向右

//字符串拼接
c = 1 + 'str';//'1str'
c = 'str' + 'str';//'strstr'
c = 'str'+ undefined;//'strundefined'
c = 'str'+ null;//'strnull'
c = 'str'+ NaN;//'strNaN'
// 从左向右进行计算
c = 'str' + 1 + 1;//'str11'
c = 'str' + (1 + 1);//'str2'
c = 1 + 1 + 'str';//'2str'

2.除号/

var a = 5,
	b = 2,
	c;
c = a / b;// 2.5
c = 0 / 0;// NaN 
c = 'a' / 'b';// NaN
c = NaN / 5; // NaN
c = NaN / NaN; // NaN
c = 5 / NaN; // NaN
c = 1 / 0;// Infinity -> 数字类型
c = -1 / 0;// =Infinity -> 数字类型

3.取余%

c = 5 % 2;// 1 取模
c = 4 % 6;// 4 取余
c = 0 % 6;// 0 取余

4.自增++ 自减–

//a++ :存储新值,用旧值(上一个值)来计算,也就是输出旧值
var a = 1;
console.log(a++,a);//1,2
//++a :存储新值,用新值(当前的值)来计算,也就是输出新值
var a = 1;
console.log(++a,a);//2,2 

var a = 5, 
        b;
//以下为console.log(b,a)的结果
// b = a-- + --a//8, 3
//a新值 4     3      
//b计算  5     3  
// b = --a + --a//7, 3
//a新值  4     3      
//b计算  4     3
// b = --a + a++//8, 5
//a新值  4     5      
//b计算  4     4

5.比较运算符

• >、 < 、>= 、<=、==、 ===、 !=、 !==
• 比较运算符中会有隐式类型转换,具体见:
数据类型转换

var bool = 1 > 2;
console.log(bool);// false
var bool = 1 > '2';//false
//number与string比较->将string 转换为 number 再进行比较
var bool = 'a' > 'b'; //false
//string与string比较->比较字符串的ASCⅡ码(相对应的10进制代码)
var bool = '4.5' > '11' // true
//从左向右一位一位进行比较ASCⅡ码 直到比较出ASCⅡ的大小
var bool = 1 == 1;//true
//相等不看数据类型
var bool = 1 === '1';//false
// 全等要看数据类型是否相等
var bool = NaN == NaN;//false
//NaN 与任何东西都不相等,包括自己在内

6.逻辑运算符 (与或非)

与&& 、或|| 、非!
除了undefined, null, NaN, “”, 0, false以外的值都为true

//短路与&&:遇到真就往后走,遇到假或者走到最后就返回当前的值
1 && 1 //返回1 条件为:真
0 && 1 //返回0 条件为:假
1 && 0 //返回0 条件为:假
0 && 0 //返回0 条件为:假
//短路或||:遇到假就往后走,遇到真或者走到最后就返回当前的值
1 || 1 //返回1 条件为:真
0 || 1 //返回1 条件为:真
1 || 0 //返回1 条件为:真
0 || 0 //返回0 条件为:假
var name="";
console.log(name||"未找到数据");
var a = !1;//false 1是true,!1是false
a = !a //赋值
a != a//判断

7.逗号运算符

• 逗号运算符 返回所有逗号最后的一个值

var num = (2 - 1, 6 + 5, 24 + 1);
console.log(num);// 25
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值