擴(kuò)展運(yùn)算符:...
var o={a:1,b:2};
var obj={...o,b:3};
console.log(b); // {a:1,b:3}
對(duì)象會(huì)重寫值。
參考:https://www.cnblogs.com/crazycode2/p/9063497.html
邏輯運(yùn)算符(&& 或 || )
第一、&& (邏輯與)運(yùn)算,看一個(gè)簡(jiǎn)單的例子:
var a = 1 && 2 && 3;
var b = 0 && 1 && 2;
var c = 1 && 0 && 2;
console.log(a);//值為3
console.log(b);//值為0
console.log(c);//值為0
運(yùn)行的結(jié)果是 :3,0,0。
解析:
“&&” 運(yùn)算遇到false就返回;
變量a的計(jì)算:因?yàn)? && 2,1為真,返回2;2&&3, 2為真,返回3 。
變量b的計(jì)算:因?yàn)? && 1,0為假,返回0,不再往下計(jì)算。
第二、|| (邏輯或)運(yùn)算,看一個(gè)簡(jiǎn)單的例子:
var d = 0 || 1 || 2;
var e = 1 || 0 || 2;
var f = 1 || 2 || 0;
console.log(d);//值為1
console.log(e);//值為1
console.log(f);//值為1
解析:
“||”運(yùn)算遇到true就返回;
變量d的計(jì)算:因?yàn)? || 1,0為假,返回1;1 || 2, 1為真,返回1 。
變量e的計(jì)算:因?yàn)? || 0,1為真,返回1,不再往下計(jì)算。
三、&& (邏輯與) 和||(邏輯或)混合使用:
var g = 1 && 2 || 3;
var h = 1 || 2 && 3;
var i = 0 || 2 && 3;
console.log(g);//值為2
console.log(h);//值為1
console.log(h);//值為3
解析:
&& (邏輯與) 優(yōu)先級(jí)高于||(邏輯或);
變量g的計(jì)算:因?yàn)? && 2,1為真,返回2;2 || 3, 2為真,返回2 。
變量e的計(jì)算:等式看成 1 || (一個(gè)值),1為真,最終直接返回1,不需要計(jì)算后邊的等式的值。
變量i的計(jì)算:因?yàn)? && 3,2為真,返回3;0 || 3,0為假,返回3。
指數(shù)運(yùn)算符(**)
問題:x的y次冪如何表示?
一、指數(shù)運(yùn)算符(**)
console.log(2 ** 2); // 4
console.log(3 ** 2); // 9
console.log('3' ** '2'); // 9
二、Math.pow()
console.log(Math.pow(2, 2)); // 4
console.log(Math.pow(3, 2)); // 9
console.log(Math.pow('3', '2')); // 9
參考:https://www.cnblogs.com/mazey/p/8447098.html
可選鏈運(yùn)算符(?.)
空值合并運(yùn)算符(??)
最近出現(xiàn)的 a?.b 以及 a ?? b 語(yǔ)法編譯報(bào)錯(cuò)是因?yàn)閎rowserslist升級(jí)到4.21.0導(dǎo)致的,@babel/preset-env 依賴browserslist的配置來加載對(duì)應(yīng)的插件,最近升級(jí)的 browserslist 4.21.0 把IE11標(biāo)記為dead了,導(dǎo)致 > 1%, not dead, last 2 versions 這個(gè)條件不包括IE11,而其他瀏覽器最新版本都已經(jīng)原生支持上述兩個(gè)語(yǔ)法,所以@babel/preset-env就不加載轉(zhuǎn)譯上述語(yǔ)法的插件,原樣輸出對(duì)應(yīng)的語(yǔ)法,而我們的devops上默認(rèn)的node版本是12,不支持上述兩種語(yǔ)法,導(dǎo)致報(bào)錯(cuò)
解決辦法:
1、使用node16,上述兩種語(yǔ)法都支持
2、手動(dòng)配置 babel插件 plugins: [
‘@babel/plugin-proposal-nullish-coalescing-operator’,
‘@babel/plugin-proposal-optional-chaining’
]
3、配置 “browserslist”: [
“> 1%”,
“l(fā)ast 2 versions”,
“not dead”,
“IE 11”
],文章來源:http://www.zghlxwxcb.cn/news/detail-450217.html
相關(guān)鏈接:
https://github.com/vuejs/vue-cli/issues/7209
https://github.com/browserslist/browserslist/blob/4.21.0/CHANGELOG.md#421文章來源地址http://www.zghlxwxcb.cn/news/detail-450217.html
到了這里,關(guān)于js中各種運(yùn)算符的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!