學習記錄(ECMAScript 6.0入門_day01重點總結)

課程目標

一、ECMAScript6和JAVAScript關係html

ES6是JAVAScript的規格,JavaScript是ES6的一種實現。es6

變量聲明:

局部變量:letajax

它的用法相似於var,可是所聲明的變量,只在let命令所在的代碼塊內有效。編程

全局變量:var數組

常量聲明:

常量:const異步

const聲明一個只讀的常量。一旦聲明,常量的值就不能改變異步編程

四、ES6定義變量的特色函數

描述:學習

變量提高:在區域內部定義的變量,在區域外部可使用,即變量能夠在聲明以前使用,值爲undefinedthis

暫時性死區:只要塊級做用域內存在let命令,它所在的變量就綁定了這個區域;再也不受外部的影響。

五、解構的基本語法

ES6容許按照必定模式,從數組和對象中提取值,對變量進行賦值,這被稱爲解構

var{變量,變量2}=對象;

例:var user={

             username:"jack",

             password:"1234",

             age:"18"

}
jack---18

六、函數參數名默認基本語法是?

function xx(a=默認值){

}


//y參數設置默認值
 function log(x, y = 'World') {
    console.log(x, y);
}

log('Hello') // Hello World
log('Hello', 'China') // Hello China
log('Hello', '') // Hello

七、箭頭函數完整語法

var 函數名=(參數1,參數2,...)=>{

}

八、箭頭函數this指向?

this老是指向外層調用者對象。

九、模版字符串的基本語法?

var str=`html任意內容`;

第一個用途,基本的字符串格式化。將表達式嵌入字符串中進行拼接。用${}來界定

const name'lux'
console.log(`hello ${name}`)//hello lux

第二個用途,在ES5時咱們經過反斜槓()來作多行字符串或者字符串一行行拼接。ES6反引號(``)直接搞定。

//es5
var msg="Hi \ man!"
//es6
const template =`<div><span>hello world</span></div>`

十、Promise異步調用基本語法結構?

Promise是異步編程的一種解決方案,有了Promise對象,就能夠將異步操做以同步操做的流程表達出來,避免了層層嵌套的回調函數。

Promise完成ajax操做

...
.then(res)=>{

})
.then(res)=>{

})
.catch(res)=>{

})

Promise問題場景

1)回調函數(把函數做爲參數傳遞,就叫作回調函數)

簡單說回調方法就是將一個方法func2做爲參數傳入另外一個方法func1中,當func1執行到某一步或者知足某種條件的時候才執行傳入的參數func2,例以下面的代碼段:

//當參數a大於10且參數func2是一個方法時 執行func2
function func1(a,func2){
    if(a>10 && typeof func2 == 'function'){
       func2() 
   }
}

func1(11,function(){
     console.log('this is a callback')
})
運行結果:
this is a callback
注意:func2回到了func1函數中function參數函數。

2)異步操做

JavaScript也充斥着異步操做——例如ajax。

var username;
setTimeout(function(){
   username='linkFly';
),1000};//1s後執行
console.log(username);//輸入undefined

一段代碼異步執行,後續的代碼卻須要等待異步代碼的結果,若是打印結果在異步代碼以前執行,就會如上面的console.log(name)同樣,輸出undefined,這並非咱們想要的效果

Promise優雅的修正了異步代碼,如今使用Promise重寫setTimeout的示例:

var username2;
new Promise(function(resolve){
    setTimeout(resolve,1000);
}).then(function(){
    username2="jack";
    console.info(username2);//1秒後展現 
})

這段代碼完成了和以前一樣的工做。代碼console.log(name)正確的輸出了jack


平常學習的總結,主要是爲了本身之後看,固然你們有什麼好的建議,歡迎評論留言。

相關文章
相關標籤/搜索