zoukankan      html  css  js  c++  java
  • Web前端 -- ES6

    ES标准中不包含 DOM 和 BOM的定义,只涵盖基本数据类型、关键字、语句、运算符、内建对象、内建函数等通用语法。

    本部分只学习前端开发中ES6的最少必要知识,方便后面项目开发中对代码的理解。

    1、let声明变量

    创建 let.html

    // var 声明的变量没有局部作用域
    // let 声明的变量  有局部作用域
    {
    var a = 0
    let b = 1
    }
    console.log(a)  // 0
    console.log(b)  // ReferenceError: b is not defined
    
    // var 可以声明多次
    // let 只能声明一次
    var m = 1
    var m = 2
    let n = 3
    let n = 4
    console.log(m)  // 2
    console.log(n)  // Identifier 'n' has already been declared
    

    2、const声明常量(只读变量)

    创建 const.html

    // 1、声明之后不允许改变    
    const PI = "3.1415926"
    PI = 3  // TypeError: Assignment to constant variable.
    
    // 2、一但声明必须初始化,否则会报错
    const MY_AGE  // SyntaxError: Missing initializer in const declaration
    

    3、解构赋值

    创建 解构赋值.html

    解构赋值是对赋值运算符的扩展。

    他是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。

    在代码书写上简洁且易读,语义更加清晰明了;也方便了复杂对象中数据字段获取。

    //1、数组解构
    // 传统
    let a = 1, b = 2, c = 3
    console.log(a, b, c)
    // ES6
    let [x, y, z] = [1, 2, 3]
    console.log(x, y, z)
    
    //2、对象解构
    let user = {name: 'Helen', age: 18}
    // 传统
    let name1 = user.name
    let age1 = user.age
    console.log(name1, age1)
    // ES6
    let { name, age } =  user//注意:结构的变量必须是user中的属性
    console.log(name, age)
    

    4、模板字符串

    创建 模板字符串.html

    模板字符串相当于加强版的字符串,用反引号 `,除了作为普通字符串,还可以用来定义多行字符串,还可以在字符串中加入变量和表达式。

    // 1、多行字符串
    let string1 =  `Hey,
    can you stop angry now?`
    console.log(string1)
    // Hey,
    // can you stop angry now?
    
    // 2、字符串插入变量和表达式。变量名写在 ${} 中,${} 中可以放入 JavaScript 表达式。
    let name = "Mike"
    let age = 27
    let info = `My Name is ${name},I am ${age+1} years old next year.`
    console.log(info)
    // My Name is Mike,I am 28 years old next year.
    
    // 3、字符串中调用函数
    function f(){
        return "have fun!"
    }
    let string2 = `Game start,${f()}`
    console.log(string2);  // Game start,have fun!
    

    5、声明对象简写

    创建 声明对象简写.html

    const age = 12
    const name = "Amy"
    
    // 传统
    const person1 = {age: age, name: name}
    console.log(person1)
    
    // ES6
    const person2 = {age, name}
    console.log(person2) //{age: 12, name: "Amy"}
    

    6、定义方法简写

    创建 定义方法简写.html

    // 传统
    const person1 = {
        sayHi:function(){
            console.log("Hi")
        }
    }
    person1.sayHi();//"Hi"
    
    
    // ES6
    const person2 = {
        sayHi(){
            console.log("Hi")
        }
    }
    person2.sayHi()  //"Hi"
    

    7、对象拓展运算符

    创建 对象拓展运算符.html

    拓展运算符(...)用于取出参数对象所有可遍历属性然后拷贝到当前对象。

    // 1、拷贝对象
    let person1 = {name: "Amy", age: 15}
    let someone = { ...person1 }
    console.log(someone)  //{name: "Amy", age: 15}
    
    // 2、合并对象
    let age = {age: 15}
    let name = {name: "Amy"}
    let person2 = {...age, ...name}
    console.log(person2)  //{age: 15, name: "Amy"}
    

    8、箭头函数

    创建 箭头函数.html

    箭头函数提供了一种更加简洁的函数书写方式。基本语法是:参数 => 函数体

    // 传统
    var f1 = function(a){
        return a
    }
    console.log(f1(1))
    
    
    // ES6
    var f2 = a => a
    console.log(f2(1))
    
    // 当箭头函数没有参数或者有多个参数,要用 () 括起来。
    // 当箭头函数函数体有多行语句,用 {} 包裹起来,表示代码块,
    // 当只有一行语句,并且需要返回结果时,可以省略 {} , 结果会自动返回。
    var f3 = (a,b) => {
        let result = a+b
        return result
    }
    console.log(f3(6,2))  // 8
    
    // 前面代码相当于:
    var f4 = (a,b) => a+b
    

    箭头函数多用于匿名函数的定义

  • 相关阅读:
    第36课 经典问题解析三
    第35课 函数对象分析
    67. Add Binary
    66. Plus One
    58. Length of Last Word
    53. Maximum Subarray
    38. Count and Say
    35. Search Insert Position
    28. Implement strStr()
    27. Remove Element
  • 原文地址:https://www.cnblogs.com/androidsuperman/p/13041466.html
Copyright © 2011-2022 走看看