最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

關(guān)于JavaScript必學(xué)的基礎(chǔ)知識(shí)(上)

2023-07-03 17:41 作者:千鋒前端  | 我要投稿

看來(lái)看看這些關(guān)于JavaScript基礎(chǔ)知識(shí)你都掌握了嗎?

1. ‘&&’運(yùn)算符能做什么?

&& 運(yùn)算符,也稱為邏輯與,計(jì)算操作數(shù)并返回它遇到的第一個(gè)假表達(dá)式。 如果沒(méi)有找到錯(cuò)誤的表達(dá)式,它會(huì)返回最后一個(gè)真實(shí)的表達(dá)式。 它采用短路來(lái)防止不必要的工作。

使用 if 語(yǔ)句。

使用 && 運(yùn)算符。

2.||可以做什么呢?

|| 運(yùn)算符,也稱為邏輯或,計(jì)算操作數(shù)并返回它遇到的第一個(gè)真值表達(dá)式。 它還使用短路來(lái)防止不必要的工作。 在ES6引入默認(rèn)函數(shù)參數(shù)之前,它被用來(lái)初始化函數(shù)中的默認(rèn)參數(shù)值。

3.? undefined 和 null 有什么區(qū)別?

在了解 undefined 和 null 的區(qū)別之前,我們先來(lái)看看它們的相同點(diǎn)。

它們都屬于 JavaScript 中的 7 種基本類型。

它們被認(rèn)為是假值,這意味著當(dāng)使用 Boolean(value) 或 !!value 轉(zhuǎn)換為布爾值時(shí),它們的值為假。

現(xiàn)在,讓我們看看它們的區(qū)別。

undefined 是未指定特定值的變量或未顯式返回值的函數(shù)的默認(rèn)值,例如 console.log(1),以及對(duì)象中不存在的屬性,JS 引擎為其分配未定義的值。

null 是一個(gè)值,表示沒(méi)有任何值。 nullis 顯式分配給變量。 在此示例中,當(dāng) fs.readFile 方法未拋出錯(cuò)誤時(shí),我們將獲得一個(gè)空值。

比較 null 和 undefined 時(shí),使用 == 時(shí)得到 true,使用 === 時(shí)得到 false。

4.什么是事件傳播?

當(dāng)一個(gè)事件發(fā)生在 DOM 元素上時(shí),它不僅僅發(fā)生在那個(gè)特定的元素上。 在“冒泡階段”期間,事件冒泡或傳播到其父級(jí)、祖父母、曾祖父母或父級(jí),直到到達(dá)窗口。

另一方面,在“捕獲階段”期間,事件從窗口開(kāi)始在元素上觸發(fā),并向下傳播到事件目標(biāo)或 event.target。

事件傳播分為三個(gè)階段:

捕獲階段:事件從窗口開(kāi)始,然后向下傳播到每個(gè)元素,直到到達(dá)目標(biāo)元素。

目標(biāo)階段:事件已經(jīng)到達(dá)目標(biāo)元素。

冒泡階段:事件從目標(biāo)元素冒泡,然后上升到每個(gè)元素,直到到達(dá)窗口。

5.什么是事件冒泡?

當(dāng)一個(gè)事件發(fā)生在 DOM 元素上時(shí),它不僅僅發(fā)生在那個(gè)特定的元素上。 在冒泡階段,事件冒泡,或者事件發(fā)生在它的父級(jí)、祖父母、曾祖父母等上,直到它到達(dá)窗口。

HTML:

JS:

addEventListener 方法有第三個(gè)可選參數(shù),稱為 useCapture,默認(rèn)為 false。 如果設(shè)置為true,事件將發(fā)生在捕獲階段而不是冒泡階段。 如果點(diǎn)擊子元素,它會(huì)在控制臺(tái)上分別記錄child、parent、grandparent、html、document、window。 這就是事件冒泡。

6.什么是事件捕捉?

當(dāng)一個(gè)事件發(fā)生在 DOM 元素上時(shí),它不僅僅發(fā)生在那個(gè)特定的元素上。 在捕獲階段,事件從窗口開(kāi)始,一直向下傳播到觸發(fā)事件的元素。

HTML:

JS:

addEventListener 方法有第三個(gè)可選參數(shù),稱為 useCapture,默認(rèn)為 false。 如果設(shè)置為true,事件將發(fā)生在捕獲階段而不是冒泡階段。 如果你點(diǎn)擊子元素,它會(huì)在控制臺(tái)上分別記錄window、document、html、grandparent和parent。 這就是事件捕獲。

7. event.preventDefault() 和 event.stopPropagation() 方法有什么區(qū)別?

event.preventDefault() 方法防止元素的默認(rèn)行為。 如果在表單元素中使用,它會(huì)阻止提交。 如果在錨元素內(nèi)使用,它會(huì)阻止導(dǎo)航。 如果在上下文菜單中使用,它會(huì)阻止其顯示或出現(xiàn)。

另一方面,event.stopPropagation() 方法用于防止在捕獲和冒泡階段進(jìn)一步傳播當(dāng)前事件。

8. 如何確定元素中是否使用了 event.preventDefault() 方法?

我們可以在事件對(duì)象中使用 event.defaultPrevented 屬性。 它返回一個(gè)布爾值,指示是否已在特定元素內(nèi)調(diào)用 event.preventDefault()。

