更新時間:2023-01-28 15:16:51 來源:動力節點 瀏覽1375次
1.談一談你理解的函數式編程
簡單說,“函數式編程”是一種“編程范式”,也就是如何編寫程序的方法論
它具有以下特性:閉包和高階函數、惰性計算、遞歸、函數是“第一等公民”、只用“表達式”
2.說說你對作用域鏈的理解
作用域鏈的作用是保證執行環境里有權訪問的變量和函數是有序的,作用域鏈的變量只能向上訪問,訪問到window對象即會終止,作用域鏈向下訪問是不被允許的
作用域就是變量與函數的可訪問范圍,即作用域控制著變量和函數的可見性和生命周期
3.什么是JavaScript原型,原型鏈?有什么特點?
每個對象都在其內部初始化一個屬性,就是prototype(原型),當我們訪問一個對象的屬性時,如果這個對象內部不存在這個屬性,那么它就會去prototype里找這個屬性,這個prototype又會有自己的prototype,于是就這樣一直找下去,也就是我們平時所說的原型鏈的概念。
關系:instance.constructor.prototype = instance.__proto__
JavaScript對象是通過引用來傳遞的,我們創建的每個新對象實體中并沒有一份屬于自己的原型副本。當我們修改原型時,與之相關的對象也會繼承這一改變
當我們需要一個屬性時,JavaScript引擎會先看當前對象中是否有這個屬性,如果沒有就會找他的prototype中是否有這個屬性,如此遞推下去,直到Object內建對象
4.說說什么是事件代理?
事件代理,又稱之為事件委托。是JavaScript中綁定事件的常用技巧。顧名思義,“事件代理”就是把原本需要監聽的事件委托給父元素,由父元素擔當事件監聽的職務。事件代理的原理是DOM元素的事件冒泡。使用事件地理的好處是可以提高性能。
可以大量節省內存占用,減少事件注冊,比如在table上代理所有td的click事件就非常棒
可以實現新增子對象時無需再次對其綁定
5.說說Ajax原理?
Ajax的原理簡單來說實在用戶和服務器之間加了一個中間層(AJAX引擎),由XMLHttpRequest對象來向服務器發異步請求,從服務器獲得數據,然后用JavaScript來操作DOM而更新頁面。使用戶操作與服務器響應異步化。這其中最關鍵的一步就是從服務器獲得請求數據
Ajax的過程只涉及JavaScript、XMLHttpRequest和DOM。XMLHttpRequest是Ajax的核心機制
Ajax的優點:
Ajax的缺點:
Ajax的請求過程:
// 1、創建連接
var xhr = null;
xhr = new XMLHttpRequest();
// 2、連接服務器
xhr.open('get', url, true);
// 3、發送請求
xhr.send(null);
// 4、接受請求
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
success(xhr.responseText);
} else {
// false
fail && fail(xhr.status);
}
}
}
6.說說如何解決跨域問題?
7.異步加載JS的方式有哪些?
// 異步加載地圖
export default function MapLoader() {
return new Promise((resolve, reject) => {
if (window.AMap) {
resolve(window.AMap);
} else {
var script = document.createElement('script');
script.type = 'text/javascript';
script.async = ture;
script.src = '';
script.onerror = reject;
document.head.appendChild(script);
}
window.initAMap = () => {
resolve(window.AMap);
}
})
}
以上就是“一些非常實用的JS前端面試題”,你能回答上來嗎?如果想要了解更多的Java面試題相關內容,可以關注動力節點Java官網。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習