Ashun's 技術駅 Ashun's 技術駅
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • Vue
  • 现代web布局
  • React
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 技术资源
  • 第一阶段

    • HTML
  • 第二阶段

    • JavaScript
  • 第三阶段

    • Vue
  • 第四阶段

    • 实战项目
  • 每周测试

    • 每周
  • 其他

    • Vue引入UI框架
    • Web前端面试
    • Vue3-resource
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 福利资源
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Ashun

前端界的小学生
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • Vue
  • 现代web布局
  • React
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 技术资源
  • 第一阶段

    • HTML
  • 第二阶段

    • JavaScript
  • 第三阶段

    • Vue
  • 第四阶段

    • 实战项目
  • 每周测试

    • 每周
  • 其他

    • Vue引入UI框架
    • Web前端面试
    • Vue3-resource
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 福利资源
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 01变量-es6
    • 一、变量let
      • 1、没声明变量
      • 2、常见报错(es5—es6)
      • 1)
      • 2)
      • 3)
      • 4)
      • 5)
      • 3、块级作用域
  • 02常量-es6
  • 03解构赋值-es6
  • 04字符串拓展-es6
  • 05数字拓展-es6
  • 06数组拓展-es6
  • 07函数拓展-es6
  • 08对象拓展-es6
  • 09类拓展-es6
  • 10扩展运算符-es6
  • 11set数据结构-es6
  • 12map数据结构-es6
  • 13同步和异步-es6
  • 《es6》
ashun
2022-02-14
目录

01变量-es6

# 变量

# 一、变量let

//1)不存在变量作用域提升,这样可以避免了我们还没声明变量就拿变量来用
console.log(a)
let a = 1//报错

//2)同一作用域的同一个变量不能够重复声明,避免我们重复声明变量
let a = 'hello world'
let a = 'hello world'//报错

//3)let声明的变量不会绑定到window
let a = 'hello swr'
console.log(window.a)//undefined

//4)let和代码块{}结合使用会形成块级作用域
{
	let str = "hello"
}
console.log(str)//hello

//5)暂时性死区
//在代码块内,使用let命令声明变量之前,该变量都是不可用的
if (true) {
  // TDZ开始
  tmp = 'abc'; // ReferenceError
  console.log(tmp); // ReferenceError

  let tmp; // TDZ结束
  console.log(tmp); // undefined

  tmp = 123;
  console.log(tmp); // 123
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

[!cogs]

%accordion% 历史解说 %accordion%

JavaScript  JScript     ecma(计算机标准组织)
es5 ———— (2015以下都是es5)
es6 ————  (es2015)
es7
es8
es9
es10
es11(最新)
1
2
3
4
5
6
7
8

%/accordion%

# 1、没声明变量

不存在变量作用域提升,这样可以避免了我们还没声明变量就拿变量来用

//es5
console.log(a);//安笛梵undefined
var a = 1;

//es6
console.log(a); //报错
let a = 1;
1
2
3
4
5
6
7

# 2、常见报错(es5—es6)

# 1)

//es5
var a = 1;
function fn() {
    console.log(a);//undefined
    var a = 2;
}
fn();

//es6
let a = 1
function fn() {
    console.log(a); //报错
    let a = 2
}
fn()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
fn()//var fn()这个是变量提升 es6就会报错    es5就undefined
var fn = function () {  
    console.log(123);
}
1
2
3
4

# 2)

//es5
var a = 1
var a = 2
console.log(a);//这种是2

//es6
let a = 1
let a = 2
console.log(a);//报错

//es6
let a = 1
a = 2
console.log(a);//这种是2
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 3)

//es5
var a = 1
console.log(window.a);//这种是1

//es6
let a = 1
console.log(window.a); //undefined
1
2
3
4
5
6
7

# 4)

//es5
for (var i = 1; i < 10; i++) {
    setTimeout(function () {
        console.log(i);//10
    }, 1000)
}

//es6
for (let i = 1; i < 10; i++) {
    setTimeout(function () {
        console.log(i);// 1 2 3 4 5 6 7 8 9
    }, 1000)
}
1
2
3
4
5
6
7
8
9
10
11
12
13

# 5)

//es5
function fn() {
    a = 1
    console.log(a); //1
}
fn()

//es6
function fn() {
    a = 1
    console.log(a);//报错
    let a
}
fn()
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 3、块级作用域

花括号都是块级{}

let和代码块{}结合使用会形成块级作用域

//es5
{
    var a = 1
    console.log(a);//1
}
{
    var a = 1
    console.log(window.a);//1
}

//es6
{
    let a = 1
    console.log(a);//1
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
编辑 (opens new window)
上次更新: 2022/04/24, 13:33:34
02常量-es6

02常量-es6→

最近更新
01
课件-react路由-V6
01-22
02
课件-国际化
01-22
03
课件-redux-toolkit
01-22
更多文章>
Theme by Vdoing | Copyright © 2019-2024 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式