Javascript基礎學習之十個重要問題
1.什麼是Javascript?
Javascript是一種用於Web開發的編程語言。JavaScript在網絡的客戶端上運行。
根據MDN,JavaScript(通常縮寫為JS)是一種輕量級的,解釋性的,面向對象的語言,具有一流的功能,並且最著名的是Web頁面的腳本語言,但它也用於許多非瀏覽器環境中。它是一種基於原型的多范式腳本語言,它是動態的,並支持面向對象,命令式和函數式編程樣式。
2.什麼是DOM
DOM代表文檔對象模型。加載網頁後,瀏覽器會使用HTML和CSS文件創建一個DOM。DOM由節點和元素表示。您可以使用javascript處理DOM。它是一個樹狀結構。
3. JS代碼如何執行
要回答的問題有點大。但是我們可以簡單地說一下。Javascript在瀏覽器上運行。幾乎每個瀏覽器都有一個JavaScript引擎。V8是其中最受歡迎的。Chrome使用V8引擎。另一方面,Firefox使用Spider-Monkey引擎。
4. ==和===之間的區別
如果我這麼簡單地說,==僅檢查兩個值是否相同。它不檢查這些值的類型。查看以下代碼:
if(2=="2"){ console.log("true") } else { console.log("false") }
上面的代碼將記錄為true。因為它將2和“ 2”視為相等,因為它不檢查類型。
相反,===同時檢查類型和質量。例如:
if(2==="2"){ console.log("true") } else { console.log("false") }
這將記錄為false。因為2和“ 2”的值相等,但是它們的類型不同。
5.Null(空值)與Undefined(未定義)
通常,null表示空值和不存在的值,而undefined表示已聲明但尚未定義的值。盡管您也可以顯式地將undefined設置為變量。
var n; console.log(typeof(n)); // undefined var n = null; console.log(typeof(n)); // object
有趣的是JS中的對象類型為null。
6. Var vs Let vs Const
在ES6之前,var是聲明變量的唯一方法。但是現在我們有更多選擇。
有一個術語作為范圍。范圍是指可以使用這些變量的位置。var聲明是全局范圍的或函數/局部范圍的。
可以掛起Var,我們將在幾秒鐘後討論。但是,現在讓let對於變量聲明更可取。當不需要稍後在代碼中更改變量時,可以使用const。為瞭獲得兩者之間的區別,您可以閱讀下面的文章,我認為它非常有用。
7.變量提升(Hoisting)
在javascript中,可以在聲明變量之前使用變量。物理上移到代碼頂部的變量和函數聲明的概念稱為變量提升。
console.log(num); // Returns undefined, as only declaration was hoisted, no initialization has happened at this stage var num; // Declaration num = 6;
那麼,let和const變量是否不會被懸掛?答案要復雜得多。所有聲明(函數,var,let,const和class)都在JavaScript中吊起,而var聲明使用undefined初始化,但是let和const聲明保持未初始化。
8.全局變量與局部變量
在javascript中,范圍分為兩種方式。全局和局部。
在函數中聲明的變量稱為局部作用域。該變量不能在函數外部訪問。相反,在函數外部聲明的變量稱為全局范圍。可以在函數內部訪問它。
var genre= "superhero" //global scope // code here can't use superhero but genre function myFunction() { var superhero = "Batman"; // local scope // code here CAN use superhero and genre }
9.閉包(Closure)
閉包使我們可以從內部函數訪問外部函數的范圍。可以通過從一個函數返回另一個函數來創建它。它為每個實例創建一個封閉的環境。例如:
function sum(x) { return function(y) { return x + y; }; } var add5 = sum(5); var add10 = sum(10); console.log(add5(6)); // 11 console.log(add10(6)); // 16
這裡的add5和add10都是閉包。它們共享相同的定義,但存儲不同的環境。
10.回調函數
根據MDN,回調函數是一個作為參數傳遞給另一個函數的函數,然後在外部函數內部調用該回調函數以完成某種例程或操作。例如
function greeting(name) { console.log('Hello ' + name); } function greetEmployee(name,callback) { callback(name); } greetEmployee("Dwight",greeting);
在這裡,greeting函數已在greetEmployee函數內部使用。這就是我們所謂的回調函數。
感謝閱讀本文。希望這能幫助到你。
到此這篇關於Javascript基礎學習之十個重要問題的文章就介紹到這瞭,更多相關Javascript基礎內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 簡單談談JavaScript變量提升
- Javascript作用域與閉包詳情
- 前端Vue中常用rules校驗規則詳解
- 詳解javascript中的Strict模式
- 一起盤點JavaScript中一些強大的運算符