JS 运算符
算术运算符
- JS 运算符 + - * / %
- 隐式转换:js 内部帮助我们转换
- 显式转换:人为添加方法转换数据类型
除了加法数据类型不是 number 类型时会进行拼接, 其他都不会拼接, 会隐式转换
console.log(1 + 2) // 3
console.log(1 + '2') // //"12" +有字符串会拼接
console.log(2 - 2) // 0
console.log(2 - '2') // 2 - '2' --> 2 -2 == 0
console.log(1 * 3) // 3
console.log(1 * '3') // 1 * '3' --> 1 * 3 == 3
console.log(3 / 1) // 3
console.log(3 / '1') // 3 / '1' --> 3 / 1 == 3
console.log(7 % 2) // 1
console.log(7 % '2') // 7 % '2' --> 7 % 2 == 1
赋值运算符
- JS 的赋值
- 可以用赋值号赋值(=)
- += -= *= /= %=
-
- 做什么的
- 运算
-
- 可以不用
- 可以
-
- 用了有什么好处
- 简化代码量
var a = 1
//a = a + 1 // 2
//a += 1 //2
// a = a * 1 // 2
// a *= 1 //2
// a = a * 1 // 2
// a *= 1 //2
// a = a % 1 // 0
// a %= 1 //0
console.log(a)
比较运算符
- JS 的比较运算符
-
< >= <= == === != !==
-
== 等于
-
= 赋值
-
=== 全等
-
== 和 === 作用一样, 用于对比两侧数据是否相等
-
== 只对比数据, 不对比数据类型
-
=== 对比数据, 且 对比数据类型
-
== 在对比数据时, 两侧数据不同, 比如 一侧是数字, 一侧是字符串, 会进行隐式转换
-
console.log( 1 > 2) //flase
console.log( 1 < 2) //true
// == 隐式转换 不判断类型 只对比数据
console.log( 2 == "2") //true
// === 会判断类型
console.log( 2 === "2") //flase
//!= !== 与 == === 一样
console.log( 2 != "2") //flase
console.log( 2 !== "2") //true
- != 不等于
- !== 不全等于
- 两者作用相同, 用于对比两侧数据是否相同, 相同时返回 false, 不相同返回 true
- != 只对比数据, 不对比数据类型 (会进行隐式转换, 转换为相同类型再对比)
- !== 对比数据, 且 对比数据类型
console.log(2 != 2) // false
console.log(2 !== 2) // false
console.log(2 != '2') // false
console.log(2 !== '2') // true
逻辑运算符(重点)
-
逻辑运算符
-
&& (逻辑与 逻辑且)
-
|| (逻辑或)
-
! (非, 取反, 逻辑非)
-
//逻辑与 &&
// var b = true && true //前真返回后一个值 true
// var b = true && false //前真返回后一个值 false
// var b = false && true //前假返回前一个 false
// var b = 0 && 1
// console.log(b) //0 false && true
// var b = 1 && 2
// console.log(b) //2 true && true
- 逻辑或 ||
* 语法:
* 变量1 || 变量2
* 表达式1 || 表达式2
* 返回方式:
* 前一个为真, 就返回第一个
* 前一个为假, 就返回后一个
// var b = 1 || 0 //1
// var b = 0 || 11 // 11
-
逻辑非 , 取反
-
语法 !变量
-
作用:
-
改变变量值的布尔类型
-
var b = true
b = !b //false
// var c = 9
// c = !9
// console.log(c) // false
var c = 9
console.log(!c) // false
console.log(!!c) // true
自增自减运算符
- 自增自减
- 变量名 前 或者 后 写上 ++(--)
// var a = 0
// var b = ++a //1
// var c = a++ //1
var b = ++a
1. 先给 a 自增1, a的值为1
2. 参与周围表达式的运算, 把 a 的值 赋值给 变量 b
console.log(b) // 1
++ 在后, 先参与周围表达式运算, 然后自增1
var c = a++
1. 把 a 的值直接赋值给 c (此时还未自增, 也就是说 a 的值 为 0)
2. a 自增1
自减同理