开门见山——JS基础知识点(二)
继JS中的运算符
-
一元运算符,只需要一个操作数
- +加号不会对数字产生影响
- -负号可以对数字取反。如:a = 123; -a = -123(对于非Number先转换为Number,如:true)
- 使用+可以将其他类型转换为Number。
-
自增,使变量在自身的基础上增加1。
- a++,执行再+1。
- ++a,先+1再执行。
自减同理。
演示如下:
var n1 = 10, n2 = 20;
var n = n1++;
console.log(n); //10
console.log(n1); //11
n = ++n1;
console.log(n); //12
console.log(n1); //12
-
逻辑运算符。
-
! 非
非运算就是对一个布尔值取反。
-
&& 与
- 全真为真。(第一个值为false,不会检查第二个值。)
- 两个值为true,返回后值。如:5 && 6 返回 6。
- 两个值为false,返回前值。如:NaN && 0 返回 NaN。
-
|| 或
- 全假为假。(第一个值为true,不会检查第二个值。)
- 前值为true直接返回第一个值,前值为false直接返回第二个值。
-
-
赋值运算符。
-
=
符号右边的值赋给左边的值
-
+=
a += 5 等价于 a = a + 5
-
-=
a -= 5 等价于 a = a - 5
-
*=
a *= 5 等价于 a = a * 5
-
/=
a /= 5 等价于 a = a / 5
-
%=
a %= 5 等价于 a = a % 5
-
-
关系运算符。
> 大于号
< 小于号
>= 大于等于
<= 小于等于
关系成立返回true,否则返回false。非数值先转换为数值。
如果两边都为字符串不会转化数值,比较字符串中字符的Unicode。(比较第一位,一样则下一位)
任何值和NaN做比较都是false。
-
相等运算符。
-
== 相等
不同类型一般转化为Number。
console.log(1 == "1"); // true
console.log(true == "1"); // true
console.log(true == "hello"); // false
特殊的:null == 0 为 false, undefined == null 为 true,NaN不和任何值相等(包括它本身),可以通过isNaN()函数判断一个值是否为NaN。
-
!= 不相等
也会自动类型转换。
-
=== 全等
不会自动类型转换,类型不同直接返回false。(null === undefined 为 false)
-
!== 不全等
和不等类似,不会自动类型转换,类型不同直接返回true。(1 !== “1” 为 true)
-
条件运算符。
条件运算符也称三元运算符。 语法:条件表达式?语句1 : 语句2;
var a = 10, b = 20 , c = 30;
var max = a > b ? a : b; // 20
var m = a > b ? a > c ? a : c : b > c ? b : c; // 30 加括号理解↓↓↓
//var m = a > b ? (a > c ? a : c) : (b > c ? b : c); // a跟b比,最大的再跟c比。写法不推荐,不方便阅读
-
运算符的优先级。
-
**,**运算符
使用,可以分割多个语句,一般在声明多个变量时使用。
-
先乘除后加减,一样高从左往右算。
-
与&& 优先级比 或|| 高。
-
上层比下层高。同层即同级,从左往右算。忘记了可以用()改变优先级。