void 运算符
void运算符的作用是执行一个表达式,然后不返回任何值,或者说返回undefinedvoid 0 // undefined void(0) // undefined
var x = 3;void (x = 5) //undefinedx // 5console.log(void(1+1),void(0),void 4 + 7,undefined + 7,'undefined'+7,null + 7,);// undefined undefined NaN NaN 'undefined7' 7
总是使用圆括号,因为void运算符的优先性很高,如果不使用括号,容易造成错误的结果void 4 + 7 (void 4) + 7
超级链接中插入代码防止网页跳转,用户点击链接提交表单,但是不产生页面跳转
<a href="javascript: void(f())">文字</a><a href="javascript: void(document.form.submit())">提交</a>
逗号运算符
逗号运算符用于对两个表达式求值,并返回后一个表达式的值
逗号运算符的一个用途是,在返回一个值之前,进行一些辅助操作
console.log(('a','b'),); //bvar value = (console.log('hi'), true) //hi
var f = (function f() {return 1},function g() {return 2})()console.log(f)//2
运算顺序
var y = arr.length <= 0 || arr[0] === undefined ? x : arr[0];var y = ((arr.length <= 0) || (arr[0] === undefined)) ? x : arr[0];
记住所有运算符的优先级,是非常难的,也是没有必要的
运算符的优先级别十分繁杂,且都是硬性规定,因此建议总是使用圆括号,保证运算顺序清晰可读,这对代码的维护和除错至关重要
圆括号不是运算符,而是一种语法结构。它一共有两种用法:一种是把表达式放在圆括号之中,提升运算的优先级;另一种是跟在函数的后面,作用是调用函数
左结合与右结合
少数运算符的计算顺序是从右到左,即从右边开始计算,这叫做运算符的“右结合”
最主要的是赋值运算符(=),三元条件运算符(?:),指数运算符
w = x = y = z;q = a ? b : c ? d : e ? f : g;w = (x = (y = z));q = a ? b : (c ? d : (e ? f : g));2 ** 3 ** 2 //512
