一、爲何 jQuery 總體上是一個匿名函數自調用?javascript
由於匿名函數自執行裏面的全部東西都是局部的,這樣引用 jQuery 時,能防止和其餘的代碼衝突。java
二、jQuery 靜態方法和實例方法的區別數組
$()
是調用 jQuery 方法返回的一個 jQuery 對象,$()
調用的方法是實例方法,實例方法只能爲 $()
所用如:$("li").each()
瀏覽器
$
是 jQuery 函數(方法),$
調用的方法是靜態方法/工具方法,靜態方法既能夠給 $()
調用,也能夠給原生 javascript 調用如:$().each()
antd
三、爲何 typeof null 的結果是 object ?函數
console.log(typeof null) //object
在 JavaScript 最初的實現中,JavaScript 中的值是由一個表示類型的標籤和實際數據值表示的。對象的類型標籤是 0。因爲 null 表明的是空指針(大多數平臺下值爲 0x00),所以,null的類型標籤也成爲了 0,typeof null就錯誤的返回了"object"。
MDN連接:https://developer.mozilla.org...工具
四、undefined 不是 js 的關鍵字
咱們習慣在項目裏這樣判斷是否爲 undefinedthis
name===undefined?'a':'b'
但一旦手動定義 undefined 而且賦值了,那麼會覆蓋掉 js 的變量類型 undefinedspa
let undefined='a' console.log(undefined) //a
因此,在作項目中,不要給變量起名爲 undefined,並賦值prototype
五、利用原型,來節省內存
A:
function person(name){ this.name=name this.showName=function(){ console.log(this.name) } }
B:
function personA(name) { this.name=name } personA.prototype={ showName:function () { console.log(this.name) } }
使用方法 A 來 new 對象時,每一個對象都要定義一遍 showName 方法,這會增長瀏覽器的內存
而使用方法 B new 對象的話,每一個對象都共享了原型的方法,從而節省內存
六、new 一個對象,通常通過四個步驟
(1)建立一個新對象
(2)將構造函數的做用域賦值給該對象(即 this 指向該對象)
(3)執行構造函數的代碼
(4)返回該新對象
注意:new 關鍵字的重要做用就是把 實例對象的 this 與 原型鏈相關聯
七、數組的index(array[-5]=?)
let a=[1,2,3] //-1 至關於 a.length-1=2 console.log(a[2]) //-3 至關於 a.length-3=0 console.log(a[0]) //-5 至關於 a.length-5=-2 //-2 至關於 a.length-2=1 //即 -5 至關於a[1] console.log(a[1])
八、antd的<Input>
的 allowClear 做用是清除value的值,若是你的value是保存在state裏的話,也是能夠清除的
<Input value={this.state.value} allowClear />
九、對象有中文屬性,如何經過解構賦值的方式去獲取中文屬性?
let obj={'哈哈':1} const {'哈哈':b}=obj const {a:{'嘿嘿':b}}=obj console.log(b,'b24') //1
十、對象解構賦默認值
//默認設爲noa const {a='noa'}=obj //默認設爲nob const {a:{b='nob'}}=obj
(完)