摘要:前言沒(méi)有規(guī)矩不成方圓用替換來(lái)定義變量如果是常量,使用靜態(tài)字符串統(tǒng)一用單引號(hào)動(dòng)態(tài)拼接成的字符串統(tǒng)一用反引號(hào)使用數(shù)組成員對(duì)變量賦值時(shí),盡量用解構(gòu)賦值往對(duì)象里添加修改屬性時(shí),使用,而不用松散的語(yǔ)法面向?qū)ο蟮膶?xiě)法一律寫(xiě)成的形式,摒棄原生的的書(shū)寫(xiě)方法
前言
沒(méi)有規(guī)矩 不成方圓
用let替換var來(lái)定義變量. 如果是常量,使用const
靜態(tài)字符串統(tǒng)一用單引號(hào)"" , 動(dòng)態(tài)拼接成的字符串統(tǒng)一用反引號(hào)``
let staticString = "This is a static string"; let d = "dynamic"; let dynamicString = `This is a $dnkpnhlp string`;
使用數(shù)組成員對(duì)變量賦值時(shí),盡量用解構(gòu)賦值
let arr = [1,2,3,4]; let [arr1,arr2] = arr; //arr1 =1, arr2 = 2;
往對(duì)象里添加/修改屬性時(shí),使用Object.assign,而不用松散的.語(yǔ)法
const objectA = {}; Object.assign(objectA, { attr1: 3 }); //objectA{attr1:3}
面向?qū)ο蟮膶?xiě)法一律寫(xiě)成class的形式,摒棄原生的prototype的書(shū)寫(xiě)方法
class A{ constructor(){} prototypeFunA(){} static staticFunA(){} ... }
用extends實(shí)現(xiàn)單繼承, 摒棄原生的prototype鏈書(shū)寫(xiě)方法的繼承
class A{ constructor(){} prototypeFunA(){} static staticFunA(){} ... } class B extends A{ constructor(){ super(); } } let b = new B(); b.prototypeFunA(); B.staticFunA();
用mixin修飾器的方式可以多繼承(es5中可以用call來(lái)實(shí)現(xiàn)多繼承,不過(guò)call/apply方法都屬于奇技淫巧,不推薦使用了),實(shí)際上在js中多繼承的應(yīng)用場(chǎng)景并不多見(jiàn)
模塊的書(shū)寫(xiě), 類(lèi)似CommonJs規(guī)范. 暴露方法/屬性統(tǒng)一用export
//moduleA.js export let name = "Xie Min"; export function fun1(){xxx} export function fun1(){xxx} //或者這樣寫(xiě) //moduleA.js let name = "Xie Min"; function fun1(){xxx} function fun1(){xxx} export{ name, fun1, fun2, }
引用模塊統(tǒng)一用import,摒棄掉require . 這里特別注意,import模塊的時(shí)候路徑必須寫(xiě)成相對(duì)路徑的形式, 比如要寫(xiě)成 import {xx} from "./moduleA" 而不是 import {xx} from "moduleA"
//index.js import * as moduleA from "./moduleA"; moduleA.name; moduleA.fun1(); moduleA.fun2();結(jié)語(yǔ)
部分參考自 阮一峰《ECMAScript 6入門(mén)》
其他細(xì)節(jié)待補(bǔ)充
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/80212.html
摘要:前言沒(méi)有規(guī)矩不成方圓用替換來(lái)定義變量如果是常量,使用靜態(tài)字符串統(tǒng)一用單引號(hào)動(dòng)態(tài)拼接成的字符串統(tǒng)一用反引號(hào)使用數(shù)組成員對(duì)變量賦值時(shí),盡量用解構(gòu)賦值往對(duì)象里添加修改屬性時(shí),使用,而不用松散的語(yǔ)法面向?qū)ο蟮膶?xiě)法一律寫(xiě)成的形式,摒棄原生的的書(shū)寫(xiě)方法 前言 沒(méi)有規(guī)矩 不成方圓 用let替換var來(lái)定義變量. 如果是常量,使用const 靜態(tài)字符串統(tǒng)一用單引號(hào) , 動(dòng)態(tài)拼接成的字符串統(tǒng)一用反...
摘要:前言沒(méi)有規(guī)矩不成方圓用替換來(lái)定義變量如果是常量,使用靜態(tài)字符串統(tǒng)一用單引號(hào)動(dòng)態(tài)拼接成的字符串統(tǒng)一用反引號(hào)使用數(shù)組成員對(duì)變量賦值時(shí),盡量用解構(gòu)賦值往對(duì)象里添加修改屬性時(shí),使用,而不用松散的語(yǔ)法面向?qū)ο蟮膶?xiě)法一律寫(xiě)成的形式,摒棄原生的的書(shū)寫(xiě)方法 前言 沒(méi)有規(guī)矩 不成方圓 用let替換var來(lái)定義變量. 如果是常量,使用const 靜態(tài)字符串統(tǒng)一用單引號(hào) , 動(dòng)態(tài)拼接成的字符串統(tǒng)一用反...
摘要:任何數(shù)據(jù)結(jié)構(gòu)只要部署接口,就可以完成遍歷操作即依次處理該數(shù)據(jù)結(jié)構(gòu)的成員。的遍歷某個(gè)數(shù)據(jù)結(jié)構(gòu)過(guò)程是這樣的比如對(duì)進(jìn)行遍歷創(chuàng)建一個(gè)指針對(duì)象,指向當(dāng)前數(shù)組的起始位置。 Iterator 這真是毅種循環(huán) Iterator不是array,也不是set,不是map, 它不是一個(gè)實(shí)體,而是一種訪問(wèn)機(jī)制,是一個(gè)用來(lái)訪問(wèn)某個(gè)對(duì)象的接口規(guī)范,為各種不同的數(shù)據(jù)結(jié)構(gòu)提供統(tǒng)一的訪問(wèn)機(jī)制。任何數(shù)據(jù)結(jié)構(gòu)只要部署Ite...
摘要:任何數(shù)據(jù)結(jié)構(gòu)只要部署接口,就可以完成遍歷操作即依次處理該數(shù)據(jù)結(jié)構(gòu)的成員。的遍歷某個(gè)數(shù)據(jù)結(jié)構(gòu)過(guò)程是這樣的比如對(duì)進(jìn)行遍歷創(chuàng)建一個(gè)指針對(duì)象,指向當(dāng)前數(shù)組的起始位置。 Iterator 這真是毅種循環(huán) Iterator不是array,也不是set,不是map, 它不是一個(gè)實(shí)體,而是一種訪問(wèn)機(jī)制,是一個(gè)用來(lái)訪問(wèn)某個(gè)對(duì)象的接口規(guī)范,為各種不同的數(shù)據(jù)結(jié)構(gòu)提供統(tǒng)一的訪問(wèn)機(jī)制。任何數(shù)據(jù)結(jié)構(gòu)只要部署Ite...
閱讀 3562·2023-04-26 01:45
閱讀 2338·2021-11-23 09:51
閱讀 3751·2021-10-18 13:29
閱讀 3573·2021-09-07 10:12
閱讀 820·2021-08-27 16:24
閱讀 1899·2019-08-30 15:44
閱讀 2256·2019-08-30 15:43
閱讀 3127·2019-08-30 13:11