9. 為什么代碼 obj.someprop.x 會(huì)拋出錯(cuò)誤?

顯然,代碼會(huì)拋出錯(cuò)誤,因?yàn)槲覀冊(cè)噲D訪問(wèn)對(duì)象中不存在的屬性“someprop”中的屬性“x”。 它導(dǎo)致未定義的值。

請(qǐng)記住,訪問(wèn)對(duì)象本身或其原型中不存在的屬性默認(rèn)為未定義。 由于 undefined 沒(méi)有屬性“x”,因此嘗試訪問(wèn)它會(huì)導(dǎo)致錯(cuò)誤。

10.什么是event.target?

簡(jiǎn)單的說(shuō),event.target就是事件發(fā)生的元素或者觸發(fā)事件的元素。

HTML:

JS:

如果你點(diǎn)擊一個(gè)按鈕,即使我們將事件附加到最外層的 div,它仍然會(huì)打印按鈕標(biāo)簽。 因此,我們可以得出結(jié)論,event.target 是觸發(fā)事件的元素。

11.什么是event.currentTarget?

event.currentTarget 是我們明確附加事件處理程序的元素。

HTML:

JS:

如果你點(diǎn)擊了一個(gè)按鈕,即使你點(diǎn)擊了那個(gè)按鈕,它仍然會(huì)打印最外層的div標(biāo)簽。 在此示例中,我們可以得出結(jié)論,event.currentTarget 是事件處理程序附加到的元素。

12. 為什么在 JavaScript 中比較兩個(gè)相似的對(duì)象會(huì)返回 false?

讓我們從以下示例開(kāi)始:

JavaScript 以不同的方式比較對(duì)象和原始類型。 在基本類型中,JavaScript 根據(jù)它們的值來(lái)比較它們,而在對(duì)象中,JavaScript 根據(jù)它們的引用或變量存儲(chǔ)在內(nèi)存中的地址來(lái)比較它們。

這就是為什么第一個(gè) console.log 語(yǔ)句返回 false,而第二個(gè) console.log 語(yǔ)句返回 true。 a 和 c 具有相同的引用地址,而 a 和 b 則不同。

13. 如何計(jì)算一行中多個(gè)表達(dá)式的值?

您可以使用逗號(hào)運(yùn)算符在一行中計(jì)算多個(gè)表達(dá)式的值。 它從左到右計(jì)算表達(dá)式并返回最右邊的項(xiàng)或最后一個(gè)操作數(shù)的值。

上面的結(jié)果最終得到x的值為27,首先我們將x的值自增6,然后調(diào)用addFive(6)函數(shù),將6作為參數(shù)傳給x,結(jié)果x為11 。

然后,我們將 x 的當(dāng)前值乘以 2 并將其賦值給 x,將 x 的值更新為 22。

然后,我們將 x 的當(dāng)前值減去 5,并將結(jié)果賦給 x,從而使 x 更新為 17。

最后,我們遞增 x 乘以 10 并將更新后的值賦回給 x,導(dǎo)致 x 的最終值為 27。

14.什么是作用域?

JavaScript 中的作用域是指變量或函數(shù)可訪問(wèn)的區(qū)域。 JavaScript 具有三種作用域:全局作用域、函數(shù)作用域和塊作用域 (ES6)。

全局范圍:在全局命名空間中聲明的變量或函數(shù)駐留在全局范圍內(nèi),使它們可以從代碼中的任何位置訪問(wèn)。

函數(shù)范圍:在函數(shù)內(nèi)聲明的變量、函數(shù)和參數(shù)可在函數(shù)本身內(nèi)訪問(wèn),但不能在函數(shù)外訪問(wèn)。

塊作用域:在塊 {} 內(nèi)聲明的變量(使用 let 或 const)只能在該塊內(nèi)訪問(wèn)。

范圍也指一組查找變量的規(guī)則。 如果在當(dāng)前范圍內(nèi)沒(méi)有找到一個(gè)變量,它會(huì)在外部范圍內(nèi)搜索,如果在外部范圍內(nèi)沒(méi)有找到該變量,它將繼續(xù)搜索,直到到達(dá)全局范圍。 如果找到變量,就可以使用; 否則,將拋出錯(cuò)誤。 這個(gè)搜索變量的過(guò)程也稱為作用域鏈。

15. JavaScript 中的假值是什么?

簡(jiǎn)而言之,假值是在轉(zhuǎn)換為布爾值時(shí)變?yōu)榧俚闹怠?/span>

要檢查一個(gè)值是否為假,您可以使用布爾函數(shù)或 !! 操作員。


關(guān)于JavaScript必學(xué)的基礎(chǔ)知識(shí)(上)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
山丹县| 泰安市| 阿合奇县| 安义县| 阳高县| 乡城县| 嵊泗县| 同仁县| 通化县| 治县。| 淳化县| 原平市| 临邑县| 开远市| 临城县| 鹤岗市| 丰城市| 古丈县| 澄城县| 阿克| 河北省| 准格尔旗| 湘乡市| 浠水县| 梁河县| 永德县| 广安市| 台南市| 阿克陶县| 惠来县| 通山县| 汉源县| 麦盖提县| 巴彦淖尔市| 靖远县| 喀喇沁旗| 阳谷县| 宜宾市| 安庆市| 忻州市| 报价|