Part 1 -模块二:ES 新特性与 TypeScript、JS 性能优化

Part 1 -模块二:ES 新特性与 TypeScript、JS 性能优化


章节:

​ Part 1 · JavaScript 深度剖析:

​ 模块二:ES 新特性与 TypeScript、JS 性能优化

概要:

  • ECMAScript与JavaScript
  • ECMAScript的发展过程
  • ECMAScript2015的新特性

2、ECMAScript概述


  • ECMAScript通常看做JavaScript的标准化规范

  • 实际上JavaScript是ECMAScript的扩展语言

  • ECMAScript只提供了最基本的语法(例如,怎么定义变量常量)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jvoeP8q8-1605762522991)(C:\Users\hp\AppData\Roaming\Typora\typora-user-images\image-20201110132619521.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4B3f9fB4-1605762522995)(C:\Users\hp\AppData\Roaming\Typora\typora-user-images\image-20201110132658528.png)]

  • JavaScript语言本身指的就是ECMAScript

  • ES2015=ES6

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ogS4pYn3-1605762522997)(C:\Users\hp\AppData\Roaming\Typora\typora-user-images\image-20201110132840084.png)]

3、ES2015概述

“ES6”——有泛指ES2015在内往后的新版本的意思,注意分辨文中是指ES2015还是新版本

ES2015新特性(在ES5.1基础之上的变化,主要分4大类):

  • 解决原有语法上的一些问题或者不足
  • 对原有语法进行增强
  • 全新的对象、全新的方法、全新的功能
  • 全新的数据类型和数据结构

4、ES2015准备工作


**运行环境:**NodeJS和最新Chrome

NodeJS小工具:Nodemon——修改完代码后自动执行代码

命令使用:

查看node版本
node --version
打开相应项目
code .\01-02-01-01-es2015-spec\
初始化一个新项目
yarn init
添加nodemon依赖包到devDependencies
yarn add nodemon --dev
自动执行代码(nodemon写法:nodemon替换node即可)
yarn nodemon 01-test.js

5、ES2015 let 与块级作用域


**作用域:**某个成员能够起作用的范围

ES2015之前,有两种作用域:

  • 全局作用域
  • 函数作用域

ES2015新增:

  • 块级作用域:

    • 块:用一对花括号包裹的范围,例如if、for语句中的{}
    if (true) {
    	console.log('haha,me')
    }
    
    for (var i = 0; i< 10; i++){
    	console.log('haha,me')
    }
    
let和var区别:
  • 块级作用域
  • 变量提升
块级作用域
// var--ES6以前块没有独立的作用域,导致块内定义的成员,外部也能访问到
if (true) {
    var foo = 'hhh';
}
console.log(foo); // hhh

// let-- 声明的成员只会在所声明的块中生效
if (true) {
    let foo = 'hhh';
}
console.log(foo); // foo is not defined

在 for 循环中的表现(应用场景:计数器)

// var--变量同名,外层for循环受影响
for (var i = 0; i < 3; i++) {
  for (var i = 0; i < 3; i++) {
    console.log(i)
  }
  console.log('内层结束   i = ' + i)
}

/*
0
1
2
内层结束   i = 3
*/

// let--变量同名,外层for循环无影响
for (var i = 0; i < 3; i++) {
  for (let i = 0; i < 3; i++) {
    console.log(i)
  }
  console.log('内层结束 i = ' + i)
}

/*
0
1
2
内层结束 i = 0
0
1
2
内层结束 i = 1
0
1
2
内层结束 i = 2
*/

let 应用场景:循环绑定事件,事件处理函数中获取正确索引

// var
var elements = 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值