JavaScript运算符
一、算数运算符
JavaScript中的算数运算符主要有:+ 、- 、 * 、 / 、 ++ 、 -- 、 %
console.log(1 + 2) // 3
console.log('1' + 2) // 字符串参与的加其实是拼接 '1' + '2' -> '12'
console.log(+8) // 8
console.log('12' - 2) // 12 - 2 -> 10
console.log(20 * 2) // 40
console.log(4 / 3) //
console.log(4 / 2)
自增运算符和自减运算符相似,下面看一个例子即可:
let x = 5
//let y = x++ // x++整体赋值给y,用的是x原有的值
let y = ++x // ++x整体赋值给y,用的是x加1后的值
// x++ // 让x在原有基础上加1
// ++x // 让x在原有基础上加1
console.log(x) // 6
console.log(y) // 6
let i = 3,
j = 4,
k //一次性定义三个变量
++i
j++
k = j++
console.log(i, j, k) // 4 6 5
// % 取模运算符
console.log(4 % 2) // 0
console.log(4 % 3) // 1
let num = 25
console.log(num % 5 == 0)
二、关系运算符
JavaScript中关系运算符有 > < >= <= == === != !==
console.log(3 > 2) // true
console.log(10 <= 10) // true
// == 不严格等于,只要内容相同即可
console.log(5 == 5) // true
console.log(5 == '5') // true
// === 严格等于,内容与类型都需要一样
console.log(5 === 5) // true
console.log(5 === '5') // false
下面认识一下不容易分清楚的null和undefind的区别
console.log(null == null) // true
console.log(NaN == NaN) // false
console.log(undefined == undefined) // true
console.log(null === null) // true
console.log(NaN === NaN) // false
console.log(undefined === undefined)
console.log(null == undefined) // true
console.log(null === undefined) // false
/* null 和 undefined 区别
1.null是空值,以后会指向引用类型的数据,undeined是未定义值,就是undefined
2.Number之后的数值不相, null是0,undefined是NaN
3.不严格等号状态下,两者相等,严格状态下,两者不相等 */
console.log(5 != '5') // false 对==的否定
console.log(5 !== '5') // true 对===的否定
三、逻辑运算符
JavaScript中的 逻辑运算符有 &&(与) 、||(或)、 !(非)
// 表达式1&&表达式2
// 判断表达式1的值,转布尔类型假如为true,直接返回表达式2的值
// 表达式1的值转布尔类型假如为false,直接返回表达式1的值,
console.log(5 > 3 && 10 < 5) // true&&false false
console.log(5 > 3 && 10 > 5) // true&&true true
console.log(5 == 3 && 10 < 5) // false&& false false
console.log(5 && 6) // 6
console.log(10 > 8 && 0) // 0
console.log('' && 100) //''
// 逻辑与短路现象
// 表达式1的值转布尔类型假如为false,直接返回表达式1的值,此时不会执行表达式2的值
let i = 3
console.log(null && ++i)
console.log(i) //3
// 表达式1 || 表达式2
// 判断表达式1的值,转布尔类型假如为true,直接返回表达式1的值
// 表达式1的值转布尔类型假如为false,直接返回表达式2的值,
console.log(5 > 3 || 10 < 5) //
console.log(5 > 3 || 10 > 5) //
console.log(5 == 3 || 10 < 5) //
console.log(5 || 6) // 5
console.log(10 > 8 || 0) // true
console.log('' || 100) // 100
let j = 3
console.log(null || ++j)
console.log(j) //4
// 非 !
console.log(!true)
console.log(!0)
let num = 'hello'
console.log(!!num) // true