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>`;
发布了69 篇原创文章 · 获赞 25 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/xingmei_ok/article/details/84563739
今日推荐