首页 > 其他 > 详细

ES6快速入门

时间:2020-08-11 16:05:54      阅读:50      评论:0      收藏:0      [点我收藏+]

1、变量声明let和const

  在es6之前,声明变量都是用var关键字,无论声明在何处,都会被视为声明在函数的最顶部,或者是在全局作用域的最顶部,这就是变量提升,例如:

    function fun(bool) {
      if (bool) {
        var test = ‘hello man‘
        console.log(test)
      } else {
        console.log(test)
      }
    }
    fun() // undefined
    fun(true) // hello man

  以上代码实际为:

    function fun1(bool) {
      var test // 变量提升
      if (bool) {
        test = ‘hello man‘
        console.log(test)
      } else {
        //此处访问test 值为undefined
        console.log(test)
      }
      //此处访问test 值为undefined
    }
    fun1() // undefined
    fun1(true) // hello man

  所以,不管bool是否为true或false,test都会被声明。如果用了var关键字,那就是局部变量;如果没有用var关键字,就是全局变量,特么的这就是所谓的变量提升。

  接下来,es6的let和const登场,let表示变量,const表示常量,let和const都是块级作用域。怎么理解这个块级作用域?

  • 在一个函数内部
  • 在一个代码块内部

  其实就是 {} 内的代码块就是let和const的作用域

    function fun(bool) {
      if (bool) {
        let test = ‘hello man‘
        console.log(test)
      } else {
        //test 在此处访问不到
        console.log(test) // 报错:test is not defined
      }
    }
    fun(true)
    fun()

  const就是一旦定义过的变量不可以再次赋值:

    const name = ‘吴小明‘
    console.log(name)
    name = ‘孙艺珍‘
    console.log(name) // 报错:Assignment to constant variable

  但是要注意:const定义的变量,如果是引用类型的话,这个变量的值是可以改变的,但是这个变量的引用不可以改变,例如:

    const person = {
      name: ‘吴小明‘,
      age: 18
    }
    console.log(person) // {name: "吴小明", age: 18}
    person.name = ‘孙艺珍‘
    console.log(person) // {name: "孙艺珍", age: 18}
    person = { name: ‘孙艺珍‘ }
    console.log(person) // 报错:Assignment to constant variable
    const arr = [1, 2, 3]
    console.log(arr) // [1, 2, 3]
    arr[1] = 20
    console.log(arr) // [1, 20, 3]
    arr = [10, 20, 30]
    console.log(arr) // 报错:Assignment to constant variable

  

2、模板字符串

  这个语法很好的解决了es5在字符串功能上的痛点,而且写法更简单了。

  第一个用途:基本的字符串格式化,将表达式嵌入字符串中进行拼接,用 ${} 来界定

    // es5
    let name = ‘吴小明‘
    console.log(‘姓名:‘ + name)
    // es6
    let age = 18
    console.log(`年龄:${age}岁`)

  第二个用途,多行字符串拼接:

    const template = `<div>
        <span>hello world</span>
        <span>hello world</span>
        <span>hello world</span>
        <span>hello world</span>
    </div>`

  es6还有一些其他的常用的字符串的方法,例如:

    let name = ‘吴小明‘
    console.log(name.includes(‘吴‘)) // true
    console.log(name.includes(‘孙‘)) // false

    console.log(name.repeat(3)) // 吴小明吴小明吴小明

 

3、函数

 

ES6快速入门

原文:https://www.cnblogs.com/wuqilang/p/13475803.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!