JavaScript語言精粹 毒瘤 糟粕(應對)

2021-08-29 05:26:13 字數 1251 閱讀 9070

毒瘤

不使用全域性變數

使用塊級作用域,不var

return與返回值要位於同一行,否則當自動插入分號後會返回undefined

當物件的屬性名與js保留字相同時,無法使用點語法,使用括號表示法

js字元是16位的,unicode將一對字元視為乙個單一的字元,而js將其認為是兩個不同的字元

注意typeof對於null和正則返回'object'

parseint在遇到非數字時會停止,注意parseint('16')和parseint('16 jk')均返回16

+運算子會根據引數來判斷是數值計算還是字串拼接

nan不是數字並且它不等於自身,typeof對於其返回'number',判斷值是否為數值型別可用typeof value === 'number' && isfinite(value)

js的陣列是偽陣列,不需設定維度、不會越界,但效能不如真正的陣列,typeof不能區別陣列與物件,可用instanceof區別

js的假值:0、nan、''、false、null、undefined

hasownproperty是乙個function而不是運算子,不會查詢原型鏈上的屬性,可以被替換,不要使用obj.hasownproperty=null之類

js的預設物件不是空物件,當原型鏈可能對我們產生影響時,使用object.create(null)建立純淨的物件

糟粕

不使用==,而是===;不使用!=,而是!==

不使用with語句

不使用eval語句

適當地使用continue語句能提高可讀性,但效能不如重構去除continue的**

swith中的每個case下注意break,小心穿越到下個case

if語句可以接受單行語句,但此時還是應加上花括號

++、--不夠嚴謹,使得**過於擁擠,不使用的話**可以變的更整潔

使用位操作符(& | ^ ~ >> >>> <<)要小心點,&容易誤寫為&&

function語句定義的函式存在宣告提公升,使用函式表示式或iife替代之

不要使用型別的包裝物件,形如new boolean()、new number()、new string(),另外也應避免使用new object()、new array(),使用{}、代替

new運算子後跟的函式應以首字母大寫的形式命名

js中的void是乙個運算子,接受乙個運算數並始終返回undefined,沒有作用,應避免使用

歡迎關注、點讚

JavaScript語言精粹 筆記

1 物件屬性檢索 var student 要檢索name,可以用student name 或者 student.name。2 物件屬性更新 student.name wang student.nickname yu 物件之前沒有nickname屬性,則自動擴充到改物件中。3 物件的引用 var x ...

《JavaScript語言精粹》摘錄一

1 識別符號 區分大小寫 第乙個字元必須是字母 下劃線或美元符號,其他字元可以是字母 下劃線 美元符號或數字 關鍵字和保留字不可用作識別符號 關鍵字 if else catch等 保留字 abstract boolean break byte case catch char class const ...

JavaScript 語言精粹讀書筆記 第三章

在物件字面量中,如果屬性名是合法的標示符那麼時候用引號擴起來是可選的,相應的在訪問屬性時可以使用兩種方式,中括號或者點。否則定義時引號是必須的,在訪問時也只能使用括號形式。每個物件都會被鏈結到原型物件,可以通過原型物件實現繼承,所有通過物件字面量建立的物件都會被連線到object.property,...