算数运算符
- 与C语言几乎一样
- 不同:在JavaScript中整数除以整数可以得到一个小数
特点:
- 任何值和NaN运算,得到的结果都是NaN
var num1 = 666;
var res1 = num1 + NaN;
console.log(res1); //NaN
- 任何值和字符串进行加法运算,都会先转换为字符串之后再运算
var num2 = 3.14;
var str1 = "123";
var res1 = num2 + str1;
console.log(res1); //3.14123
- 其它运算符,如果参与运算的不是Number类型,会先转换为Number类型后再运算
var num2 = 3.14;
var n = null;
var res1 = num2 + n;
console.log(res1); //3.14
- 只有加法才会转换为字符串, - * / %都会转换为Number
var num1 = 666;
var str1 = "123";
var res2 =num1 - str1;
console.log(res2); //543
- 对于取模运算m%n, m小于n, 结果就是m; 如果m等于0, 结果就是0, 如果n等于0, 结果就是NaN
赋值运算符
- JavaScript中的赋值运算符和C语言一样
- 将等号右边的值,放到等号左边的变量的存储空间中
自增自减运算符
- JavaScript中的自增自减运算符和C语言一样
- 前置:先自增或自减,再运算
- 后置:先运算.再自增或自减
num = 1;
var res = ++num + num++; //4
关系运算符
- JavaScript中的关系运算符和C语言几乎一样
- 新增 === !==(判断内容和类型是否不等)
- 对于非Number类型的数据,会先转换为Number类型之后再比较
var num1 = 123;
var str1 = "123";
var res = num1 === str1; //false
- 对于null和undefined来说,虽然null转换为Number之后是0,undefined转换为Number之后是NaN,但是再和0做==比较的时候, 会返回false
var u = undefined;
var res = u == 0;
console.log(res); //false
- 如果比较undefined和null是否相等,会返回true
var n = null;
var u = undefined;
var res = u == n;
console.log(res);//true
- 不要用其它值和NaN进行==比较
- 不要让两个NaN之间进行比较
var flag = NaN;
var res = isNaN(flag);
console.log(res); //true
逻辑运算符
- JavaScript中的逻辑运算符和C语言几乎一样
&& 一假则假
|| 一真则真
! 真变假假变真
- 对于非Boolean类型的数据, 会先转换为Boolean类型之后再判断
条件A && 添加B;
如果条件A不成立, 那么就返回条件A
如果条件A成立, 不管条件B是否成立, 都会返回条件B
条件A || 添加B;
如果条件A成立, 那么就返回条件A
如果条件A不成立, 那么不管条件B是否成立, 都会返回条件B
var num1 = 123;
var num2 = 3.14;
var num3 = 0;
var res1 = num1 && num2;
console.log(res1); //3.14
var res2 = num3 && num1;
console.log(res2); //0
var num1 = 123;
var num2 = 3.14;
var num3 = 0;
var res1 = num1 || num2;
console.log(res1); //123
var res2 = num3 || num2;
console.log(res2); //3.14
- 判断之后的返回值,逻辑与和逻辑或都有自己的规则
逗号运算符
- JavaScript中的逗号运算符和C语言一样
- 一般用于同时定义多个变量
- 逗号运算符的结果就是最后一个表达式的结果
企业开发一般用不上
var res = (1+1,2+2,3+3);
console.log(res);//6
三目运算符
- JavaScript中的三目运算符和C语言一样
- 条件表达式 ? 结果A : 结果B;
var res = 10 > 5 ? 10 : 5;
console.log(res); //10
网友评论