在本文中,我收集了10個有關Java腳本的最多見問題,我決定一個接一個地回答這些問題。前端
它們大多涵蓋了Javascript基礎知識,所以,若是您剛剛開始學習這種編程語言,那麼最好經過它們來理解基本概念。面試
在此列表中,您能夠找到諸如閉包,承諾,吊裝或類之類的主題,等等。編程
儘管知識不是很高級,可是知道答案是件好事,由於其中一些在訪談中常常被問到。promise
在每種編程語言中,一些概念彷佛都很容易,可是對於初學者來講,理解起來並非那麼容易。閉包
所以,我什至更樂意向您描述和解釋別人提出的全部問題,這也可能對您有所幫助,並且您能夠避免在搜索框中輸入內容。app
與往常同樣,我爲喜歡看書的人提供了視頻版本。您會在每一個問題下找到它。框架
開始吧異步
什麼是Javascript中的閉包?async
閉包是封閉在一塊兒的函數的組合,其中內部函數能夠訪問其變量和外部函數的變量。編程語言
我認爲最簡單的解釋方法是向您展現一個代碼示例。
在上面的代碼中,您能夠看到該inner()函數能夠訪問其父函數變量name。所以,若是您調用該outer()函數,則console.log()frominner()函數將返回name變量Maria。
可是,它能夠訪問外部函數參數對象,可是內部函數一般具備本身的參數對象,這使外部函數參數對象蒙上了陰影。
讓咱們看一下使用箭頭函數建立閉包的示例。
咱們使用閉包的主要緣由是返回能夠返回其餘函數的函數。
Javascript中的DOM是什麼?
DOM是文檔對象模型,它是網站的面向對象的表示形式。可使用Javascript進行修改。
使用Javascript,您能夠操縱DOM元素,例如顏色,位置,大小。爲了選擇頁面的特定元素,Javascript提供了一些簡化功能:
getElementById() -經過id屬性選擇元素,
getElementByName() -經過name屬性選擇元素,
getElementsByTagName() -選擇選定標籤的全部元素,
getElementsbyClassName() -選擇具備特定條件的全部元素類名
querySelector() -經過CSS選擇器選擇元素。
Javascript還提供了其餘操做元素的方法,不只能夠選擇元素,例如appendChild()或innerHTML()。
除此以外,使用Javascript,咱們能夠處理事件和樣式。
Javascript中的Promise是什麼?
承諾與異步編程一塊兒使用,它用於啓動操做,這須要時間來解析和返回值。
有了promise,能夠在後臺啓動和完成操做,而無需中止應用程序的其餘操做。
它改善了許多Web和移動應用程序的性能和用戶體驗。
承諾可能處於三種狀態:未決,已解決且有錯誤或被拒絕。
若是承諾獲得解決,咱們能夠調用then()方法並使用返回的值執行操做。萬一承諾被拒絕,咱們可使用該catch()方法來處理錯誤。
處理異步編程的其餘方法是async/await和callbacks。
什麼是Javascript原型?
Javascript對象從原型繼承方法和屬性,而且Object.prototype在繼承鏈的頂部。
Javascriptprototype關鍵字也可用於向咱們的構造函數添加新的值和方法。
讓咱們看一下代碼示例。
您能夠看到,使用原型,咱們可以向構造函數添加ownerName屬性Animal()。
用JavaScript語言懸掛什麼?
提高是一種機制,它也將全部聲明的變量和函數提高到其局部做用域的頂部或若是放置在全局做用域中,則將其提高到全局做用域的頂部。
在Javascript中,能夠在使用變量後聲明一個變量。
吊裝用於避免未定義的錯誤,由於不然可能會執行帶有變量或函數的代碼,但未定義。
請記住首先聲明變量,以確保您的代碼不會出現未定義值的問題。
這是一個示例,向您展現其工做方式。
提高是一種機制,它也將全部聲明的變量和函數提高到其局部做用域的頂部或若是放置在全局做用域中,則將其提高到全局做用域的頂部。
在Javascript中,能夠在使用變量後聲明一個變量。
吊裝用於避免未定義的錯誤,由於不然可能會執行帶有變量或函數的代碼,但未定義。
請記住首先聲明變量,以確保您的代碼不會出現未定義值的問題。
這是一個示例,向您展現其工做方式。
雖然將使用var建立變量定義,但將在每一行中將其初始化爲undefined。
let和const有點不一樣。直到真正發生初始化的那一行纔對變量進行初始化。
所以,在此期間它不會調用任何未定義的。
一樣,重要的是要記住,在聲明const時,有必要同時對其進行初始化,由於沒法對其進行更改。
Javascript中的對象是什麼?
對象是Javascript的一個很是重要的元素,而且JS中的幾乎全部東西都是對象。當變量是值的容器時,對象能夠具備許多值,而且能夠分配給變量。
對象中的值寫爲name:value對。對象由屬性和方法組成。
屬性只是簡單的值,方法是能夠對對象執行的操做。
讓咱們看一下對象示例。
在上面的代碼中,您能夠看到Student對象,其中包含三個屬性和一個方法。
Javascript中的功能是什麼?
Javascript中的功能是一段代碼,旨在執行任務。調用或調用該函數時,將執行該函數。
函數用function關鍵字定義或定義爲常量。函數能夠具備名稱,也能夠是匿名的。
定義函數時,能夠在函數名稱後的括號中添加一些參數。
當咱們調用函數時,括號中傳遞的值稱爲參數。
讓咱們看一下Javascript函數的代碼示例。
什麼是Javascript中的純函數?
純函數是函數式編程的主要概念,它是一個接受輸入並返回值而無需修改範圍內其餘數據的函數。
換句話說,在純函數中,輸出或返回值必須僅取決於輸入值。
Javascript中的構造函數是什麼?
構造函數是一種特殊的方法,用於初始化和建立Javascript類中的對象。
咱們將構造函數與new關鍵字一塊兒使用,以使用新值建立相似的對象。
好的作法是使用大寫形式調用構造方法。
讓咱們看看構造函數的外觀以及如何使用它。
在上面的代碼中,我建立了一個Person構造函數,在下面的代碼中,建立了一個名爲man的新變量,並基於Person構造函數建立了一個新對象。
什麼是Javascript類?
自從引入ES6以來,咱們能夠在Javascript中使用類。類是一種函數,在這裏function咱們使用關鍵字而不是關鍵字來初始化它class。
除此以外,咱們還必須constructor()在類內部添加方法,每次初始化類時都會調用該方法。
在constructor()方法內部,咱們添加了類的屬性。要基於現有的類建立另外一個類,咱們使用extends關鍵字。
在JavaScript中使用類的一個很好的例子是ReactJS框架,它是類的組件。
我目前是在職前端開發,若是你如今也想學習前端開發技術,在入門學習前端的過程中有碰見任何關於學習方法,學習路線,學習效率等方面的問題,你均可以申請加入個人前端學習交流3000人裙:前面:851 中間:231 最後:348。裏面彙集了一些正在自學前端的初學者裙文件裏面也有我作前端技術這段時間整理的一些前端學習手冊,前端面試題,前端開發工具,PDF文檔書籍教程,須要的話均可以自行來獲取下載。
結論
在本文中,我收集了搜索引擎中的10個常見Javascript問題。
我已經以一種基本且易於理解的方式對它們進行了解釋,所以,即便是初學者也能夠利用本文。
在面試過程當中可能會問一些問題,所以熟悉答案確實值得。
但願這個問題列表對您有所幫助,而且能夠幫助您瞭解Javascript編程語言的基本概念。
感謝您的閱讀