二元操作符又叫二元逻辑运算符,是典型的基于boolean(逻辑)值的运算,他们返回的是boolean值。
二元运算符主要包括:
注:&&优先级高于 ||
二元布尔操作符是可进行短路操作的,只有再必要的时候才会计算到最后一项.
三元操作符又叫条件运算符,它将两个结果中其中一个符合运算逻辑的值返回。
三元运算符一般用于替代if条件判断语句。
操作符始终写在前一行,以免分号的隐式插入产生预想不到的问题,正确的书写方式如下所示:
https://www.w3cschool.cn/webdevelopment/jpbfrozt.html
其实在逻辑运算里面,非操作符是会把一个值变成布尔值true或者false的,其它类似||或者&&则是返回操作值中的一个,并没有转为布尔值。这个特性跟C/C++是很大不一样的。这个是JS语言本身的特性,理解它就好了。至于
(a || b),只要a的逻辑意义是false,返回的都是b,只要a的逻辑意义是true,则返回a
比如:
var a = {}
var b = 1
var c = (a || b)// c引用的是a对象(不是true这个布尔值),因为a对象的逻辑意义是true
又如:
var a = null
var b = 1
var c = (a || b)// c的值是1,因为a为null的逻辑意义是false
如果想强行但到一个值变成布尔值,可以用两次非操作,即:
var c = !!a//
let array = [12,5,1,9,16,3,21,55,102,34]function test(array){
array = array.sort((i1, i2) =>i1-i2)
const length = array.length
const resultArr = []
for(let i=0i<length/2i++){
let min = array[i]
let max = array[length-i-1]
resultArr.push([max, min])
}
return resultArr
}
console.log(test(array))