精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

JavaScript 開發人員需要知道的簡寫技巧

新聞 前端
本文來源于多年的 JavaScript 編碼技術經驗,適合所有正在使用 JavaScript 編程的開發人員閱讀。

 [[207370]]

本文來源于多年的 JavaScript 編碼技術經驗,適合所有正在使用 JavaScript 編程的開發人員閱讀。

本文的目的在于幫助大家更加熟練的運用 JavaScript 語言來進行開發工作。

文章將分成初級篇和高級篇兩部分,分別進行介紹。

初級篇

1、三目運算符

下面是一個很好的例子,將一個完整的 if 語句,簡寫為一行代碼。

const x = 20;
let answer;
if (x > 10) {
    answer = 'greater than 10';
} else {
    answer = 'less than 10';
}

簡寫為:

const answer = x > 10 ? 'greater than 10' : 'less than 10';

2、循環語句

當使用純 JavaScript(不依賴外部庫,如 jQuery 或 lodash)時,下面的簡寫會非常有用。

for (let i = 0; i < allImgs.length; i++)

簡寫為:

for (let index of allImgs)

下面是遍歷數組 forEach 的簡寫示例:

function logArrayElements(element, index, array) {
  console.log("a[" + index + "] = " + element);
}
[2, 5, 9].forEach(logArrayElements);
// logs:
// a[0] = 2
// a[1] = 5
// a[2] = 9

3、聲明變量

在函數開始之前,對變量進行賦值是一種很好的習慣。在申明多個變量時:

let x;
let y;
let z = 3;

可以簡寫為:

let x, y, z=3;

4、if 語句

在使用 if 進行基本判斷時,可以省略賦值運算符。

if (likeJavaScript === true)

簡寫為:

if (likeJavaScript)

5、十進制數

可以使用科學計數法來代替較大的數據,如可以將 10000000 簡寫為 1e7。

for (let i = 0; i < 10000; i++) { }

簡寫為:

for (let i = 0; i < 1e7; i++) { }

6、多行字符串

如果需要在代碼中編寫多行字符串,就像下面這樣:

const lorem = 'Lorem ipsum dolor sit amet, consectetur\n\t'
    + 'adipisicing elit, sed do eiusmod tempor incididunt\n\t'
    + 'ut labore et dolore magna aliqua. Ut enim ad minim\n\t'
    + 'veniam, quis nostrud exercitation ullamco laboris\n\t'
    + 'nisi ut aliquip ex ea commodo consequat. Duis aute\n\t'
    + 'irure dolor in reprehenderit in voluptate velit esse.\n\t'

但是還有一個更簡單的方法,只使用引號:

const lorem = `Lorem ipsum dolor sit amet, consectetur
    adipisicing elit, sed do eiusmod tempor incididunt
    ut labore et dolore magna aliqua. Ut enim ad minim
    veniam, quis nostrud exercitation ullamco laboris
    nisi ut aliquip ex ea commodo consequat. Duis aute
    irure dolor in reprehenderit in voluptate velit esse.`

高級篇

1、變量賦值

當將一個變量的值賦給另一個變量時,首先需要確保原值不是 null、未定義的或空值。

可以通過編寫一個包含多個條件的判斷語句來實現:

if (variable1 !== null || variable1 !== undefined || variable1 !== '') {
     let variable2 = variable1;
}

或者簡寫為以下的形式:

const variable2 = variable1  || 'new';

可以將下面的代碼粘貼到 es6console 中,自己測試:

let variable1;
let variable2 = variable1  || '';
console.log(variable2 === ''); // prints true
variable1 = 'foo';
variable2 = variable1  || '';
console.log(variable2); // prints foo

2、默認值賦值

如果預期參數是 null 或未定義,則不需要寫六行代碼來分配默認值。我們可以只使用一個簡短的邏輯運算符,只用一行代碼就能完成相同的操作。

let dbHost;
if (process.env.DB_HOST) {
  dbHost = process.env.DB_HOST;
} else {
  dbHost = 'localhost';
}

簡寫為:

const dbHost = process.env.DB_HOST || 'localhost';

3、對象屬性

ES6 提供了一個很簡單的辦法,來分配屬性的對象。如果屬性名與 key 名相同,則可以使用簡寫。

