自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

您可能未使用過(guò)的JavaScript功能

開(kāi)發(fā) 前端
JavaScript具有許多經(jīng)常使用的功能。 但是,有些功能可能我們大多數(shù)人都沒(méi)有使用過(guò)。在本文中,我們將介紹其中一些功能以及可能的用例。

JavaScript具有許多經(jīng)常使用的功能。 但是,有些功能可能我們大多數(shù)人都沒(méi)有使用過(guò)。

在本文中,我們將介紹其中一些功能以及可能的用例。

[[325501]]

標(biāo)記模板文字

帶有標(biāo)簽的模板文字是處理模板字符串的函數(shù)。

它們經(jīng)常在React庫(kù)中使用,例如樣式組件庫(kù)。 此功能實(shí)際上很有用。

它使我們可以輕松地解析模板字符串文字。 它使我們可以使用函數(shù)來(lái)解析模板文字。

例如,我們可以按以下方式使用它:

  1. const tag = (strings, ...vals) => { console.log(strings); console.log(vals);}const name = 'foo';tag `Hi ${name}`; 

在上面的代碼中,我們有he標(biāo)記函數(shù)和vals數(shù)組,該函數(shù)具有包含字符串的各個(gè)部分的字符串函數(shù),該函數(shù)具有插值到字符串中的值。

在上面的示例中,我們有一個(gè)數(shù)組,其中'Hi'和''作為string的值。

在vals數(shù)組中,我們有'foo'。

我們可以使用它來(lái)返回要返回的對(duì)象。 例如,我們可以如下重寫(xiě)標(biāo)記函數(shù):

  1. const tag = (strings, ...vals) => { return `${strings[0]}! ${vals[0]}`} 

在上面的代碼中,我們從string和vals中獲取字符串的各個(gè)部分,并放入!。 在兩個(gè)表達(dá)式之間。

然后我們得到嗨! 返回值的foo。

逗號(hào)運(yùn)算符

逗號(hào)運(yùn)算符始終返回由逗號(hào)運(yùn)算符分隔的項(xiàng)目列表中的最后一項(xiàng)。

例如,我們可以按以下方式使用它:

  1. const foo = (1, 2, 3); 

然后我們得到3。

它可以使用任何表達(dá)式,并且始終返回最后一個(gè)求值的表達(dá)式。

With

with運(yùn)算符絕對(duì)是我們不應(yīng)該使用的運(yùn)算符。 在嚴(yán)格模式下禁止使用。

該運(yùn)算符在語(yǔ)言中增加了一些性能和安全性問(wèn)題。 它用于擴(kuò)展語(yǔ)句的作用域鏈。

它的用法如下:

  1. with(expression) statement 

要么:

  1. with(expression) { statement statement ...} 

在上面的代碼中,我們圍繞expression創(chuàng)建了一個(gè)新范圍。

塊中的所有語(yǔ)句都將表達(dá)式作為父范圍。

例如,我們可以按以下方式使用它:

  1. const obj = { a: 1, b: 2, c: 3}  
  2. with(obj) {  
  3. console.log(a, b, c);  

在上面的代碼中,with塊內(nèi)的表達(dá)式都將相對(duì)于obj對(duì)象進(jìn)行范圍限定。

因此,a,b和c實(shí)際上是obj.a,obj.b和obj.c。

與with一樣,塊范圍變量在with塊之外不可用。

例如,如果我們有:

  1. const obj = { a: 1, b: 2, c: 3}  
  2. with(obj) {  
  3. console.log(a, b, c);  
  4. let x = 1 
  5.  
  6. console.log(x); 

如果嘗試在x上調(diào)用console.log,則在with塊之外引用x時(shí),會(huì)出現(xiàn)錯(cuò)誤。

In

in運(yùn)算符對(duì)于檢查屬性是對(duì)象的一部分還是原型鏈中的任何原型非常有用。

如果該屬性在對(duì)象中或原型鏈中的任何屬性中,則返回true,否則返回false。

例如,如果我們具有以下類(lèi)結(jié)構(gòu)和對(duì)象:

  1. class Foo { constructor() { this.a = 1; }}  
  2. class Bar extends Foo {  
  3. constructor() {  
  4. super();  
  5. this.b = 2 
  6. this.c = 3; }  
  7.  
  8. const bar = new Bar(); 

然后,如果我們記錄以下表達(dá)式的返回值:

  1. console.log('a' in bar);  
  2. console.log('b' in bar);  
  3. console.log('c' in bar); 

我們認(rèn)為所有日志都是正確的。

這是因?yàn)閎ar以Foo實(shí)例作為其原型,并且in運(yùn)算符檢查對(duì)象本身及其原型的屬性。

因此,in bar也是如此。 如果我們只想檢查該屬性是否為非繼承屬性,則必須使用obj.hasOwnProperty方法,其中obj是沒(méi)有null原型的任何JavaScript對(duì)象。

結(jié)論

標(biāo)記的模板文字可用于將模板字符串轉(zhuǎn)換為所需的值。

逗號(hào)運(yùn)算符始終返回逗號(hào)分隔列表中的最后一項(xiàng)。

in運(yùn)算符檢查屬性是否在對(duì)象或其原型中。

是您的JavaScript代碼中不應(yīng)該包含的內(nèi)容。

 

責(zé)任編輯:趙寧寧 來(lái)源: 今日頭條
相關(guān)推薦

2010-03-12 09:15:28

Firefox新功能

2022-10-17 15:47:19

JavaScript開(kāi)發(fā)Web

2016-03-23 11:03:40

2023-09-27 22:14:10

GIT 命令開(kāi)發(fā)

2023-09-13 09:20:00

日志配置Spring

2014-03-25 09:18:25

2020-03-23 20:57:02

SD-WAN網(wǎng)絡(luò)

2017-11-06 14:55:53

庫(kù)windows文件歸納

2016-10-25 15:36:49

Linux命令工具

2022-05-18 08:00:26

函數(shù)劫持JavaScript鉤子函數(shù)

2023-02-15 08:34:12

測(cè)試移動(dòng)開(kāi)發(fā)

2021-04-05 22:33:24

Windows 10Windows微軟

2009-08-03 17:31:26

.NET驗(yàn)證控件

2025-02-13 09:37:26

2023-03-15 08:00:00

Node軟件包管理器開(kāi)發(fā)

2019-11-05 16:51:41

JavaScript數(shù)據(jù)es8

2020-03-19 19:00:01

Linux命令

2009-05-13 10:28:28

Linux命令

2019-06-11 10:07:30

戴爾

2020-09-21 14:55:15

數(shù)據(jù)庫(kù)SQL技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)