一、爲何 jQuery 總體上是一個匿名函數自調用?javascript
由於匿名函數自執行裏面的全部東西都是局部的,這樣引用 jQuery 時,能防止和其餘的代碼衝突。java
二、jQuery 靜態方法和實例方法的區別數組
$()
是調用 jQuery 方法返回的一個 jQuery 對象,$()
調用的方法是實例方法,實例方法只能爲 $()
所用$("li").each()
$
是 jQuery 函數(方法),$
調用的方法是靜態方法/工具方法,靜態方法既能夠給 $()
調用,也能夠給原生 javascript 調用$().each()
三、爲何 typeof null 的結果是 object ?瀏覽器
console.log(typeof null) //object
複製代碼
在 JavaScript 最初的實現中,JavaScript 中的值是由一個表示類型的標籤和實際數據值表示的。對象的類型標籤是 0。因爲 null 表明的是空指針(大多數平臺下值爲 0x00),所以,null的類型標籤也成爲了 0,typeof null就錯誤的返回了"object"。antd
MDN連接:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/typeofapp
四、undefined 不是 js 的關鍵字
咱們習慣在項目裏這樣判斷是否爲 undefined函數
name===undefined?'a':'b'
複製代碼
但一旦在塊級做用域中,手動定義 undefined 而且賦值了,那麼會覆蓋掉 js 的變量類型 undefined工具
{
let undefined='a'
console.log(undefined) //a
}
複製代碼
因此,在作項目中,不要給變量起名爲 undefined,並賦值(感謝 @子奕 同窗的提醒)ui
五、利用原型,來節省內存
A:this
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賦負數或小數時,數組的長度有無變化?
let arr=[]
arr[10]=11
console.log(arr.length); //11
arr[-1]=-1
console.log(arr.length) //11
arr[3.14]=3.14
console.log(arr.length) //11
//===================================
let arr1=[]
arr1[2.1]=2.1
console.log(arr1[2.1],'arr144') //2.1
console.log(arr1.length,'arr145') //0
arr1[1]=1
console.log(arr1.length,'arr147') //2
//========================
let arr2=[]
arr2[-1]=-1
console.log(arr2.length,'arr253') //0
複製代碼
(以前的例子寫的不對,感謝 @CurryME 同窗的提醒)
八、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
複製代碼
(完)