const obj = { x:x, y:y };

簡寫為:

const obj = { x, y };

4、箭頭函數

經典函數很容易讀寫,但是如果把它們嵌套在其它函數中進行調用時,整個函數就會變得有些冗長和混亂。這時候可以使用箭頭函數來簡寫:

function sayHello(name) {
  console.log('Hello', name);
}
 
setTimeout(function() {
  console.log('Loaded')
}, 2000);
 
list.forEach(function(item) {
  console.log(item);
});

簡寫為:

sayHello = name => console.log('Hello', name);
setTimeout(() => console.log('Loaded'), 2000);
list.forEach(item => console.log(item));

5、隱式返回值

返回值是我們通常用來返回函數最終結果的關鍵字。只有一個語句的箭頭函數,可以隱式返回結果(函數必須省略括號({ }),以便省略返回關鍵字)。

要返回多行語句(例如對象文本),需要使用()而不是{ }來包裹函數體。這樣可以確保代碼以單個語句的形式進行求值。

function calcCircumference(diameter) {
  return Math.PI * diameter
}

簡寫為:

calcCircumference = diameter => (
  Math.PI * diameter;
)

6、默認參數值

可以使用 if 語句來定義函數參數的默認值。ES6 中規定了可以在函數聲明中定義默認值。

function volume(l, w, h) {
  if (w === undefined)
    w = 3;
  if (h === undefined)
    h = 4;
  return l * w * h;
}

簡寫為:

volume = (l, w = 3, h = 4 ) => (l * w * h);
volume(2) //output: 24

7、模板字符串

過去我們習慣了使用“+”將多個變量轉換為字符串,但是有沒有更簡單的方法呢?

ES6 提供了相應的方法,我們可以使用反引號和 $ { } 將變量合成一個字符串。

const welcome = 'You have logged in as ' + first + ' ' + last + '.'
const db = 'http://' + host + ':' + port + '/' + database;

簡寫為:

const welcome = `You have logged in as ${first} ${last}`;
const db = `http://${host}:${port}/${database}`;

8、解構賦值

解構賦值是一種表達式,用于從數組或對象中快速提取屬性值,并賦給定義的變量。

在代碼簡寫方面,解構賦值能達到很好的效果。

const observable = require('mobx/observable');
const action = require('mobx/action');
const runInAction = require('mobx/runInAction');
const store = this.props.store;
const form = this.props.form;
const loading = this.props.loading;
const errors = this.props.errors;
const entity = this.props.entity;

簡寫為:

import { observable, action, runInAction } from 'mobx';
const { store, form, loading, errors, entity } = this.props;

甚至可以指定自己的變量名:

const { store, form, loading, errors, entity:contact } = this.props;

9、展開運算符

展開運算符是在 ES6 中引入的,使用展開運算符能夠讓 JavaScript 代碼更加有效和有趣。

使用展開運算符可以替換某些數組函數。

// joining arrays
const odd = [1, 3, 5];
const nums = [2 ,4 , 6].concat(odd);
 
// cloning arrays
const arr = [1, 2, 3, 4];
const arr2 = arr.slice( )

簡寫為:

// joining arrays
const odd = [1, 3, 5 ];
const nums = [2 ,4 , 6, ...odd];
console.log(nums); // [ 2, 4, 6, 1, 3, 5 ]
 
// cloning arrays
const arr = [1, 2, 3, 4];
const arr2 = [...arr];

和 concat( ) 功能不同的是,用戶可以使用擴展運算符在任何一個數組中插入另一個數組。

const odd = [1, 3, 5 ];
const nums = [2, ...odd, 4 , 6];

也可以將展開運算符和 ES6 解構符號結合使用:

const { a, b, ...z } = { a: 1, b: 2, c: 3, d: 4 };
console.log(a) // 1
console.log(b) // 2
console.log(z) // { c: 3, d: 4 }

10、強制參數

默認情況下,如果不向函數參數傳值,那么 JavaScript 會將函數參數設置為未定義。其它一些語言則會發出警告或錯誤。要執行參數分配,可以使用if語句拋出未定義的錯誤,或者可以利用“強制參數”。

