- 優(yōu)先級(jí)
運(yùn)算符的優(yōu)先級(jí)決定了表達(dá)式中運(yùn)算執(zhí)行的先后順序把还,優(yōu)先級(jí)高的運(yùn)算符最先被執(zhí)行
- 結(jié)合性
結(jié)合性決定了擁有相同優(yōu)先級(jí)的運(yùn)算符的執(zhí)行順序
- 匯總表
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
- 屬性運(yùn)算符 . 和 []
- object.property
property 必須是有效js標(biāo)識(shí)符 不能以數(shù)字開(kāi)頭
如果對(duì)數(shù)字字面量使用方法询张,并且數(shù)字文字沒(méi)有指數(shù)且沒(méi)有小數(shù)點(diǎn),請(qǐng)?jiān)诜椒ㄕ{(diào)用之前的點(diǎn)之前留出空格兔港,以防止點(diǎn)被解釋為小數(shù)點(diǎn)
77 .toExponential();
// or
77
.toExponential();
// or
(77).toExponential();
// or
77..toExponential();
// or
77.0.toExponential();
// because 77. === 77.0, no ambiguity
- [key] 如果key 不是字符串 會(huì)強(qiáng)轉(zhuǎn)成字符串
var foo = {unique_prop: 1}, bar = {unique_prop: 2}, object = {};
object[foo] = 'value';
console.log(object[bar]===object[foo]);//true
- new 運(yùn)算符
當(dāng)代碼 new Foo(...) 執(zhí)行時(shí):
? 1. 一個(gè)新對(duì)象被創(chuàng)建绳泉。它繼承自Foo.prototype募判。
? 2. 使用指定的參數(shù)調(diào)用構(gòu)造函數(shù)Foo,并將 this綁定到新創(chuàng)建的對(duì)象竖般。
? 3. new Foo 等同于 new Foo()甚垦,只能用在Foo 不傳遞任何參數(shù)的情況。
? 4. 如果構(gòu)造函數(shù)返回了一個(gè)“對(duì)象”(返回其他類型無(wú)效)涣雕,那么這個(gè)對(duì)象會(huì)取代整個(gè)new出來(lái)的結(jié)果制轰。
? ?如果構(gòu)造函數(shù)沒(méi)有返回對(duì)象,那么new出來(lái)的結(jié)果為步驟1創(chuàng)建的對(duì)象胞谭。
(一般情況下構(gòu)造函數(shù)不返回任何值,不過(guò)用戶如果想覆蓋這個(gè)返回值男杈,可以自己選擇返回一個(gè)普通對(duì)象來(lái)覆蓋丈屹。當(dāng)然,返回?cái)?shù)組也會(huì)覆蓋伶棒,因?yàn)閿?shù)組也是對(duì)象旺垒。)
優(yōu)先級(jí)面試題:https://www.v2ex.com/t/351261