摘要:的一些知識點前言標準的一些區別塊級作用域全局作用域函數作用域全局作用域函數作用域變量提升的問題例子塊級作用域例如在一個函數,循環。。。
es6的一些知識點
前言:es6(ECMAscript2015)標準
let、const 塊級作用域、全局作用域、函數作用域
var 全局作用域、函數作用域
變量提升的問題: var : true let、const : false
例子:
console.log(a);//undefind let a=1;
塊級作用域:例如在一個函數,for循環。。。區塊之內!
const 常量,值不可更改。
let、var 變量,值可以更改
消除Javascript語法的一些不合理、不嚴謹之處,減少一些怪異行為;
消除代碼運行的一些不安全之處,保證代碼運行的安全;
提高編譯器效率,增加運行速度;
為未來新版本的Javascript做好鋪墊。
"嚴格模式"體現了Javascript更合理、更安全、更嚴謹的發展方向,包括IE 10在內的主流瀏覽器,都已經支持它,許多大項目已經開始全面擁抱它。
“use strict”
規定了一種新的string方法可用 `` 斜引號來創建字符串的代碼塊
綁定變量用${}來綁定。
let name="xiaosan"; let age=22; let home="china" let str1=`she"s name ${name}, she age ${age}, she homes"s ${home}` alert(str1)
字符串內可直接換行
let str1=`she"s name ${name}, she age ${age}, she homes"s ${home}` alert(str1)
標簽模板字符串。
function tag(strings,...args){ //...擴展運算符 //console.log(strings); //console.log(args); let str=""; for(var i=0,l=strings.length-1;i增強的對象字面量(自變量)
對象屬性能夠簡寫;
對象方法可以簡寫function關鍵字
let name="張三"; let age=22; let zhangshan={ name, age, runing(){ console.log("我會跑") } }對象屬性名可以書寫自動計算形式
原型繼承__proto__
let people={ eat(){ console.log("我會吃") }, speak(){ console.log("我會說話") }, feeling(){ console.log("我有感情") } } let caowei={ name:name, __proto__:people,//設置對象原型,用來繼承 study(){ console.log("I have sutying ok!") } } console.log("my name"s"+caowei.name) caowei.study(); caowei.eat(); caowei.speak(); caowei.feeling(); console.log(caowei)解構賦值
es6允許我們按照一定結構提取數組與對象里的值,賦給變量
函數的解構賦值
說的明白一點解構賦值它的類型就是數組跟對象
例子//數組 let [a,,c]=[1,2,3]; console.log(a,c) //對象 let obj={ x:1, y:2 } let {x,y}=obj console.log(x,y)//1 2 //函數操作 //函數傳對象 function fn(person){ let name=person.name; let age =person.age; console.log(name,age) } let aa={name:"xiaosan",age:18} fn(aa)*/ /* function fn({uname:name,age,sex="女人"}){ console.log(name,age,sex) } let bb={uname:"xiaosan",age:18} fn(bb)*/ //es5 函數傳數組 /*function fn(Arr){ let x=Arr[0]; let y=Arr[1]; let z=Arr[2]; console.log(x,y,z) }*/ /*function fn([x,y,z,d=22]){ console.log(x,y,z,d) } let arr=[9,5,8] fn(arr) //字符串解構賦值 let str="123456"; let [a,b,c,d,e,f,g=50]=str; console.log(a,b,c,d,e,f,g)擴展運算符
擴展運算符用三個點號表示,功能是把數組或類數組對象展開成一系列用逗號隔開的值
操作數組操作對象(自變量對象ps:兼容問題)//展開數組 let arr=[1,2,3] let arr2=arr; // console.log(arr2); document.write(arr2) //1,2,3 let arr3=[...arr] //也可以看做是拷貝 console.log(arr3)//( 3) [1 2 3] //展開對象 let obj={ name:"zhangsan", age:19, } let obj1={ ...obj, sex:"man" } console.log(obj1) //報錯 現在瀏覽器不支持但是方法確實可行可以采用babel編譯一下使用 //展開函數 function myFunction(x, y, z) { console.log(x,y,z)//0 1 2 } var args = [0, 1, 2]; myFunction(...args); function myFunc(a, b, ...rest) { console.log(rest.length);//3 } myFunc(1,2,3,4,5); // => 3 function myFunction(x, y, z,...l) { console.log(x,y,z,l)//0 1 2 } var args = [0, 1, 2,4,5,6];//0 1 2 (3) [4,5,6] myFunction(...args); //數組 與 擴展運算符結合 let c = ["abc",11,12] let a = [1, 3, 4, 5,c], b = [...a, 6, 7, 8, 9] // b=a; console.log(b)//(8) [1,2,3,4,5,6,7,8,9];箭頭函數=>
ES6允許使用“箭頭”(=>)定義函數
var f = v => v上邊的函數可以書寫為
var f = function(v) { return v; };如果箭頭函數不需要參數或需要多個參數,就使用一個圓括號代表參數部分。
var f = () => 5; // 等同于 var f = function () { return 5 }; var sum = (num1, num2) => num1 + num2; // 等同于 var sum = function(num1, num2) { return num1 + num2; };如果箭頭函數的代碼塊部分多于一條語句,就要使用大括號將它們括起來,并且使用return語句返回。
var sum = (num1, num2) => { return num1 + num2; }由于大括號被解釋為代碼塊,所以如果箭頭函數直接返回一個對象,必須在對象外面加上括號。
var getTempItem = id => ({ id: id, name: "Temp" });箭頭函數可以與變量解構結合使用。
const full = ({ first, last }) => first + " " + last; // 等同于 function full(person) { return person.first + " " + person.last; }默認參數,剩余參數,擴展參數
參數的默認參數,剩余參數,拓展參數
//默認參數 let sayHello=(name,age=25)=>{ let str=`my name"s ${name},age"s ${age} old` //console.log(name,age) console.log(str)//my name"s chenxu,age"s 25 old } sayHello("chenxu") //擴展參數 let sum=(a,b,c)=>{ console.log(a,b,c) } let arr=[4,5] //擴展 sum(1,...arr) //剩余參數 let sum1=(a,b,...c)=>{ console.log(c); console.log(a,b) > 引用文字 ; //剩余 } sum1(1,2,3,4,5,7,9) */ let sum2=(a,b,...c)=>{ console.log(c); var result=c.reduce((a,b)=>a+b); console.log(result); console.log(a,b); } sum2(1,2,3,4,5,7,9)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/87113.html
摘要:的翻譯文檔由的維護很多人說,阮老師已經有一本關于的書了入門,覺得看看這本書就足夠了。前端的異步解決方案之和異步編程模式在前端開發過程中,顯得越來越重要。為了讓編程更美好,我們就需要引入來降低異步編程的復雜性。 JavaScript Promise 迷你書(中文版) 超詳細介紹promise的gitbook,看完再不會promise...... 本書的目的是以目前還在制定中的ECMASc...
摘要:結合工作中使用情況,簡單對進行一些復習總結,包括常用的語法,等,以及短時間內要上手需要重點學習的知識點不同工作環境可能有一些差別,主要參考鏈接是阮一峰的博客以及外文博客阮老師大部分文章是直接翻譯的這個博客簡介先說一下,是一個標準化組織,他們 結合工作中使用情況,簡單對es6進行一些復習總結,包括常用的語法,api等,以及短時間內要上手需要重點學習的知識點(不同工作環境可能有一些差別),...
摘要:常用知識總結之前總結了中的一些知識點。在年正式發布了,簡稱,又稱為。作為構造函數的語法糖,同時有屬性和屬性,因此同時存在兩條繼承鏈。子類的屬性,表示構造函數的繼承,總是指向父類。 ES6常用知識總結 之前總結了es5中js的一些知識點。這段時間看了石川blue老師講解的es6課程,結合阮一峰老師的es6教程,隨手做了一些筆記和總結分享給大家。內容還是es6主要的知識點,基本沒有什么創新...
摘要:常用知識總結之前總結了中的一些知識點。在年正式發布了,簡稱,又稱為。作為構造函數的語法糖,同時有屬性和屬性,因此同時存在兩條繼承鏈。子類的屬性,表示構造函數的繼承,總是指向父類。 ES6常用知識總結 之前總結了es5中js的一些知識點。這段時間看了石川blue老師講解的es6課程,結合阮一峰老師的es6教程,隨手做了一些筆記和總結分享給大家。內容還是es6主要的知識點,基本沒有什么創新...
閱讀 1882·2021-11-11 16:55
閱讀 2064·2021-10-08 10:13
閱讀 739·2019-08-30 11:01
閱讀 2155·2019-08-29 13:19
閱讀 3277·2019-08-28 18:18
閱讀 2620·2019-08-26 13:26
閱讀 579·2019-08-26 11:40
閱讀 1864·2019-08-23 17:17