function foo(bar) {
  if(bar === undefined) {
    throw new Error('Missing parameter!');
  }
  return bar;
}

簡寫為:

mandatory = ( ) => {
  throw new Error('Missing parameter!');
}
foo = (bar = mandatory( )) => {
  return bar;
}

11、Array.find

如果你曾經編寫過普通 JavaScript 中的 find 函數,那么你可能使用了 for 循環。在 ES6 中,介紹了一種名為 find()的新數組函數,可以實現 for 循環的簡寫。

const pets = [
  { type: 'Dog', name: 'Max'},
  { type: 'Cat', name: 'Karl'},
  { type: 'Dog', name: 'Tommy'},
]
function findDog(name) {
  for(let i = 0; i<pets.length; ++i) {
    if(pets[i].type === 'Dog' && pets[i].name === name) {
      return pets[i];
    }
  }
}

簡寫為:

pet = pets.find(pet => pet.type ==='Dog' && pet.name === 'Tommy');
console.log(pet); // { type: 'Dog', name: 'Tommy' }

12、Object [key]

雖然將 foo.bar 寫成 foo ['bar'] 是一種常見的做法,但是這種做法構成了編寫可重用代碼的基礎。

請考慮下面這個驗證函數的簡化示例:

function validate(values) {
  if(!values.first)
    return false;
  if(!values.last)
    return false;
  return true;
}
console.log(validate({first:'Bruce',last:'Wayne'})); // true

上面的函數***的完成驗證工作。但是當有很多表單,則需要應用驗證,此時會有不同的字段和規則。如果可以構建一個在運行時配置的通用驗證函數,會是一個好選擇。

// object validation rules
const schema = {
  first: {
    required:true
  },
  last: {
    required:true
  }
}
 
// universal validation function
const validate = (schema, values) => {
  for(field in schema) {
    if(schema[field].required) {
      if(!values[field]) {
        return false;
      }
    }
  }
  return true;
}
console.log(validate(schema, {first:'Bruce'})); // false
console.log(validate(schema, {first:'Bruce',last:'Wayne'})); // true

現在有了這個驗證函數,我們就可以在所有窗體中重用,而無需為每個窗體編寫自定義驗證函數。

13、雙位操作符

位操作符是 JavaScript 初級教程的基本知識點,但是我們卻不常使用位操作符。因為在不處理二進制的情況下,沒有人愿意使用 1 和 0。

但是雙位操作符卻有一個很實用的案例。你可以使用雙位操作符來替代 Math.floor( )。雙否定位操作符的優勢在于它執行相同的操作運行速度更快。

Math.floor(4.9) === 4  //true

簡寫為:

~~4.9 === 4  //true

總結

上述是一些常用的 JavaScript 簡寫技巧,如果有其它未提及的簡寫技巧,也歡迎大家補充。

原文鏈接:https://www.sitepoint.com/shorthand-javascript-techniques/

轉載請注明出自:葡萄城控件

責任編輯:張燕妮 來源: 葡萄城控件技術團隊
相關推薦

2017-12-25 16:15:49

前端JavaScript簡寫技巧

2024-06-03 10:35:41

2024-11-04 14:18:32

JavaScript編程語言開發

2024-09-06 15:48:13

2021-02-16 16:44:40

RustJavaScript開發

2024-06-04 14:31:16

2023-07-11 16:45:32

VS Code開發技巧

2013-01-28 10:25:46

開發人員設計技巧

2023-05-11 16:29:39

Javascript開發前端

2009-09-10 14:18:03

PHP庫

2018-04-08 10:08:43

開發人員工具

2023-02-21 14:51:58

JavaScrip技巧開發

2024-10-21 13:15:03

2024-09-18 15:39:10

JavaScript開發閉包

2023-04-07 16:11:56

前端開發

2020-04-20 09:57:00

開發工具技術

2025-01-03 11:54:05

2020-05-11 09:54:33

JavaScript開發技術

2024-04-03 10:29:13

JavaScrip優化技巧

2020-01-27 16:28:57

開發命令遠程服務器
點贊
收藏

51CTO技術棧公眾號

