狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

15個(gè)提升JavaScript開發(fā)者能力的技巧

admin
2023年6月5日 11:6 本文熱度 535

1. 空值和未定義值的判斷

一個(gè)非常常見的測(cè)試就是檢查變量是否為null或undefined,甚至是“空”,例如下面的示例:

if (typeof variable === "undefined" || variable === null || variable === "") {
  // do something
}

一個(gè)更簡(jiǎn)單的方式是:

if (!variable) {
  // do something
}

2. 數(shù)組定義

創(chuàng)建一個(gè)Array對(duì)象:

var myArray = new Array();
myArray[0] = "value1";
myArray[1] = "value2";
myArray[2] = "value3";

我們可以用一行代碼完成相同的操作

var myArray = ["value1""value2""value3"];

3. 三元運(yùn)算符

“if/else”是我們經(jīng)常會(huì)用到的:

if (x > y) {
  result = "x is greater than y";
else {
  result = "x is less than or equal to y";
}

使用三元運(yùn)算符:

result = x > y ? "x is greater than y" : "x is less than or equal to y";

甚至更簡(jiǎn)單:

result = x > y && "x is greater than y" || "x is less than or equal to y";

但是,它對(duì)于函數(shù)調(diào)用是否有效呢?如果我有兩個(gè)不同的函數(shù),并且我想在if為true時(shí)調(diào)用一個(gè)函數(shù),在if為false時(shí)調(diào)用另一個(gè)函數(shù):

if (x > y) {
  myFunction1();
else {
  myFunction2();
}

你可以使用三元運(yùn)算符完成相同的函數(shù)調(diào)用:

(x > y ? myFunction1 : myFunction2)();

還值得一提的是,對(duì)于測(cè)試變量是否為true的if語(yǔ)句,有些小伙伴會(huì)這樣做:

if (variable === true) {
  // do something
}

也可以這樣做:

if (variable) {
  // do something
}

4. 變量聲明

var x = 0;
var y = 0;
var z = 0;

也可以這樣寫:

var x = y = z = 0;

5. 使用正則表達(dá)式

正則表達(dá)式是一種在文本分析和驗(yàn)證方面創(chuàng)建優(yōu)雅和強(qiáng)大代碼的好工具,并且在某些類型的網(wǎng)絡(luò)爬蟲的數(shù)據(jù)提取方面也非常有用。

你可以在以下鏈接中了解更多關(guān)于如何使用正則表達(dá)式的信息:

  • https://developer.mozilla.org/en-US/docs/Web/Javascript/Guide/Regular_Expressions
  • https://regexr.com/
  • https://regex101.com/

6. charAt()的快捷方式

那么你想從一個(gè)字符串中選擇一個(gè)特定位置的字符,就像下面這樣:

var myString = "Hello World";
var myChar = myString.charAt(0);

但是請(qǐng)注意,你可以通過(guò)記住字符串是一個(gè)字符數(shù)組來(lái)獲得相同的結(jié)果:

var myString = "Hello World";
var myChar = myString[0];

7. 10進(jìn)制冪

一個(gè)數(shù)字10000在JS中可以很容易地被1e4替換,即1后跟4個(gè)零,如下所示:

var myNumber = 1e4;

8. 模板文字

這個(gè)語(yǔ)義化特性是ECMAscript版本6或更高版本獨(dú)有的,并且極大地簡(jiǎn)化了變量集中的字符串連接。例如,下面的:

var name = "John";
var age = 30;
var message = "My name is " + name + " and I am " + age + " years old.";

從ES6開始,我們可以使用模板文字來(lái)完成這個(gè)連接:

var name = "John";
var age = 30;
var message = `My name is ${name} and I am ${age} years old.`;

9. 箭頭函數(shù)

箭頭函數(shù)是聲明函數(shù)的簡(jiǎn)短方式。例如,下面是一個(gè)求和函數(shù):

function sum(x, y{
  return x + y;
}

我們也可以這樣聲明函數(shù):

var sum = function(x, y{
  return x + y;
}

但是使用箭頭函數(shù)就很簡(jiǎn)單:

var sum = (x, y) => x + y;

10. 參數(shù)解構(gòu)

這個(gè)技巧適用于那些充滿參數(shù)的函數(shù),你決定用一個(gè)對(duì)象替換所有參數(shù)。或者對(duì)于那些確實(shí)需要一個(gè)配置對(duì)象作為參數(shù)的函數(shù)。

問(wèn)題在于必須繼續(xù)訪問(wèn)通過(guò)參數(shù)傳遞的對(duì)象,然后是我們想要讀取的每個(gè)屬性。像這樣:

function myFunction(options{
  var x = options.x;
  var y = options.y;
  var z = options.z;
}

參數(shù)解構(gòu)特性恰好用于簡(jiǎn)化這個(gè)問(wèn)題,同時(shí)通過(guò)替換前一個(gè)語(yǔ)句來(lái)幫助代碼可讀性:

function myFunction({x, y, z}{
  // do something with x, y, z
}

最后,我們還可以在參數(shù)對(duì)象的屬性中添加默認(rèn)值:

function myFunction({x, y, z = 20}{
  var s = x + y + z;
}

這樣,s的值將為1,但t的值將默認(rèn)為此屬性,即20。

11. 鍵值命名

假設(shè)你有一個(gè)人的對(duì)象,它有一個(gè)將要通過(guò)一個(gè)名字變量賦值的名字屬性。像這樣:

const name = "Joseph"
const person = { name: name }// { name: "Joseph" }

而你也可以這樣做:

const name = "Joseph"
const person = { name }// { name: "Joseph" }

也就是說(shuō),如果你的變量與屬性同名,你就不需要調(diào)用它,只需傳遞變量即可。對(duì)于多個(gè)屬性也是如此:

const name = "Joseph"
const canCode = true
const person = { name, canCode }
// { name: "Joseph", canCode: true }

12. Map

考慮以下對(duì)象數(shù)組:

const animals = [
    {
        "name""cat",
        "size""small",
        "weight": 5
    },
    {
        "name""dog",
        "size""small",
        "weight": 10
    },
    {
        "name""lion",
        "size""medium",
        "weight": 150
    },
    {
        "name""elefante",
        "size""large",
        "weight": 5000
    }
]

我們想要僅將動(dòng)物的名稱添加到另一個(gè)數(shù)組中。通常我們會(huì)這樣做:

let animalNames = [];

for (let i = 0; i < animals.length; i++) {
    animalNames.push(animals[i].name);
}

但是使用 Map,我們可以這樣做:

let animalNames = animais.map((animal) => {
    return animal.nome;
})

請(qǐng)注意,map預(yù)期通過(guò)參數(shù)傳遞一個(gè)帶有最多三個(gè)參數(shù)的函數(shù):

  • 第一個(gè)是當(dāng)前對(duì)象(與 foreach 中的相同)
  • 第二個(gè)是當(dāng)前迭代的索引
  • 第三個(gè)是整個(gè)數(shù)組

顯然,此函數(shù)將針對(duì) animal 數(shù)組中的每個(gè)對(duì)象調(diào)用一次。

13. Filter

如果我們想要遍歷與上一個(gè)提示中相同的動(dòng)物對(duì)象數(shù)組,但這次僅返回那些大小為“small”的對(duì)象,我們?cè)撊绾巫瞿兀?/p>

我們?nèi)绾问褂闷胀ǖ腏S實(shí)現(xiàn)呢?

let smallAnimals = [];

for (let i = 0; i < animals.length; i ++) {
    if (animals[i].size === "small") {
       smallAnimals.push(animals[i])
    }
}

然而,使用 filter 操作符,我們可以以更簡(jiǎn)潔和更清晰的方式實(shí)現(xiàn)這一點(diǎn):

let smallAnimals = animais.filter((animal) => {
    return animal.size === "small"
})

Filter通過(guò)參數(shù)傳遞一個(gè)帶有當(dāng)前迭代對(duì)象參數(shù)的函數(shù)(與 foreach 中的相同),它應(yīng)該返回一個(gè)布爾值,指示此對(duì)象是否將成為返回?cái)?shù)組的一部分(true表示它通過(guò)了測(cè)試并將成為其中一部分)。

14. Reduce

Javascript 的另一個(gè)重要功能是 reduce。它允許我們以非常簡(jiǎn)單和強(qiáng)大的方式對(duì)集合進(jìn)行分組和計(jì)算。例如,如果我們想要將我們的動(dòng)物對(duì)象數(shù)組中所有動(dòng)物的重量相加,我們?cè)撛趺醋瞿兀?/p>

let totalWeight = 0;

for (let i = 0; i < animals.length; i++) {
    totalWeight += animals[i].weight;
}

但是,使用 reduce,我們可以這樣做:

let totalWeight = animals.reduce((total, animal) => {
    return total += animal.weight;
}, 0)

Reduce通過(guò)參數(shù)傳遞一個(gè)帶有以下參數(shù)的函數(shù):

  • 第一個(gè)是累加器變量的當(dāng)前值(在所有迭代結(jié)束時(shí),它將包含最終值)
  • 第二個(gè)參數(shù)是當(dāng)前迭代對(duì)象
  • 第三個(gè)參數(shù)是當(dāng)前迭代的索引
  • 第四個(gè)參數(shù)是將被迭代的所有對(duì)象的數(shù)組

此函數(shù)將在數(shù)組中的每個(gè)對(duì)象上執(zhí)行一次,在執(zhí)行結(jié)束時(shí)返回聚合值。

以上就是今日分享的關(guān)于Javascript的文章,雖然看起來(lái)很簡(jiǎn)單,但是對(duì)于剛?cè)腴T的小伙伴來(lái)說(shuō)是非常有用的喲!


該文章在 2023/6/5 11:06:37 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved