JS的算术运算符
-
JavaScript的算数运算和C语言几乎一样
与C语言不同的是: 在JavaScript中整数除以整数可以得到一个小数 -
JavaScript特有的特点:
-
任何值和NaN运算, 得到的结果都是NaN
-
任何值和字符串进行加法运算, 都会先转换为字符串之后再运算
-
其它运算符, 如果参与运算的不是Number类型, 会先转换为Number类型后再运算
-
只有加法才会转换为字符串, - * / %都会转换为 Number类型
-
对于取摩运算m%n, m小于n, 结果就是m; 如果m等于0, 结果就是0, 如果n等于0, 结果就是NaN
-
<script>
//"123" + "abc" --> "123abc" -- >相当于C语言中的字符串拼接
var res = 123 + "abc";
console.log(res);
</script>
JS的赋值运算符
- JavaScript中的赋值运算符和C语言一样
var num = 1; // 将等号右边的值, 放到等号左边的变量的存储空间中
console.log(num); // 1
num += 1; // num = num + 1; 2
console.log(num);
num -= 1; // num = num - 1; 1
console.log(num);
num *= 2; // num = num * 2; 2
console.log(num);
num /= 2; // num = num / 2; 1
console.log(num);
num %= 2; // num = num % 2; 1
console.log(num);
JS中的自增自减运算符
- JavaScript中的自增自减运算符和C语言一样
也分为前置和后置
写到前面就是先自增或者自减, 然后再参与其它运算
写到后面就是先参与其它运算, 然后再自增或者自减
var num = 1;
// 2 + 2
var res1 = ++num + num++;
// 2 + 3
var res2 = ++num + ++num;
console.log(res1); // 4
console.log(res2); // 5
JS中的关系运算符
-
JavaScript中的关系运算符和C语言几乎一样
不一样的是新增了 === / !== -
JavaScript中特有的特性:
-
对于非Number类型的数据, 会先转换为Number类型之后再比较
-
对于null和undefined来说, 虽然null转换为Number之后是0, undefined转换为Number之后是NaN, 但是再和0做==比较的时候, 会返回false
-
对于null和undefined来说, undefined的值实际上是由null值衍生出来的,所以如果比较undefined和null是否相等,会返回true
-
千万不要用其它值和NaN进行 == 比较, 也不要让两个NaN之间进行比较(用 isNaN 函数)
isNaN函数的作用, 就是判断传入的值, 是否是NaN,如果是就返回true, 如果不是就返回false
-
== 判断左右两侧的值是否相等
=== 除了需要判断左右两侧的值是相等以外, 还会判断类型是否相等
!= 判断内容是否不同
!== 判断内容和类型是否不同
var res1 = 123 != NaN; // 不推荐的写法
console.log(res1);
var res2 = NaN == NaN; // 不推荐的写法
console.log(res2); // false
// isNaN函数的作用, 就是判断传入的值, 是否是NaN,
// 如果是就返回true, 如果不是就返回false
var num1 = NaN;
var num2 = 123;
var res1 = isNaN(num1);
console.log(res1); // true
var res2 = isNaN(num2);
console.log(res2); // false
JS中的逻辑运算符
-
JavaScript中的逻辑运算符和C语言几乎一样
&& 一假则假
| | 一真则真
! 真变假 假变真 -
JavaScript中特有的特性:
-
对于非Boolean类型的数据, 会先转换为Boolean类型之后再判断
-
对于逻辑&&来说:
条件A && 添加B;
如果条件A不成立, 那么就返回条件A
如果条件A成立, 不管条件B是否成立, 都会返回条件B -
对于逻辑||来说:
条件A || 添加B;
如果条件A成立, 那么就返回条件A
如果条件A不成立, 那么不管条件B是否成立, 都会返回条件B
-
注意点:
- 对于非Boolean类型的数据, 会先转换为Boolean类型之后再判断
- 判断之后的返回值, 逻辑与和逻辑或都有自己的规则
<script>
// 条件A不成立
var res1 = 0 && 1;
console.log(res1); // 0
var res2 = 1 && 6;
console.log(res2); // 6
var res3 = 1 && 0;
console.log(res3); // 0
var res1 = 1 || 6; // 1 --> true
console.log(res1); // 1
var res2 = 0 || 6;
console.log(res2); // 6
</script>
JS中的逗号运算符
- JavaScript中的逗号运算符和C语言一样
-
C语言中逗号运算符的应用场景, 一般用于同时定义多个变量
-
C语言中逗号运算符也是一个运算符, 只要是运算符都有运算的结果
逗号运算符的结果就是最后一个表达式的结果
企业开发一般用不上
-
var a, b, c;
a = 10;
b = 20;
c = 30;
console.log(a); // 10
console.log(b); // 20
console.log(c); // 30
var res = (1 + 1, 2 + 3, 3 + 3);
console.log(res); // 6
JS中的三目运算符
-
JavaScript中的三目运算符和C语言一样
条件表达式 ? 结果A : 结果B;
var res = 10 > 15 ? 10 : 15;
console.log(res); // 15
网友评论