問答
什么是閉包? 有什么作用
- 閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)懒闷。由于在JavaScript語言中,只有函數(shù)內(nèi)部的子函數(shù)才能讀取局部變量棘劣,因此可以把閉包簡單理解成定義在一個函數(shù)內(nèi)部的函數(shù)山宾。所以至扰,在本質上,閉包就是將函數(shù)內(nèi)部和外部連接起來的一座橋梁资锰。
- 閉包主要作用有兩個
- 外部可以讀取函數(shù)內(nèi)部的局部變量
- 可以讓局部變量的值一直保存在內(nèi)存之中
setTimeout 0 有什么作用
- setTimeout(0)是要求瀏覽器"盡可能快"的進行回調敢课,但是實際有多快完全取決于瀏覽器的能力
- JS解析器會把setTimeout(f,0)里的f隊列壓到運行隊列的最后,因為它是異步操作
代碼題
- 下面的代碼輸出多少?修改代碼讓fnArri 輸出 i直秆。使用兩種以上的方法
代碼1.png
- 使用閉包封裝一個汽車對象濒募,可以通過如下方式獲取汽車狀態(tài)
代碼2.png
- 寫一個函數(shù)使用setTimeout模擬setInterval的功能
代碼3.png
- 寫一個函數(shù),計算setTimeout平均[備注:新加]最小時間粒度
代碼4.png
- 下面這段代碼輸出結果是? 為什么?
代碼5.png
- 下面這段代碼輸出結果是? 為什么?
代碼6.png
- 下面這段代碼輸出圾结?如何輸出delayer: 0, delayer:1...(使用閉包來實現(xiàn))
代碼7.png
- 如何獲取元素的真實寬高
- 使用window對象的
getComputedStyle()
方法
- 使用window對象的
<style>.box{height:50px;width:60px}</style>
<div class="box">123</div>
var box = document.querySelector('.box');
console.log(window.getComputedStyle(box)['height']); // 50px
console.log(window.getComputedStyle(box)['width']); // 60px
-
URL 如何編碼解碼瑰剃?為什么要編碼?
- JavaScript提供四個URL的編碼/解碼方法筝野。
1.decodeURI()
2.decodeURIComponent()
3.encodeURI()
4.encodeURIComponent() - 當需要解析URL的名稱時可以使用encodeURI()
- 當需要解析URL里的參數(shù)時可以使用encodeURIComponent()
- 根據(jù)使用場景不同做相應的處理
- JavaScript提供四個URL的編碼/解碼方法筝野。
補全如下函數(shù)晌姚,判斷用戶的瀏覽器類型
var container = document.querySelector('#container');
function isAndroid() {
var reg = /android/i;
if (reg.test(navigator.userAgent)) {
container.innerHTML = '這是安卓手機';
}
}
function isIphone() {
var reg = /iphone/i;
if (reg.test(navigator.userAgent)) {
container.innerHTML = '這是蘋果手機';
}
}
function isIpad() {
var reg = /ipad/i;
if (reg.test(navigator.userAgent)) {
container.innerHTML = '這是IPAD';
}
}
function isIOS() {
var reg = /(ipad)|(iphone)/i;
if (reg.test(navigator.userAgent)) {
container.innerHTML = '這是蘋果系統(tǒng)';
}
}