ES6 学习笔记

本贴最后更新于 563 天前,其中的信息可能已经时异事殊

概念

ECMAScript 是浏览器脚本语言的规范,Java script 是规范的具体实现。

参考:1.1 ES6 教程 | 菜鸟教程 (runoob.com)

变量

let 和 var

let 是在代码块内有效,var 是在全局范围内有效,下述代码打印时,会提示 a is not defined

<script>
    {
        let a = 1;
        var b = 2;
    }
    console.log(a)
    console.log(b)
</script>

let 声明的变量不能重复定义,var 可以,下属代码运行提示 Identifier 'a' has already been declared

<script>
    {
        let a = 1;
        let a = 1;
        var b = 2;
        var b = 3;
    }
    console.log(a)
    console.log(b)
</script>

var 存在变量提升,let 不存在变量提升,下述代码,b 打印结果为 undefined,a 打印提示 caught ReferenceError: Cannot access 'a' before initialization

<script>
    console.log(b)
    var b = 2;
    console.log(a)
    let a = 1;
</script>

const

const 声明的变量不能修改,const 声明的变量必须初始化,下属代码修改 const 值,控制台报错提示 peError: Assignment to constant variable.

结构表达式

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

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

<script>
    let arr = [1,2,3]
    let [a,b,c] = arr;
    console.log(a,b,c)
</script>

函数参数

参数默认值

下述代码中,a 和 b 默认都为 0,如果不给函数传递参数,拿就会按默认值运算

function addNum(a=0,b=0){
    console.log(a+b)
}

参数个数不固定

    function paramsFunc(...params){
        console.log(params)
    }
    paramsFunc(1,2)
    paramsFunc(1,2,3)

下属代码输出结果

image.png

箭头函数

箭头函数是一种简洁得函数写法

单个参数

    var f = v => v;
    //等价于
    var f = function(a){
        return a;
    }

多个参数

var f = (a,b) => a+b;

方法有多行

方法有多行得话,将箭头后的部分用大括号括起来,然后再里面写方法体

    var f = (a,b) =>{
        let c = a+b;
        return  c;
    };

方法返回值

方法不加大括号就默认返回箭头后得表达式运算值,如果方法不需要返回值则需要在大括号中声明

    var f = (a,b) =>{
        let c = a+b;
        console.log(c)
    };

返回一个对象

需要返回对象时,可以用大括号将方法体包起来,然后再里面定义定向返回,如果不适用方法体,可以用()封装对象

var f = (a,b) => ({'a':a,'b':b})
    console.log(f(1,2))

返回结果

image.png

使用时特殊情况总结

  • 没有 this、super、arguments 和 new.target 绑定;
  • 箭头函数体中的 this 对象,是定义函数时的对象,而不是使用函数时的对象;
  • 不可以作为构造函数,也就是不能使用 new 命令,否则会报错
// 此时的this指向定义Pershon中sayHello函数的对象,此时控制台输出undefined
var Person = {
    'age':18,
    'sayHello':()=>{
        console.log(this.age)
    }
}

若对象中定义方法,需要访问 this 使用以下方法

var Person = {
    'age':18,
    'sayHello':function (){
        setTimeout(()=>{
            console.log(this.age)
        })
    }
}

或者

var Person = {
    'age':18,
    'sayHello':function (){
       console.log(this.age)
    }
}
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    729 引用 • 1327 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...