日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
前端大神常用的15個(gè)JavaScript小技巧

 其實(shí)大多數(shù)編程語言都足夠開放,允許程序員用多種方式進(jìn)行編程,從而獲得相似的結(jié)果。也是如此。在使用JavaScript的時(shí)候,通常我們也會(huì)找到許多方法來獲得相似的結(jié)果,但有時(shí)會(huì)造成混淆狀況的發(fā)生。

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比無棣網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式無棣網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋無棣地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。

在這些方法中,其中一些用法比其他方法要好,因此這些是我的最愛,我也會(huì)在本文中把這些方法列出來。我相信,你在自己的列表中也會(huì)找到這些方法。

1、忘記字符串連接

使用模板字符串(文字)

一般情況下,我們?cè)跇?gòu)建一個(gè)有意義的字符串時(shí),通常會(huì)使用+運(yùn)算符將字符串連接在一起。然而,連接字符串和動(dòng)態(tài)值(或表達(dá)式)時(shí),可能會(huì)導(dǎo)致一些錯(cuò)誤情況的發(fā)生。

模板文字(或模板字符串)允許嵌入表達(dá)式。它具有獨(dú)特的語法,也就是字符串必須用反引號(hào)(``)括起來。模板字符串可以包含動(dòng)態(tài)值的占位符。這些可以通過美元符號(hào)和大括號(hào)(${expression})進(jìn)行標(biāo)記。

我們來用這種方法做一個(gè)演示:

2、isInteger

想知道值是否為整數(shù)?這里有一種更清晰的方法。

JavaScript的NumberAPI提供了一種被稱為isInteger()的方法,以此來了解值是否為整數(shù)。這是非常有用的,并且更加容易被注意到。

輸出如下:

3、價(jià)值作為數(shù)字

以前你是否注意到,event.target.value即使輸入數(shù)字類型,也總是返回字符串類型值?

是的,來看下面的示例。我們有一個(gè)簡(jiǎn)單的數(shù)字類型的文本框。這意味著它只接受數(shù)字的輸入。它具有事件處理程序來處理按鍵事件。

在事件處理程序方法中,我們?nèi)〕鲋禃r(shí)會(huì)用到event.target.value。但是它返回的是一個(gè)字符串類型值。現(xiàn)在我還要將它解析為一個(gè)整數(shù),這有些麻煩。如果輸入框接受浮點(diǎn)數(shù)(如16.56)怎么辦?parseFloat()然后呢?還會(huì)有額外的工作和各種各樣令人困惑的事情發(fā)生!

使用event.target.valueAsNumber代替。它會(huì)以數(shù)字形式返回值。

4、AND的簡(jiǎn)寫

讓我們考慮一個(gè)具有布爾值和函數(shù)的情況。

這里的代碼太多了,無法檢查布爾條件并調(diào)用該函數(shù),

那么,嘗試通過AND(&&)運(yùn)算符使用簡(jiǎn)寫怎么樣?是的,避免了if的完全陳述。很酷吧!

5、帶有OR的默認(rèn)值

你可以通過OR(||)運(yùn)算符,輕松實(shí)現(xiàn)為變量設(shè)置默認(rèn)值的操作。

但是等等,這是有問題的。如果這個(gè)人的年齡是0怎么辦(可能是剛出生的嬰兒)。年齡將被計(jì)算為35(0|| 35 = 35),這屬于意料之外的運(yùn)算行為。

這個(gè)時(shí)候,可以輸入nullishcoalescing operator(??)。它是一個(gè)邏輯運(yùn)算符,當(dāng)其左側(cè)操作數(shù)為null或者undefined時(shí),返回其右側(cè)操作數(shù),否則返回其左側(cè)操作數(shù)。

要使用??運(yùn)算符重寫以上代碼,

6、隨機(jī)項(xiàng)

生成隨機(jī)數(shù)或從數(shù)組中獲取隨機(jī)項(xiàng)都是隨手可得且非常有用的方法。這些方法已經(jīng)在我的項(xiàng)目中出現(xiàn)過很多次了。

從數(shù)組中獲取隨機(jī)項(xiàng),

通過一個(gè)指定了最小值和最大值的范圍來生成一個(gè)隨機(jī)數(shù):

7、函數(shù)默認(rèn)參數(shù)

在JavaScript中,函數(shù)參數(shù)(或參數(shù))類似于這個(gè)函數(shù)的局部變量。在調(diào)用函數(shù)時(shí),你既可以傳遞這些值,也可以選擇不傳遞。如果你不傳遞參數(shù)的值,那么它將是undefined的狀態(tài),并且可能會(huì)導(dǎo)致一些其他不必要的狀況出現(xiàn)。

有一種簡(jiǎn)單的方法,可以在定義參數(shù)時(shí)將默認(rèn)值傳遞給函數(shù)參數(shù)。這里舉的例子是,我們將默認(rèn)值Hello傳遞給greetings函數(shù)的參數(shù)的message。

