“?”可进行三目运算
var n = 3
console.log(n === 3 ? 'n是3' : 'n不是3') // n是3
// 等同于
if (n === 3) {
console.log('n是3') // n是3
} else {
console.log('n不是3')
}
“!!” 强制转换布尔值
var t1 = null
var t2 = undefined
var t3 = 0
var t4 = {}
var t5 = function(){}
console.log(!!t1) // false
console.log(!!t2) // false
console.log(!!t3) // true
console.log(!!t4) // true
console.log(!!t5) // true
“+”可让字符串强制转换为number类型
var str='123';
console.log(typeof(str)) //string
console.log(typeof(+str)) //number
“^=” 不用中间变量也可交换两个数值
var num1 = 1, num2 = 2;
num1 ^= num2;
num2 ^= num1;
num1 ^= num2;
console.log(num1,num2); //2 1
“||”可代替简单的if和三目运算
var arr = [1,2,3]
var n1 = arr[1] || 999
var n2 = arr[8] || 999
console.log(n1) // 2
console.log(n2) // 999
“++”“–”自增自减
var nn = 3
var nn1 = ++nn // nn1=4;nn=4
var nn2 = nn++ // nn2=3;nn=4
var nn3 = --nn // nn3=2;nn=2
var nn4 = nn-- // nn4=3;nn=2
“>>”右移一位,等于除以2并且向下取整
var n1 = 12>>1
var n2 = 13>>1
var n3 = -12>>1
var n4 = -13>>1
“<<”左移一位,等于乘以2并且向下取整
var n7 = 12.3<<1
var n8 = 12<<1