<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] ## 數據類型 [**基本類型有哪些?**]() ``` 基本數據類型 Number 、String、Boolean、BigInt、Symbol、Undefined、Null 引用類型 Object(Function ,Array,Date,Math,) ``` * [ ] 判斷類型的方法有哪些?之間的區別是什么? ~~~jsx let bool = true; let num = 1; let str = 'abc'; let und= undefined; let nul = null; let big = BigInt(1) let arr = [1,2,3,4]; let obj = {name:'xiaoming',age:22}; let fun = function(){console.log('hello')}; let s1 = Symbol(); ~~~ 1. typeof 可以判斷基本類型(除Null), ~~~jsx typeof num // 'number' typeof str // 'string' typeof bool // 'boolean' typeof und// 'undefined' typeof big // 'bigint' typeof s1 // 'Symbol' ~~~ 2. instanceof 可以判斷引用類型 3. Object.prototype.toString.call() ## 數組 [**數組有哪些方法**]() ~~~jsx pop/some/find/push/unshift/shift/ ~~~ [**哪些方法可以改變原數組**]() ~~~jsx 1. pop // 從最后一項移除 并返回移除的項目 2. push // 從數組后面添加一項,返回新的數組長度 3. shift // 從數組的最前面刪除一項,并返回該項 4. unshift // 從數組的最前面添加一項,并返回新的數組長度 5. reverse // 反轉數組 6. sort // 對數組進行排序 7. splice //三個參數。第一個代表開始的下標,第二個代表 要刪除的個數,第三個代表要替換的東西? ? ? ?返回被刪除的數組 ~~~ [**for in , forof 有什么區別**]() * for in 遍歷的數組的索引(即key 值) for in會遍歷數組的所有可枚舉屬性,包括原型。所以更適合遍歷對象 * for of 遍歷數組的元素值 for of 不會遍歷枚舉屬性 [**forEach()、map()、reduce()、filter()的區別**]() * 都不會改變原數組 * forEach 循環數組中每一個元素并采取操作,不返回新數組,不支持continue、break關鍵字, * map 返回值是每一次執行的結果組成的新數組 * filter 過濾組成員 并返回新數組 * reduce 處理組成員 并返回一個值 [**數組去重有哪些方式**]() * Array.from(New Set()) * 其他的可以利用數組的一些方法 和ES6的Map [**數組和類數組的區別**]() * 類數組 具有.length 屬性 但是不具有數組的方法 * 類數不能使用數組的方法 [**類數組怎么轉成數組**]() ~~~jsx [].prototype.slice.call() Array.from ~~~ ## 閉包 [**什么是閉包?**]() 能調用另一個函數內的變量 [**閉包是如何產生的?**]() 外層函數調用后,外層函數的作用域對象無法釋放 [**用閉包有優缺點**]() * .優點 ` 減少了全局變量可以在內存中一直維持一個變量` * 缺點 `由于得不到釋放,消耗內存 使用不當會造成內存溢出` ## THIS [**創建對象的方式有哪些**]() * new Object() * Object.create() * 字面量寫法 [**new Object() 和Object.create()有什么區別**]() [**簡述一下什么是this**]() this是個對象 在不同情況下this的指向不同 ~~~jsx 1. 對象調用時this指向該對象 2. 直接調用的函數 this 指向window 3. 通過new 的方式 this 永遠指向新創建的對象 ~~~ [**call、apply、bind、有什么區別**]() * 都可以改變this * call/apply 都會立即執行 bind 返回改變this 后的函數 * call 第二個參數接受參數列表 apply 第二個參數接受一個數組 ## 原型 原型鏈 [**什么是原型、原型鏈**]() * 原型 1. 原型包括隱式原型(__prot0__) 和顯示原型(prototype) 2. 所有的函數都有prototype(顯示原型)屬性,屬性值是一個普通對象指向函數的原型對象 3. 引用類型都有一個__proto__(隱式原型)屬性,指向構造函數的prototype * 原型鏈 **原型鏈的鏈接是靠隱式原型鏈接的** `當訪問一個對象屬性時,會先在對象本身查找,如果沒有找到就會去對象的__proto__(隱式原型)查找,即構造函數的prototype ,如果還沒有查找到,回去構造函數的prototype的__proto__查找。這樣一層層向上查找的鏈式結構,叫做原型鏈` [**繼承 有哪些方法,他們直接的區別是什么**]() ## 深淺拷貝 [**什么是深淺拷貝**]() * 淺拷貝 指向同一內存地址是共同使用一塊內存 * 深拷貝 會新開辟一塊內存空間 然后指向該內存空間 [**js中那些是深拷貝 那些是淺拷貝**]() * 淺拷貝 ... assign ## 其他 [**JavaScript有哪些內置對象**]() `Math Object Array Date RegExp JSON Promise parseInt等。。。` [**JavaScript腳本延遲加載的方式有哪些?**]() * 動態添加script 標簽 * defer 屬性 * async 屬性 * setTimeoute * 讓js 最后加載 [**defer 和async 有什么區別和優缺點?**]() * defer 腳本會被延遲到整個頁面都解析完畢之后再執 * async 加載完腳本后立即執行 缺點是 不能控制加載的順序 [**ajax、axios、fetch的區別?**]() * Ajax ~~~jsx 1. 屬 js 原生 2. 容易產生回調地獄 ~~~ * Axios ~~~jsx 1. 解決回調地獄問題 2. 支持Promise技術 3. 有超時處理 4. 有攔截器,可以對請求和響應統一處理 5. 瀏覽器兼容性良好 ~~~ * Fetch ~~~jsx 1. 屬 js 原生 2. 基于 Promise 對象設計的,可以解決回調地獄問題 3. 默認不帶cookie,使用時需要設置 4. 沒有辦法檢測請求的 進度,無法取消或超時處理 ~~~ [**什么是防抖、節流?**]() 1. 防抖 ~~~jsx 1. 什么是防抖? 在事件被觸發n秒后再執行回調函數,如果在這n秒內又被觸發,則重新計時 2. 應用場景 輸入框連續輸入、resize、scroll事件 3. 原理 維護一個定時器,規定在delay時間后觸發函數,但是在delay 時間內再次觸發的話 會清空當前timer,然后重新計時 ~~~ 2. 節流 ~~~jsx 1. 什么是節流? 單位時間內,只能有一次觸發事件的回調函數能執行。單位事件內觸發多次,只有一次生效 2. 應用場景 鼠標連續點擊、 3. 原理 判斷是否到達一定時間來觸發函數, ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看