8、必備的函數(shù)參數(shù)

擴(kuò)展默認(rèn)參數(shù)技術(shù),我們可以將參數(shù)標(biāo)記為必需。首先定義一個(gè)函數(shù),用錯(cuò)誤消息拋出錯(cuò)誤,

然后將功能分配為所需參數(shù)的默認(rèn)值。請(qǐng)記住,在調(diào)用時(shí)為參數(shù)傳遞值時(shí),將忽略默認(rèn)值。但是,如果參數(shù)值為,則考慮默認(rèn)值undefined。

在上面的代碼中,name會(huì)是undefined狀態(tài),并且會(huì)試著為其設(shè)置默認(rèn)值,即isRequired()函數(shù)。它將引發(fā)一個(gè)錯(cuò)誤——

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

當(dāng)我意識(shí)到逗號(hào)(,)是一個(gè)單獨(dú)的運(yùn)算符并且從未被人注意到時(shí),我感到非常驚訝。我已經(jīng)在代碼中使用很多次了,但從未意識(shí)到它如此真實(shí)的存在。

在JavaScript中,comma(,)運(yùn)算符用于從左到右計(jì)算其每個(gè)操作數(shù),并返回最后一個(gè)操作數(shù)的值。

在上面的示例中,變量的值為ret2。與實(shí)例類似,以下代碼的輸出將值32記錄到控制臺(tái)中。

我們?cè)谀睦锸褂盟??有什么想法嗎?comma(,)運(yùn)算符最常見的用法就是在for循環(huán)中提供多個(gè)參數(shù)。

10、合并多個(gè)對(duì)象

你可能需要將兩個(gè)對(duì)象合并在一起,并創(chuàng)建一個(gè)更好的信息對(duì)象進(jìn)行使用。你也可以使用(...)點(diǎn)差運(yùn)算符進(jìn)行同樣的操作。(是的,三個(gè)點(diǎn)!)

分別考慮emp和job這兩個(gè)對(duì)象,

使用spread運(yùn)算符,將它們合并為:

還有另一種執(zhí)行此合并的方法。使用Object.assign()。你還可以這樣做:

輸出:

要注意,spread運(yùn)算符和Object.assign都要執(zhí)行淺合并。在淺表合并中,第一個(gè)對(duì)象的屬性將被與第二個(gè)對(duì)象相同的屬性值覆蓋。

如果要進(jìn)行深度合并,請(qǐng)使用lodash中_merge之類的方法。

11、解構(gòu)

將數(shù)組元素和對(duì)象屬性分解為變量的技術(shù),被稱為destructuring。讓我們來看幾個(gè)例子,

數(shù)組

在這里,我們有一系列的表情符號(hào),

為了進(jìn)行解構(gòu),我們將使用以下語法,

與執(zhí)行相同,letfire = emojis[0];但具有更大的靈活性。你有沒有注意到,我用一個(gè)空白的區(qū)域替換了原有的獎(jiǎng)杯表情符號(hào)?那么,這將輸出什么呢?

輸出:

再介紹一下rest操作符。如果要對(duì)數(shù)組進(jìn)行解構(gòu),以便要將一個(gè)或多個(gè)項(xiàng)目分配給變量,并將其余部分放在另一個(gè)數(shù)組中,就可以使用如下所示的...rest方法完成此操作。

輸出:

對(duì)象

像數(shù)組一樣,我們也可以解構(gòu)對(duì)象。

像這樣進(jìn)行解構(gòu),我們就獲得了名稱,在一組變量的兩邊,并且其余部分在另一個(gè)對(duì)象中。

輸出:

12、交換變量

現(xiàn)在運(yùn)用我們剛剛學(xué)過的destructuring概念,就變得非常簡(jiǎn)單了。

13、isArray

確定輸入的是否為數(shù)組,還有另一個(gè)有用的方法。

14、未定義vs空

undefined是一個(gè)已經(jīng)聲明,但變量未被定義的值。

null本身是一個(gè)空的且不存在的值,必須明確地分配給變量。

undefined與null并不嚴(yán)格相等

15、獲取查詢參數(shù)

window.location對(duì)象具有許多實(shí)用的方法和屬性。使用這些屬性和方法,我們可以從瀏覽器URL中獲取有關(guān)協(xié)議,主機(jī),端口,域等的信息。

我發(fā)現(xiàn)其中一個(gè)非常有用的特性是,

Location.search屬性從位置URL返回查詢字符串。我們可以使用另一個(gè)有用的被稱為URLSearchParams的接口,以及l(fā)ocation.search獲取查詢參數(shù)的值。

輸出:js

今天知識(shí)分享就先到這里了,以后我們還會(huì)提供更多編程知識(shí)和編程技巧,希望大家繼續(xù)關(guān)注并支持我們的文章


文章標(biāo)題:前端大神常用的15個(gè)JavaScript小技巧
分享URL:http://m.5511xx.com/article/cdscipj.html