中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Javascript基礎中的十個重要問題分別是什么

發布時間:2021-12-10 13:09:22 來源:億速云 閱讀:134 作者:柒染 欄目:開發技術

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函數內部使用。這就是我們所謂的回調函數。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

神农架林区| 岢岚县| 舒兰市| 沂南县| 孟州市| 乌兰浩特市| 龙南县| 渝中区| 蒙山县| 静安区| 弥渡县| 成武县| 赞皇县| 韶关市| 广西| 开化县| 东安县| 肃宁县| 柘城县| 尼勒克县| 黄石市| 肥东县| 南靖县| 寿阳县| 永顺县| 洪湖市| 灵山县| 南充市| 天津市| 泸西县| 德化县| 镶黄旗| 镇宁| 大足县| 栖霞市| 青冈县| 兴海县| 保靖县| 鄂托克前旗| 鄂尔多斯市| 靖远县|