更新時間:2018年12月19日15時29分 來源:傳智播客 瀏覽次數(shù):
1
|
var a=1; // 錯誤:"var"定義的"常量"是可變的,在聲明一個常量時,該常量在整個程序中都應(yīng)該是不可變的。 |
1
|
const a=1 |
1
2
|
let lastName = fullName[1]; // 錯誤:如果fullName=[],那么fullName[1]=undefined let propertyValue = Object.attr; // 錯誤:如果Object={},那么Object.attr=undefined |
1
2
|
let lastName = fullName[1] || '' let propertyValue=Object.attr||0 |
1
2
3
4
5
6
|
const address = 'One Infinite Loop, Cupertino 95014' ; const cityZipCodeRegex = /^[^,\\]+[,\\\s]+(.+?)\s*(\d{5})?$/; saveCityZipCode( address.match(cityZipCodeRegex)[1], // 錯誤:1.address.match(cityZipCodeRegex)可能為null,那當前這種寫法就會報錯 address.match(cityZipCodeRegex)[2], // 錯誤:2.不知道這條數(shù)據(jù)是什么意思 ); |
1
2
3
4
|
const address = 'One Infinite Loop, Cupertino 95014' ; const cityZipCodeRegex = /^[^,\\]+[,\\\s]+(.+?)\s*(\d{5})?$/; const [, city, zipCode] = address.match(cityZipCodeRegex) || []; saveCityZipCode(city, zipCode); |
1
2
3
4
5
6
7
|
var result=[] var a=[1,2,3,4,5,6] for (i = 1; i <= 10; i++) { if (a[i]>4){ result.push(a[i]) } } |
1
2
|
var a=[1,2,3,4,5,6] const result = a.filter(item => item> 4); |
1
2
3
4
5
6
7
8
9
|
if (a === 1) { ... } else if (a ===2) { ... } else if (a === 3) { ... } else { ... } |
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
|
switch (a) { case 1: .... case 2: .... case 3: .... default : .... } Or let handler = { 1: () => {....}, 2: () => {....}. 3: () => {....}, default : () => {....} } handler[a]() || handler[ 'default' ]() |
1
2
3
4
|
const imgType= 'jpg' if (imgType=== 'jpg' ||imgType=== 'png' ||imgType=== 'gif' ){ console.log( 'hello image' ) } |
1
2
3
4
|
const imgType= 'jpg' if (imgType.match(/.*?(gif|png|jpg)/gi)){ console.log( 'hello image' ) } |
1
2
3
|
function method() { console.log( 'hello' ) } |
1
2
3
4
|
let method=()=> { console.log( 'hello' ) } method(); // hello |
1
|
var message = 'Hello ' + name + ', it\'s ' + time + ' now' //錯誤:采用傳統(tǒng)加號,看著很冗余 |
1
|
var message = `Hello ${name}, it's ${time} now` |
1
2
3
4
5
6
7
|
var user = { name: 'dys' , age: 1 }; var name = user.name; var age = user.age; var fullName = [ 'jackie' , 'willen' ]; var firstName = fullName[0]; var lastName = fullName[1]; |
1
2
3
4
5
|
const user = {name: 'dys' , age:1}; const {name, age} = user; // 當需要被賦值的字段和對象中定義的字段相同時,就可以使用這種方法,相當于const name=user.name var fullName = [ 'jackie' , 'willen' ]; const [firstName, lastName] = fullName; |
1
2
3
|
for (let i=0;i<list.length;i++){ console.log(list[i]) } |
1
2
3
|
for (let i of list){ console.log(i) } |
01
02
03
04
05
06
07
08
09
10
11
12
|
const object={a:1,b:2,c:3} for (let i in object){ console.log(i); //a,b,c } const array=[1,2,3] for (let i of array){ console.log(i); // 1,2,3 } for (let i in array){ console.log(i); // 0,1,2 } |
01
02
03
04
05
06
07
08
09
10
11
12
13
|
// 定義類class point{ constructor(x,y){ this.x=x; this.y=y; } toString(){ return `${this.x},${this.y}` }}var p=new point(1,2)p.toString() // 1,2// 繼承類 class mainPoint extends point { constructor(x, y, z) { super (x, y); this .z = z; } toString() { return this .z + ' ' + super .toString(); } } var mainpoint= new point(1,2,3) mainpoint.toString() // 3 1,2 |
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
{ parser: 'babel-eslint' , extends: [ 'airbnb' , 'plugin:react/recommended' , 'prettier' , 'prettier/react' ], plugins: [ 'react' , 'prettier' ], rules: { // prettier 配置用于自動化格式代碼 'prettier/prettier' : [ 'error' , { singleQuote: true , semi: false , trailingComma: 'all' , bracketSpacing: true , jsxBracketSameLine: true , }, ], // 一個函數(shù)的復(fù)雜性不超過 10,所有分支、循環(huán)、回調(diào)加在一起,在一個函數(shù)里不超過 10 個 complexity: [2, 10], // 一個函數(shù)的嵌套不能超過 4 層,多個 for 循環(huán),深層的 if-else,這些都是罪惡之源 'max-depth' : [2, 4], // 一個函數(shù)最多有 3 層 callback,使用 async/await 'max-nested-callbacks' : [2, 3], // 一個函數(shù)最多 5 個參數(shù)。參數(shù)太多的函數(shù),意味著函數(shù)功能過于復(fù)雜,請拆分 'max-params' : [2, 5], // 一個函數(shù)最多有 50 行代碼,如果超過了,請拆分之,或者精簡之 'max-statements' : [2, 50], |
作者:傳智播客前端與移動開發(fā)培訓(xùn)學(xué)院
首發(fā): http://web.itcast.cn