JavaScript高级之ES6学习笔记

JavaScript高级之ES6学习笔记

  • 1 ES6 简介
    • 1.1 什么是 ES6 ?
    • 1.2 为什么使用 ES6 ?
  • 2 ES6 的新增语法
    • 2.1 let
    • 2.2 const
    • 2.3 let、const、var 的区别
    • 2.4 解构赋值
      • 2.4.1 数组解构
      • 2.4.2 对象解构
    • 2.5 箭头函数
    • 2.6 剩余参数
  • 3 ES6 的内置对象扩展
    • 3.1 Array 的扩展方法
      • 3.1.1 扩展运算符(展开语法)
      • 3.1.2 构造函数方法:Array.from()
      • 3.1.3 实例方法:find()
      • 3.1.4 实例方法:findIndex()
      • 3.1.5 实例方法:includes()
      • 3.1.6 模板字符串
      • 3.1.7 实例方法:startsWith() 和 endsWith()
      • 3.1.8 实例方法:repeat()
    • 3.2 Set 数据结构

JavaScript高级之ES6学习笔记_第1张图片

1 ES6 简介

1.1 什么是 ES6 ?

ES 的全称是 ECMAScript , 它是由 ECMA 国际标准化组织,制定的一项脚本语言的标准化规范。
JavaScript高级之ES6学习笔记_第2张图片
ES6 实际上是一个泛指,泛指 ES2015 及后续的版本。

1.2 为什么使用 ES6 ?

每一次标准的诞生都意味着语言的完善,功能的加强。JavaScript语言本身也有一些令人不满意的地方。
● 变量提升特性增加了程序运行时的不可预测性
● 语法过于松散,实现相同的功能,不同的人可能会写出不同的代码

2 ES6 的新增语法

2.1 let

ES6中新增的用于声明变量的关键字。
● let声明的变量只在所处于的块级有效

 if (true) {
     
     let a = 10; 
 }  console.log(a) // a is not defined 

注意:使用let关键字声明的变量才具有块级作用域,使用var声明的变量不具备块级作用域特性。
● 不存在变量提升

 console.log(a); // a is not defined   let a = 20; 

● 暂时性死区

 var tmp = 123; 
 if (true) {
     
     tmp = 'abc'; 
     let tmp;  
 }  

经典面试题 1

 var arr = []; 
 for (var i = 0; i < 2; i++) {
    
     arr[i] = function () {
    
         console.log(i);  
     } 
 } 
 arr[0]();  arr[1](); 

JavaScript高级之ES6学习笔记_第3张图片
经典面试题图解:此题的关键点在于变量i是全局的,函数执行时输出的都是全局作用域下的i值。
经典面试题 2

 let arr = []; 
 for (let i = 0; i < 2; i++) {
    
     arr[i] = function () {
    
         console.log(i);  
     } 
 } 
 arr[0]();  arr[1](); 

JavaScript高级之ES6学习笔记_第4张图片
经典面试题图解:此题的关键点在于每次循环都会产生一个块级作用域,每个块级作用域中的变量都是不同的, 函数执行时输出的是自己上一级(循环产生的块级作用域)作用域下的i值.

2.2 const

作用:声

你可能感兴趣的:(前端学习,es6,javascript,前端,html5,css3)