es6基礎入門

1、es6變量聲明const和let

es6之前都是用var聲明變量,es6用const和let來聲明,let表示變量,const表示常量。let和const都是塊級作用域。

塊級作用域是理解是:

  1. 在一個函數內部
  2. 在一個代碼塊內部

只要再{}花括號的代碼塊都可以任務let和const的作用域

let代碼如下:

let作用域是再它當前的代碼塊,但是不會提升到當前函數的最頂部

function aa(){
    if(flag){
        let test="hello man"
    }else{
        //test在此處訪問不到
        console.log(test);
    }
}

const

  1. const聲明的變量必須提供一個值,認爲是常量,意思是他的值被設置以後就不能修改了,否則會報錯、
    const name='zhangsan'
    name='joe' //再次賦值會報錯
  2. 如果const是一個對象,對象包含的值是可以被修改的,抽象一點兒說,就是對象指向的地址不能改變,變量成員是可以更改的。
const student={name:'zhangsan'}
student.name='wangwu'//ok 變量的值可以更改
student={name:'sfda'}//錯誤,指針的地址不可用更改

TDZ(暫時性死區)

js引擎掃描代碼的時候,如果發現變量聲明,用var聲明的變量會將聲明提升到函數或者全局作用域的頂部,但是let和const不會,會將聲明關進一個小黑屋,也是TDZ,只有執行到變量聲明這句代碼的時候,變量纔會從小黑屋釋放出來,纔可以安全的使用這個變量。

{
    console.log(value)//報錯
    let value='ddd'
}

2、字符串

es6模板字符串,解決了es5在字符串功能上的痛點。

  1. 基本的字符串格式化,將表達式嵌入字符串中進行拼接,用${}來界定
    //es5
    var name='wangsan'
    console.log('hello'+name);
    
    //es6
    const name='xingxing'
    const age='23歲'
    console.log(`hello,${name}今年的年齡是${age}`)

     

  2. 在es5我們通過反斜槓(\)來做多行字符串或者字符串一行行拼接,es6用引號搞定
    // ES5
    var msg = "Hi \
     man!
     ";
    // ES6
    const template = `<div>
    <span>hello world</span>
    </div>`;

     

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章