校园春色亚洲| 精品国产无码AV| 精品视频自拍| 色呦呦一区二区三区| 日韩精品一区二区三区四区五区| 亚洲天堂2021av| 欧美天天视频| 国产香蕉精品视频一区二区三区| 久久人人爽av| www欧美xxxx| 国产欧美日韩不卡| 国产精品乱子乱xxxx| 欧美超碰在线观看| 韩国自拍一区| 少妇高潮 亚洲精品| 国产精品扒开腿做爽爽爽a片唱戏 亚洲av成人精品一区二区三区 | 国产精品久久久久久福利| 成人妖精视频yjsp地址| 国产精品久久久久久久久久小说| 三上悠亚在线观看视频| 欧美电影免费网站| 91麻豆精品国产| 国内外成人激情视频| 成人影院在线观看| 国产精品美女久久久久久久久久久 | 不卡av免费在线| 超碰在线资源| 亚洲男人都懂的| 亚洲国产精品一区二区第一页| 丰满人妻一区二区| 国产综合色在线| 日韩av免费在线观看| 国产精品1234区| 永久91嫩草亚洲精品人人| 国产亚洲精品久久久优势| 在线观看免费视频黄| 日韩美女在线| 欧美视频精品在线| 亚洲成人福利在线观看| 神马久久午夜| 欧美日韩激情视频| 韩日视频在线观看| 丝袜在线视频| 一区二区三区在线观看动漫| 国产a级片免费看| 欧美成人三区| 国产精品理伦片| 亚洲成人第一| 成人影院免费观看| 国产免费久久精品| 少妇免费毛片久久久久久久久| 国产又爽又黄网站亚洲视频123| 国产成人无遮挡在线视频| 成人在线观看视频网站| 国产精品欧美综合亚洲| 精品亚洲成av人在线观看| 国产精品视频成人| 亚洲天堂自拍偷拍| 国内不卡的二区三区中文字幕| 国产精品美女久久久久av超清| 国产无遮挡又黄又爽又色视频| 亚洲自啪免费| 日本欧美精品在线| 日韩中文字幕高清| 久久精品国内一区二区三区| 国产日韩在线亚洲字幕中文| 国产有码在线观看| 国产盗摄一区二区三区| 国产九色精品| 深夜福利视频在线免费观看| 91丨九色porny丨蝌蚪| 欧美1o一11sex性hdhd| 国模吧精品人体gogo| 中文字幕av一区二区三区高| 亚洲一二三区精品| 最新av在线播放| 亚洲成人激情av| 丰满人妻中伦妇伦精品app| 日韩精品99| 欧美美女网站色| 久久精品aⅴ无码中文字字幕重口| 成人福利一区| 亚洲三级av在线| 亚洲熟女毛茸茸| 在线播放亚洲| 国产精品久久久久999| 国产一区二区在线视频观看| 成人精品免费视频| 日韩精品无码一区二区三区| av毛片在线免费| 精品久久在线播放| 一起操在线视频| 国产成人精品亚洲线观看| 亚洲人成电影网站色xx| 午夜爱爱毛片xxxx视频免费看| 99视频精品全部免费在线视频| 精品国产一区二区三区在线观看| 激情五月婷婷小说| 久久这里有精品15一区二区三区| 国产在线拍揄自揄视频不卡99| 欧美一级在线免费观看| 国产精品视频线看| 福利视频一区二区三区四区| 成人激情视屏| 亚洲精品成人av| 亚洲人做受高潮| 免费久久99精品国产自在现线| 成人午夜两性视频| 西西人体44www大胆无码| 国产精品久久久一本精品| 欧美成人免费在线观看视频| 日韩黄色三级在线观看| 亚洲丝袜在线视频| 日本少妇毛茸茸高潮| 紧缚捆绑精品一区二区| 免费久久久一本精品久久区| 在线观看中文字幕的网站| 欧美综合一区二区| 色噜噜在线观看| 黄色成人av网站| 91九色视频导航| 国产精品99999| 欧美日韩国产一区中文午夜| 下面一进一出好爽视频| 日韩免费在线| 91国产一区在线| 亚洲av综合色区无码一区爱av| 国产精品麻豆久久久| 日本在线视频www| 加勒比视频一区| 久久久久久国产免费| 国产高清精品软件丝瓜软件| 中文字幕av不卡| 日本激情视频在线播放| 一区三区在线欧| 2023亚洲男人天堂| 五月婷婷丁香花| 亚洲大片一区二区三区| 日本少妇xxxx软件| 国产真实久久| 成人免费在线一区二区三区| 黄网站在线免费看| 91精品中文字幕一区二区三区| 欧美aaa级片| 日韩av中文字幕一区二区三区| 欧美第一黄网| 中文字幕av一区二区三区佐山爱| 国产丝袜视频一区| 欧美一区二区三区不卡视频| 91日韩在线专区| 日韩免费一级视频| 中文精品一区二区| 国产suv精品一区二区三区88区| 无码国产精品一区二区免费16| 亚洲国产乱码最新视频 | 久久在线免费视频| 国产剧情久久久| 亚洲女同女同女同女同女同69| 亚洲天堂伊人网| 欧美在线视屏| 国产精品午夜av在线| a在线视频v视频| 精品小视频在线| 国产成人av免费| 国产精品国产三级国产普通话99| 91av视频免费观看| 欧美日本一区| 久久大片网站| 99久久综合国产精品二区| zzijzzij亚洲日本成熟少妇| 99热这里只有精品9| 亚洲影院久久精品| 亚洲天堂2024| 日韩综合在线视频| 中文字幕一区二区中文字幕| 久久久久亚洲精品中文字幕| 欧美精品久久久久a| 天天色天天操天天射| 色久综合一二码| 国产午夜精品理论片在线| 国产成人精品亚洲日本在线桃色 | 国产中文一区二区三区| avav在线播放| 妖精视频一区二区三区| 国产又爽又黄的激情精品视频| 在线观看中文字幕的网站| 日韩精品中文字幕在线播放| 久久精品视频2| 亚洲天天做日日做天天谢日日欢 | 欧美精品密入口播放| 国产精品18久久久久久麻辣| 成人午夜在线影视| 日韩精品极品毛片系列视频| 亚洲一区二区三区网站| 亚洲va天堂va国产va久| av电影在线不卡| 国产成人av一区二区三区在线观看| 欧美日韩在线中文| 自拍偷拍欧美| 欧美一区二区在线视频观看| 秋霞影院一区| 国产精品免费视频xxxx| а√天堂8资源在线| 日韩在线精品视频| 亚洲欧美日韩成人在线| 欧美一区二区三区免费在线看| 国产欧美日韩另类| 亚洲色图在线视频| x88av在线| 99久精品国产| 国产大学生av| 九九久久精品视频| 久久综合久久色| 国产精品乱看| 日韩在线观看a| 欧美第一精品| 免费亚洲精品视频| 嗯用力啊快一点好舒服小柔久久| 国产精品偷伦视频免费观看国产| 极品美鲍一区| 久久久久久久一区二区三区| 毛片在线看片| 中日韩美女免费视频网址在线观看 | 精品无人区乱码1区2区3区在线| www.久久久久久| 欧美日韩视频在线观看一区二区三区| 日韩欧美中文字幕一区二区| 亚洲精品视频在线看| 麻豆视频免费在线播放| 久久精品一区蜜桃臀影院| 人妻无码中文久久久久专区| 国产精品一区在线| 国产高清av片| 激情图片小说一区| www.久久91| 美女mm1313爽爽久久久蜜臀| 日韩一级在线免费观看| 久久国产66| 黑人糟蹋人妻hd中文字幕| 亚洲国产免费看| 日韩 欧美 视频| 激情欧美一区二区三区| 丁香六月激情网| 日韩午夜免费| koreanbj精品视频一区| 亚洲尤物影院| 精品视频一区二区在线| 亚洲在线播放| 免费在线观看毛片网站| 国产精品毛片在线看| 日本中文字幕网址| 亚洲激精日韩激精欧美精品| 成人性免费视频| 日韩一级不卡| 日韩毛片在线免费看| 日日夜夜一区二区| 天天爽人人爽夜夜爽| 美国毛片一区二区| 99999精品| 国产91精品一区二区麻豆网站| 日批视频免费看| 91在线视频官网| 精品无码国产污污污免费网站| 国产日产欧产精品推荐色| 欧美老女人性生活视频| 国产精品卡一卡二| 天堂网avav| 亚洲成人精品一区| 国产又大又黄又粗| 欧美三级日本三级少妇99| 国产精品人人妻人人爽| 精品久久久久久久一区二区蜜臀| 手机看片福利永久| 亚洲视屏在线播放| 亚洲精品天堂| 欧美中文字幕在线观看| 欧美成人福利| 国产精品国产一区二区| 国产成人高清| 公共露出暴露狂另类av| 99国产一区| 欧美午夜aaaaaa免费视频| 国产精品小仙女| 精品人妻互换一区二区三区| 国产精品麻豆欧美日韩ww| 久久亚洲av午夜福利精品一区| 欧美性少妇18aaaa视频| 国产一区二区麻豆| 国产美女永久免费无遮挡| 国产精品自拍区| 亚洲一卡二卡三卡| 亚洲麻豆视频| 九一精品久久久| 91在线视频播放| 久久久久亚洲AV成人| 欧美视频二区36p| 国产老女人乱淫免费| 日韩av网站电影| 伦xxxx在线| 热久久这里只有精品| 97精品资源在线观看| 精品视频导航| 中文乱码免费一区二区三区下载| 男女高潮又爽又黄又无遮挡| 九色综合国产一区二区三区| 国产男女猛烈无遮挡a片漫画| 成人免费在线视频| 老熟妇一区二区三区| 欧美精品一区二区精品网| 色哟哟免费在线观看| 91av视频在线观看| 亚洲91网站| 在线视频91| 日韩电影在线免费看| www.88av| 亚洲午夜一二三区视频| 97精品人妻一区二区三区| 亚洲人成五月天| 欧美a级在线观看| 国产精品一区二区三区精品| 欧美丰满日韩| 亚洲精品一二三四五区| 91在线免费视频观看| 国产午夜精品一区二区理论影院| 欧美精品 日韩| 91亚洲精选| 国产精品老女人视频| 亚州精品视频| 无码专区aaaaaa免费视频| 国产成人免费在线视频| www.5588.com毛片| 欧美三日本三级三级在线播放| 久草在线网址| 午夜精品美女自拍福到在线| 少妇精品在线| 一二三四中文字幕| 国产一区二区三区精品欧美日韩一区二区三区 | 91国产免费视频| 中文字幕久精品免费视频| 日韩精品影片| 欧美亚洲免费在线| 午夜在线观看免费一区| 制服丝袜第二页| 欧美视频在线观看 亚洲欧| 婷婷在线免费视频| 91国内产香蕉| 久久爱www成人| 天美星空大象mv在线观看视频| 91丨九色丨尤物| 男人天堂视频在线| 日韩中文理论片| 成人黄色理论片| 天堂а√在线中文在线| 成人免费av资源| 亚洲免费黄色网址| 亚洲深夜福利在线| 成人全视频免费观看在线看| 亚洲国产日韩美| 国产一区二区剧情av在线| 欧美成人手机视频| 亚洲国产欧美一区| 亚洲风情在线资源| 日本成人三级| 精品无码三级在线观看视频| 麻豆changesxxx国产| 精品免费日韩av| 一区二区电影免费观看| 日韩精品欧美在线| 国产精品中文欧美| 亚洲国产精品午夜在线观看| 日韩精品在线视频美女| 精品国产欧美日韩一区二区三区| 亚洲最大免费| 国产99久久久久久免费看农村| 91av在线免费视频| 一本色道久久综合狠狠躁篇怎么玩| 丁香久久综合| 久久综合久久久久| 久久久午夜电影| 国产又爽又黄又嫩又猛又粗| 欧美黑人性视频| 国产欧美日韩视频在线| 91免费视频污| 欧美日韩激情美女| 黄色在线免费网站| 精品蜜桃传媒| 精品制服美女久久| 中文字幕日韩一级| 色老头一区二区三区| 国产一区二区三区不卡av| 国产精品少妇在线视频| 亚洲男同1069视频| 国产永久av在线| 亚洲最大的av网站| 久久国产日本精品| 欧美色图一区二区| 一区二区三区视频免费在线观看| 欧美成年网站| 91av在线免费播放| 一区二区欧美国产|