精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产成人精品福利| 日本特黄特色aaa大片免费| 欧美精品高清| 国产精品久久午夜| 91手机在线视频| 日本在线视频中文字幕| 日本午夜精品久久久| 欧美亚洲尤物久久| 青少年xxxxx性开放hg| 亚洲精品视频专区| 久久久久久穴| 中文字幕日韩在线播放| 中文字幕第10页| 色偷偷偷在线视频播放| 国产精品乱人伦中文| 亚洲字幕一区二区| 亚洲精品1区2区3区| 欧洲毛片在线视频免费观看| 欧美高清精品3d| 91丨porny丨探花| 日本中文字幕在线看| 成人av网站免费观看| 国产精品无av码在线观看| 久草视频在线免费看| 成人在线丰满少妇av| 日韩欧美成人激情| 色悠悠久久综合网| 乱人伦视频在线| 亚洲日本va午夜在线影院| 人偷久久久久久久偷女厕| 亚洲精品一区二区三区区别| 久久国产视频网| 日本视频久久久| 一级片免费网址| 国产精品av久久久久久麻豆网| 亚洲视频在线看| www.超碰97| 91成人噜噜噜在线播放| 91 com成人网| 亚洲小视频网站| 日本精品在线中文字幕| 欧美性生活大片免费观看网址| 欧美美女黄色网| 国产激情在线| 亚洲三级免费电影| 亚洲乱码国产乱码精品天美传媒| 三级毛片在线免费看| 成人的网站免费观看| 亚洲r级在线观看| 国产精品嫩草影院桃色| 美女性感视频久久| 国产精品美女在线观看| 中文字幕在线播| 久久久噜噜噜| 日韩av成人在线| 男人天堂2024| 免费看的黄色欧美网站| 91成人在线观看国产| 国产无遮挡aaa片爽爽| 好看不卡的中文字幕| www.午夜精品| 中文字幕av播放| 欧美国内亚洲| 欧美激情手机在线视频| 国产五月天婷婷| 中文亚洲字幕| 日韩av电影国产| 亚洲婷婷久久综合| 天堂av在线网| 精品视频亚洲| 精品亚洲一区二区三区| 亚洲av片不卡无码久久| 国产精品嫩模av在线| 在线播放国产精品| 五月天婷婷丁香网| 久久久久亚洲| 久久久久久久激情视频| 黄页网站免费观看| 亚洲免费成人| 国产激情综合五月久久| 在线观看中文字幕2021| 国产麻豆视频一区二区| 国产一区二区三区黄| 无码国产精品一区二区免费16| av不卡免费在线观看| 欧美久久在线| 日本中文字幕在线2020| 一区二区三区av电影 | av综合在线观看| 国产精品中文字幕欧美| 国产亚洲欧美另类一区二区三区| 婷婷亚洲一区二区三区| 欧美国产精品专区| 中文字幕色呦呦| sm久久捆绑调教精品一区| 日韩欧美一区二区三区| 国产一级片自拍| 亚洲国产欧美在线观看| 日韩精品一区二区视频| 成年人免费视频播放| 好吊一区二区三区| 日本一区二区在线播放| 国产成人精品无码高潮| 久久免费精品国产久精品久久久久 | www.久久热| 精品国产免费人成在线观看| 亚洲精品成人无码| 亚洲精品va| 日本精品久久久久影院| a视频免费在线观看| av不卡在线播放| 一本一道久久a久久综合精品 | 性欧美极品xxxx欧美一区二区| 999精品视频在线观看| 日韩av中文字幕在线免费观看| 在线观看免费黄色网址| 一区在线视频观看| 国产精品私拍pans大尺度在线 | 成人爽a毛片一区二区免费| 日本一区二区三不卡| 日本h片在线观看| 欧美视频一区二区三区在线观看| 日韩精品一区二区三区高清免费| 四虎成人精品永久免费av九九| 午夜精品视频网站| 国产乱淫a∨片免费观看| 久久久国际精品| 欧美高清中文字幕| 日韩美女在线| 一区二区三区美女xx视频| 久久久久久久黄色片| 国产一区二区成人久久免费影院| 台湾成人av| 另类激情视频| 亚洲国产一区自拍| 欧美精品一区二区蜜桃| 韩国av一区二区| 亚洲国产精品一区二区第一页| 乱馆动漫1~6集在线观看| 精品国产第一区二区三区观看体验| 无码黑人精品一区二区| 老司机免费视频一区二区 | 66视频精品| 国产精品无码专区在线观看| 国产三级在线观看| 精品欧美激情精品一区| 免费黄色av网址| 欧美+亚洲+精品+三区| 成人午夜小视频| 韩国av网站在线| 欧美顶级少妇做爰| 一区二区三区在线播放视频| 免费在线观看视频一区| 日韩视频在线播放| 日韩毛片一区| 中文字幕欧美日韩va免费视频| 中文字幕人妻一区二区在线视频| 日本一区二区成人在线| 少妇一级淫免费放| 日韩理论在线| 成人情趣片在线观看免费| 麻豆传媒在线免费看| 91精品国产麻豆| 538精品在线观看| 国产高清成人在线| 97超碰国产精品| 噜噜噜天天躁狠狠躁夜夜精品| 97在线免费观看视频| 涩爱av在线播放一区二区| 色琪琪一区二区三区亚洲区| 国产一区二区三区精品在线| 日本va欧美va精品| 成年人免费观看的视频| 韩国三级成人在线| 久久久久久久国产精品视频| 欧美xxx.com| 欧美私模裸体表演在线观看| 91高清免费看| 白白色 亚洲乱淫| 日本在线视频www| 91麻豆精品国产91久久久平台| 亚洲xxxx在线| 欧美男男tv网站在线播放| 国产亚洲xxx| av av片在线看| 亚洲成av人片在线观看| 日韩中文字幕电影| 美美哒免费高清在线观看视频一区二区 | 国产欧美精品xxxx另类| av香蕉成人| 精品在线欧美视频| 亚洲无码精品国产| 亚洲成a人v欧美综合天堂下载 | 日韩精品成人av| 精品成a人在线观看| 中文字幕免费观看| 亚洲欧美偷拍卡通变态| 97香蕉碰碰人妻国产欧美| 青青国产91久久久久久| 免费日韩在线观看| 九一国产精品| av在线不卡一区| 成人在线网站| 欧美激情一级欧美精品| 阿v免费在线观看| 精品国产乱码久久久久久浪潮| 国产午夜无码视频在线观看| 玉米视频成人免费看| 亚洲 小说 欧美 激情 另类| 国产精品一二三四五| 亚洲色精品三区二区一区| 欧美福利视频| 天堂精品一区二区三区| 久久精品论坛| 成人亚洲激情网| 校园春色亚洲色图| 高清欧美性猛交xxxx| 一区二区三区视频网站| 精品视频久久久久久久| xxxx18国产| 欧美三片在线视频观看 | 亚洲福利国产| 最新视频 - x88av| 国产区精品区| 国产视频99| 日日夜夜精品视频| 国产在线拍偷自揄拍精品| 中文字幕在线看片| 欧美极品在线播放| 黄在线免费观看| 在线精品视频视频中文字幕| 外国精品视频在线观看| 精品久久99ma| www.成人免费视频| 91麻豆精品国产综合久久久久久| 一级特黄免费视频| 狠狠躁夜夜躁人人躁婷婷91 | 免费看污片的网站| aaa亚洲精品| 日本精品一二三| 国产久卡久卡久卡久卡视频精品| 人人干人人干人人| 日韩av一二三| 日本成年人网址| 国产欧美日韩综合一区在线播放| 国产欧美日韩小视频| 午夜精品影院| 欧美另类videos| 亚洲精品网址| 亚洲成人动漫在线| 久久久久久久久99精品大| 在线观看日本一区| 日韩中文欧美| 中文字幕欧美人与畜| 91精品综合久久久久久久久久久| 亚洲v欧美v另类v综合v日韩v| 国产一区二区三区91| 日韩一区国产在线观看| 日韩成人三级| 中文字幕第一页亚洲| 欧美在线免费| www.国产在线视频| 国产精品女主播一区二区三区| 欧美亚洲精品一区二区| 久久久久中文| 国产精品一区二区小说| 国内精品自线一区二区三区视频| www激情五月| 国产mv日韩mv欧美| 国产精品福利导航| 久久久精品免费免费| 老头老太做爰xxx视频| 国产精品国产三级国产普通话三级 | 深爱五月激情五月| 日韩大陆毛片av| 国产高清免费在线播放| 日韩一区二区欧美| av片哪里在线观看| 国精产品一区一区三区有限在线| 热三久草你在线| 国产欧美精品一区二区三区-老狼| 成人在线精品| 久精品国产欧美| 精品香蕉视频| 日韩视频 中文字幕| 日韩亚洲国产精品| 一区二区三区入口| 国产黄人亚洲片| 制服丝袜第二页| 亚洲欧洲日韩av| 国产五月天婷婷| 欧美三级中文字幕在线观看| 亚洲女人18毛片水真多| 亚洲欧美激情精品一区二区| 国产盗摄在线观看| 4438全国亚洲精品在线观看视频| 国产91欧美| 国产麻豆乱码精品一区二区三区| 真实原创一区二区影院| 亚洲最新免费视频| 国产精品亚洲欧美| 亚洲免费999| 99视频在线精品| 日本午夜在线观看| 色美美综合视频| 亚洲黄色小说网址| 在线日韩中文字幕| 国产夫妻在线播放| 成人精品久久一区二区三区| 网红女主播少妇精品视频| 国产成人精品免费看在线播放| 亚洲一区网站| 色欲欲www成人网站| 国产色一区二区| 日韩免费不卡视频| 7777精品伊人久久久大香线蕉 | 日韩有码在线观看| 无遮挡爽大片在线观看视频| 91亚洲永久免费精品| 精品国产美女| 欧美极品欧美精品欧美| 国产suv精品一区二区883| 成人18视频免费69| 欧美综合久久久| 午夜在线观看视频18| 欧美日韩国产91| av在线国产精品| 亚洲国产精品一区在线观看不卡 | 日本一二三区在线视频| 色综合色综合久久综合频道88| 久久青草免费| 久久综合九色欧美狠狠| 亚洲第一网站| 永久免费未满蜜桃| 一区二区三区国产| a级片在线免费看| 欧美wwwxxxx| 国产美女视频一区二区| 在线看成人av电影| 蜜乳av一区二区| 亚洲不卡的av| 欧美色网一区二区| av大全在线免费看| 国产精品成人v| 国产在线日韩精品| 99视频免费播放| 国产片一区二区三区| 一级黄色av片| 在线电影av不卡网址| av一区在线播放| 视频一区免费观看| 免费观看久久久4p| 色偷偷男人天堂| 欧美理论电影在线| 黄网站在线播放| 99re视频| 亚洲精品看片| 野花社区视频在线观看| 欧美性xxxx| 国产福利电影在线| 国产欧美久久一区二区| 93在线视频精品免费观看| 久久久久久久久久毛片| 亚洲免费伊人电影| 亚洲精品久久久久久久久久久久久久| 欧美高清视频免费观看| 伦理一区二区三区| 97视频在线免费播放| 国产校园另类小说区| 在线观看免费视频一区| 欧美精品一区在线播放| 波多野结衣一区二区三区免费视频| www.成年人视频| 久久这里只有精品视频网| 精品一区二三区| 日韩视频亚洲视频| av成人app永久免费| 男人操女人逼免费视频| 国产视频在线观看一区二区三区 | videos性欧美另类高清| 午夜视频久久久| 国产精品一区一区三区| 久久久久无码精品国产| 国产婷婷97碰碰久久人人蜜臀| 成人精品国产亚洲| 亚洲精品偷拍视频| 91免费在线视频观看| 91麻豆成人精品国产| 欧美激情一区二区三区高清视频 | 成人免费看黄yyy456| 四虎成人永久免费视频| 揄拍成人国产精品视频| 香蕉成人app| 日韩在线xxx| 亚洲精品国产一区二区三区四区在线| 少妇精品高潮欲妇又嫩中文字幕| 国产精品xxxxx| 欧美三区视频| 夫妇露脸对白88av| 亚洲国产成人精品久久久国产成人一区|