摘要:的簡(jiǎn)稱(chēng)是于年月正式發(fā)布的語(yǔ)言的標(biāo)準(zhǔn)報(bào)錯(cuò)報(bào)錯(cuò)報(bào)錯(cuò)可以重復(fù)定義并無(wú)塊級(jí)作用域,不能重復(fù)定義有塊級(jí)作用域,定義常量賦值報(bào)錯(cuò)在解構(gòu)賦值過(guò)程總,必須左右結(jié)構(gòu)相同箭頭函數(shù)中的普通函數(shù)箭頭函數(shù)方便以后多次調(diào)用箭頭函數(shù)中當(dāng)參數(shù)只有一個(gè)的時(shí)候可以省略括號(hào),當(dāng)
ES6(ECMAScript 6的簡(jiǎn)稱(chēng)),是于2015年6月正式發(fā)布的JavaScript語(yǔ)言的標(biāo)準(zhǔn)
let/const//var var a=1; var a=5; if(a>4){ var b=10; } console.log(b); //10 //let let a=1; let a=5; //報(bào)錯(cuò):dentifier "a" has already been declared let a=5; if(a>4){ let b=10; } console.log(b); //報(bào)錯(cuò):b is not defined //const const a=1; a=5; //報(bào)錯(cuò):Assignment to constant variable.
var可以重復(fù)定義并無(wú)塊級(jí)作用域,let不能重復(fù)定義有塊級(jí)作用域,const定義常量
賦值let list=[1,2,3] let [a,b,c]=list console.log(a,b,c) //1 2 3 let dict={name:"jim",age:21} let {name,age}=dict console.log(name,age) //jim 21 let dict={name:"jim",age:21} let [name,age]=dict //報(bào)錯(cuò):dict is not iterable
在解構(gòu)賦值過(guò)程總,必須左右結(jié)構(gòu)相同
箭頭函數(shù)(python中的lambda)
#普通函數(shù) function fn(arg1,arg2){ return arg1+arg2 } #箭頭函數(shù) (arg1,arg2)=>arg1+arg2 var fn=(arg1,arg2)=>arg1+arg2 //方便以后多次調(diào)用
箭頭函數(shù)中當(dāng)參數(shù)只有一個(gè)的時(shí)候可以省略括號(hào),當(dāng)無(wú)參數(shù)時(shí)必須寫(xiě)一對(duì)小括號(hào),當(dāng)函數(shù)體只有一句時(shí)可以省略大括號(hào),且語(yǔ)句默認(rèn)就是返回值,不需要寫(xiě)return
for in/of#js中的in只能用來(lái)遍歷下表,這是一個(gè)很大的痛點(diǎn),所以of的出現(xiàn)本人非常的喜歡 let iterator=[0,2,4,6,8,16,32,64] for i in iterator: console.log(i) //0,1,2,3,4,5,6,7 for i of iterator: console.log(i) //0,2,4,6,8,16,32,64默認(rèn)參數(shù)
//之前 function fn(arg1,arg2){ let x=arg1 || 5; let y=arg2 || 6; return x+y } console.log(fn) //11 //es6 function fn(arg1=5,arg2=6){ return arg1+arg2 } console.log(fn) //11 let list=[1,2,3,4,5,6] function fn(arg1,arg2,...args){ console.log(arg1,arg2,args) } fn(...list) //1 2 Array(4) Array(4)表示為[3,4,5,6]
這種寫(xiě)法更直觀清晰,且介紹內(nèi)部的邏輯代碼,和python寫(xiě)法很類(lèi)似
數(shù)組let list = [1, 2, 3, 4, 5, 6] //map let new_list=list.map((arg)=>{ //每個(gè)元素將作為參數(shù)依此傳入 if(arg>4){ return true }else{ return false } }) console.log(new_list) //[false, false, false, false, true, true] //reduce let list = [1, 2, 3, 4, 5, 6] let new_list=list.reduce((sum,arg)=>{ //第一次將前兩個(gè)參數(shù)傳入,接下來(lái)將結(jié)果作為第一個(gè)參數(shù),其他list元素以此傳入 return sum+arg }) console.log(new_list) //21 //filter let new_list=list.filter((arg)=>{ if(arg>4){ return true //根據(jù)返回的布爾值判斷是否放入新list } }) console.log(new_list) //[5,6] //forEach let new_list=list.map((arg)=>{ //每個(gè)元素將作為參數(shù)依此傳入 return arg }) console.log(new_list) //[1, 2, 3, 4, 5]
這和python中的map,reduce,filter高階函數(shù)作用幾乎相同,只不過(guò)在js中只作為了數(shù)組的方法,而python中是沒(méi)有forEach方法的,原因可能是map可以達(dá)到作用吧,在我看來(lái)是這個(gè)樣子,如有不同,請(qǐng)告知本寶寶,哈哈。
對(duì)象let name="jim" let age=21 let obj={ name:name, age:age, show:function(){ console.log(name,age) } } obj.show() //jim 21 console.log(obj) //{name: "jim", age: 21, show: ?} //以上可以簡(jiǎn)化為 let obj={ name, age, show(){ console.log(name,age) } }
同名的key和value我們可以省略成只寫(xiě)一個(gè),對(duì)于函數(shù)我們可以省略function
字符串let str="http://www.jim.com/index.html" //不存在,瞎寫(xiě)的 //startsWith判斷是否以某字符串開(kāi)始 if (str.startsWith("http://")){ console.log("這是一個(gè)http的地址") //這是一個(gè)http的地址 } //endsWith判斷是否以某后綴結(jié)束 if (str.endsWith(".html")){ console.log("這是一個(gè)html文件") //這是一個(gè)html文件 }
很多語(yǔ)言的字符串都有這種判斷方法,現(xiàn)在的javascript也在不斷的完善,666
面向?qū)ο?/b>//以前 function Person(name,age){ this.name=name; this.age=age; } Person.prototype.show=function(){ //當(dāng)然也可以在Person函數(shù)內(nèi)部定義,若使用箭頭函數(shù),則函數(shù)將失去效果,this指向了window對(duì)象 this.show=function(){ 函數(shù)體 } console.log(this.name,this.age) } let p=new Person("jim","21"); p.show() //jim 21 function Chil(name,age,role){ Person.call(this) this.name=name this.age=age //可以直接將參數(shù)寫(xiě)入call函數(shù)內(nèi) this.role=role } Chil.prototype.show=Person.prototype.show 不寫(xiě)的話用不到show函數(shù),當(dāng)然這只是一種方式 let c=new Chil("han","23","student") c.show() //es6 class Person{ constructor(name,age){ this.name=name this.age=age } show(){ console.log(this.name,this.age) } } let p=new Person("jim",23) p.show() //jim 23 class Chil extends Person{ constructor(name,age,role){ super(name,age) this.role=role } } let c=new Chil("han","23","student") c.show() han 23
使用class來(lái)定義類(lèi),constructor定義構(gòu)造函數(shù)super實(shí)現(xiàn)對(duì)基類(lèi)構(gòu)造的調(diào)用,還有extends的繼承,都借鑒了java等語(yǔ)言,使js語(yǔ)法變得更易讀,易編寫(xiě)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/53460.html
摘要:更新了個(gè)版本,最新正式版是語(yǔ)言的下一代標(biāo)準(zhǔn),早已在年月正式發(fā)布?;静恢С忠苿?dòng)端瀏覽器對(duì)的支持情況版起便可以支持的新特性。比較通用的工具方案有,,,等。 1、ECMAScript是什么? 和 JavaScript 有著怎樣的關(guān)系? 1996 年 11 月,Netscape 創(chuàng)造了javascript并將其提交給了標(biāo)準(zhǔn)化組織 ECMA,次年,ECMA 發(fā)布 262 號(hào)標(biāo)準(zhǔn)文件(ECMA-...
摘要:的翻譯文檔由的維護(hù)很多人說(shuō),阮老師已經(jīng)有一本關(guān)于的書(shū)了入門(mén),覺(jué)得看看這本書(shū)就足夠了。前端的異步解決方案之和異步編程模式在前端開(kāi)發(fā)過(guò)程中,顯得越來(lái)越重要。為了讓編程更美好,我們就需要引入來(lái)降低異步編程的復(fù)雜性。 JavaScript Promise 迷你書(shū)(中文版) 超詳細(xì)介紹promise的gitbook,看完再不會(huì)promise...... 本書(shū)的目的是以目前還在制定中的ECMASc...
摘要:昨天向大家介紹了的一部分新語(yǔ)法,今天我將把剩下我所知道的新語(yǔ)法都寫(xiě)到這里插值表達(dá)式之前多行字符串我是寫(xiě)多行字符串會(huì)語(yǔ)法報(bào)錯(cuò)我是正確,并能按格式輸出這個(gè)書(shū)寫(xiě)方式很像的三引號(hào),不知道小伙伴們想起來(lái)了沒(méi)。 昨天向大家介紹了ES6的一部分新語(yǔ)法,今天我將把剩下我所知道的新語(yǔ)法都寫(xiě)到這里 插值表達(dá)式 //之前 var name=jim var age=23 var say=name:+name...
摘要:語(yǔ)法校驗(yàn)會(huì)給出警告當(dāng)你仍在使用或不通過(guò)任何關(guān)鍵字聲明變量時(shí)。但是如果腳本中還有其他的普通導(dǎo)出,就會(huì)得到非常奇怪的結(jié)果這個(gè)坑爹的情況目前還沒(méi)有任何好的解決方案。 我在多年前愛(ài)上了coffeScript。對(duì)于javaScript,我一直保持著深沉的愛(ài),也十分高興得看到node.js的快速發(fā)展,但是作為一個(gè)有python背景的程序員,我更喜歡coffeeScript的簡(jiǎn)練語(yǔ)法。 在任何一個(gè)活...
摘要:但是在中,可以通過(guò)關(guān)鍵字來(lái)實(shí)現(xiàn)類(lèi)的繼承的使用可以使得繼承意義更加明確并且值得一提的是,如果你使用來(lái)定義的組件,那么可以在類(lèi)的構(gòu)造器里面,用簡(jiǎn)單的的聲明方式來(lái)替代方法。 原文:The 10 min ES6 course for the beginner React Developer譯者:Jim Xiao 著名的80/20定律可以用來(lái)解釋React和ES6的關(guān)系。因?yàn)镋S6增加了超過(guò)75...
閱讀 1830·2021-10-20 13:49
閱讀 1370·2019-08-30 15:52
閱讀 2875·2019-08-29 16:37
閱讀 1045·2019-08-29 10:55
閱讀 3079·2019-08-26 12:14
閱讀 1658·2019-08-23 17:06
閱讀 3241·2019-08-23 16:59
閱讀 2551·2019-08-23 15:42