- 資料型別有哪些
- 值型別(基本型別):字串(String)、數字(Number)、布林(Boolean)、對空(Null)、未定義(Undefined)、Symbol。
- 引用資料型別:物件(Object)、陣列(Array)、函式(Function)。
- 注:Symbol 是 ES6 引入了一種新的原始資料型別,表示獨一無二的值。
引用資料型別:物件(Object)、陣列(Array)、函式(Function)。
注:Symbol 是 ES6 引入了一種新的原始資料型別,表示獨一無二的值。
-
什麼是閉包,為什麼要用閉包
- 閉包就是能夠讀取其他函式內部變數的函式
- 由於在js中只有函式內部的子函式才能讀取區域性變數,因此可以把閉包簡單理解成“定義在一個函式內部的函式” 所以,在本質上,閉包就是將函式內部和函式外部連線起來的一座橋樑
- 好處1: 讀取函式內部的變數
- 好處2: 讓這些變數的值始終保持子記憶體中,重用變數又不造成全域性汙染
-
this
- 為什麼要用this:
- this提供了一種更優雅的方式來隱式“傳遞”一個物件引用,因此可以將API設計得更加簡潔且易於複用。隨著程式碼使用模式越來越複雜,顯式傳遞上下文會讓程式碼變得越來越混亂,使用this則不會這樣,因為使用this的話函式就可以自動引用合適的上下文物件!
- this到底是什麼:
- 當一個函式被呼叫時,會建立一個活動記錄(有時候也稱執行上下文)。這個記錄會包含函式在哪裡被呼叫(呼叫棧)、函式的呼叫方式、傳入的引數等資訊。this就是這個記錄的一個屬性,會在函式執行的過程中用到。
- this有哪些繫結規則:
- 1 預設繫結
- 2 隱式繫結
- 3 顯式繫結
- 4 new繫結
- 優先順序: 4 > 3 > 2 > 1
- 繫結例外:
- 被忽略的this(null、undefined)
- 間接引用(賦值)
- 箭頭函式:不使用1-4的繫結規則,根據此法作用域決定this,即箭頭函式會繼承外層函式的this繫結(無論this繫結到的是什麼)
- 為什麼要用this:
-
原型 | import | require
-
new一個物件的時候具體發生了什麼
-
同步非同步
-
js對陣列的增刪改查 | localStorage | cookie
-
get 與post 的區別
-
原生js怎樣阻止冒泡事件
-
ES5 ES6去重
-
var a = 3;
與a = 3
的區別 -
var a = Object(); a.value = 1; b=a; b.value=2; console.log(a.value); // 2 複製程式碼
-
原生js怎樣阻止冒泡事件
屬性或事件名 說明 相容性 cancelable屬性 cancelable 事件返回一個布林值。如果用 preventDefault() 方法可以取消與事件關聯的預設動作,則為 true,否則為 fasle IE不支援 returnValue屬性 如果設定了該屬性,它的值比事件控制程式碼的返回值優先順序高。把這個屬性設定為 fasle,可以取消發生事件的源元素的預設動作。 只支援IE bubbles屬性 bubbles 事件屬性返回一個布林值,如果事件是起泡型別,則返回 true,否則返回 fasle。 IE不支援 stopPropagation方法 不再派發事件。終止事件在傳播過程中的捕獲、目標處理或起泡階段的進一步傳播。呼叫該方法後,該節點上處理該事件的處理程式將被呼叫,事件不再被分派到其他節點。 - preventDefault方法 取消事件的預設動作。注意,如果 Event 物件的 cancelable 屬性是 fasle,那麼就沒有預設動作,或者不能阻止預設動作。無論哪種情況,呼叫該方法都沒有作用。 - -
post get請求的區別
專案 get post 後退按鈕/重新整理 無害 資料會被重新提交(瀏覽器應該告知使用者資料會被重新提交) 快取 能被快取 不能快取 歷史 引數會保留在瀏覽器歷史記錄中 引數不會保留在瀏覽器歷史記錄中 對資料長度的限制 有限制。當傳送資料時,GET 方法向 URL 新增資料;URL 的長度是受限制的(URL 的最大長度是 2048 個字元)。 無限制 對資料型別的限制 只允許ASCII字元 沒有限制,也允許二進位制資料 安全性 安全性很低,傳送的資料是url的一部分 安全性較高,因為引數不會被儲存在瀏覽器歷史或 web 伺服器日誌中 資料可見性 資料在url中對所有人可見 資料不會顯示在url中 -
js對陣列的增刪改操作
- 建立:
var arr = new Array()
- 增加:
arr[0] = '0'; arr[1] = '1'; 複製程式碼
- 修改:
arr[0] = 'test'; 複製程式碼
- 刪除:
arrayObject.splice(index,howmany,item1,.....,itemX) 複製程式碼
- 常用陣列操作
- 建立: