欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript基礎學習之十個重要問題

 更新時間:2021年12月10日 10:46:19   作者:海擁?  
本文特別適合正在尋找Javascript開發(fā)工作的初學者。再搜索了許多Javascript面試問題后,發(fā)現(xiàn)這10個知識點很重要。讓我們一起深入研究一下

1.什么是Javascript?

Javascript是一種用于Web開發(fā)的編程語言。JavaScript在網(wǎng)絡的客戶端上運行。

根據(jù)MDN,JavaScript(通常縮寫為JS)是一種輕量級的,解釋性的,面向?qū)ο蟮恼Z言,具有一流的功能,并且最著名的是Web頁面的腳本語言,但它也用于許多非瀏覽器環(huán)境中。它是一種基于原型的多范式腳本語言,它是動態(tài)的,并支持面向?qū)ο螅钍胶秃瘮?shù)式編程樣式。

2.什么是DOM

DOM代表文檔對象模型。加載網(wǎng)頁后,瀏覽器會使用HTML和CSS文件創(chuàng)建一個DOM。DOM由節(jié)點和元素表示。您可以使用javascript處理DOM。它是一個樹狀結構。

3. JS代碼如何執(zhí)行

要回答的問題有點大。但是我們可以簡單地說一下。Javascript在瀏覽器上運行。幾乎每個瀏覽器都有一個JavaScript引擎。V8是其中最受歡迎的。Chrome使用V8引擎。另一方面,F(xiàn)irefox使用Spider-Monkey引擎。

4. ==和===之間的區(qū)別

如果我這么簡單地說,==僅檢查兩個值是否相同。它不檢查這些值的類型。查看以下代碼:

if(2=="2"){
 console.log("true")
} else {
console.log("false")
}

上面的代碼將記錄為true。因為它將2和“ 2”視為相等,因為它不檢查類型。

相反,===同時檢查類型和質(zhì)量。例如:

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是聲明變量的唯一方法。但是現(xiàn)在我們有更多選擇。

有一個術語作為范圍。范圍是指可以使用這些變量的位置。var聲明是全局范圍的或函數(shù)/局部范圍的。

可以掛起Var,我們將在幾秒鐘后討論。但是,現(xiàn)在讓let對于變量聲明更可取。當不需要稍后在代碼中更改變量時,可以使用const。為了獲得兩者之間的區(qū)別,您可以閱讀下面的文章,我認為它非常有用。

7.變量提升(Hoisting)

在javascript中,可以在聲明變量之前使用變量。物理上移到代碼頂部的變量和函數(shù)聲明的概念稱為變量提升。

console.log(num); // Returns undefined, as only declaration was hoisted, no initialization has happened at this stage
var num; // Declaration
num = 6; 

那么,let和const變量是否不會被懸掛?答案要復雜得多。所有聲明(函數(shù),var,let,const和class)都在JavaScript中吊起,而var聲明使用undefined初始化,但是let和const聲明保持未初始化。

8.全局變量與局部變量

在javascript中,范圍分為兩種方式。全局和局部。

在函數(shù)中聲明的變量稱為局部作用域。該變量不能在函數(shù)外部訪問。相反,在函數(shù)外部聲明的變量稱為全局范圍??梢栽诤瘮?shù)內(nèi)部訪問它。

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)

閉包使我們可以從內(nèi)部函數(shù)訪問外部函數(shù)的范圍??梢酝ㄟ^從一個函數(shù)返回另一個函數(shù)來創(chuàng)建它。它為每個實例創(chuàng)建一個封閉的環(huán)境。例如:

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都是閉包。它們共享相同的定義,但存儲不同的環(huán)境。

10.回調(diào)函數(shù)

根據(jù)MDN,回調(diào)函數(shù)是一個作為參數(shù)傳遞給另一個函數(shù)的函數(shù),然后在外部函數(shù)內(nèi)部調(diào)用該回調(diào)函數(shù)以完成某種例程或操作。例如

function greeting(name) {
  console.log('Hello ' + name);
}

function greetEmployee(name,callback) {
  callback(name);
}

greetEmployee("Dwight",greeting);

在這里,greeting函數(shù)已在greetEmployee函數(shù)內(nèi)部使用。這就是我們所謂的回調(diào)函數(shù)。

感謝閱讀本文。希望這能幫助到你。?

到此這篇關于Javascript基礎學習之十個重要問題的文章就介紹到這了,更多相關Javascript基礎內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • javascript Onunload與Onbeforeunload使用小結

    javascript Onunload與Onbeforeunload使用小結

    Onunload,onbeforeunload都是在刷新或關閉時調(diào)用,可以在<script>腳本中通過window.onunload來指定或者在<body>里指定。區(qū)別在于onbeforeunload在onunload之前執(zhí)行,它還可以阻止onunload的執(zhí)行。
    2009-12-12
  • 詳解springmvc 接收json對象的兩種方式

    詳解springmvc 接收json對象的兩種方式

    本篇文章主要介紹了springmvc 接收json對象的兩種方式,具有一定的參考價值,有需要的可以了解一下。
    2016-12-12
  • Bootstrap時間選擇器datetimepicker和daterangepicker使用實例解析

    Bootstrap時間選擇器datetimepicker和daterangepicker使用實例解析

    這篇文章主要為大家詳細解析了Bootstrap時間選擇器datetimepicker和daterangepicker使用實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • 一文搞懂?parseInt()函數(shù)異常行為

    一文搞懂?parseInt()函數(shù)異常行為

    這篇文章主要為大家介紹了一文搞懂?parseInt()函數(shù)異常行為示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • 原生JS實現(xiàn) MUI導航欄透明漸變效果

    原生JS實現(xiàn) MUI導航欄透明漸變效果

    透明漸變導航是一種解決滾動條通頂?shù)淖兺ǚ桨?。這篇文章主要介紹了原生JS實現(xiàn) MUI導航欄透明漸變效果,需要的朋友可以參考下
    2017-11-11
  • JavaScript實現(xiàn)異步圖像上傳功能

    JavaScript實現(xiàn)異步圖像上傳功能

    這篇文章主要介紹了JavaScript實現(xiàn)異步圖像上傳功能,本文展示了一種使用代碼示例立即顯示圖像的方法(使用圖像的Base64編碼版本),同時將其上載到服務器,而無需等待操作完成。需要的朋友可以參考下
    2018-07-07
  • Next.js腳手架完整搭建封裝的方法步驟

    Next.js腳手架完整搭建封裝的方法步驟

    本文主要介紹了Next.js腳手架完整搭建封裝的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • 一個頁面元素appendchild追加到另一個頁面元素的問題

    一個頁面元素appendchild追加到另一個頁面元素的問題

    一般都是自己創(chuàng)建元素然后append到頁面的但是如果是頁面本身有的元素append到另一個頁面元素呢,很多的新手朋友對此問題比較好奇,本人也是如此啊,好了不多說,切入主題,感興趣的朋友可以了解下哦
    2013-01-01
  • 深入理解TypeScript 類型兼容性

    深入理解TypeScript 類型兼容性

    本文主要介紹了TypeScript 在函數(shù)、枚舉、類和泛型中的類型兼容性規(guī)則,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-01-01
  • JavaScript中forEach和map詳細講解

    JavaScript中forEach和map詳細講解

    foreach和map都是JavaScript中數(shù)組的常用方法,它們都可以對數(shù)組中的每個元素執(zhí)行一個函數(shù),但是它們有一些區(qū)別,下面這篇文章主要給大家介紹了關于JavaScript中forEach和map詳細講解的相關資料,需要的朋友可以參考下
    2023-11-11

最新評論