尚硅谷ECMAScript复习笔记

本文主要复习了ES6中的变量声明,包括let、var和const的区别,重点介绍了块级作用域。此外,还讲解了解构赋值、模板字符串和箭头函数的知识点。特别是箭头函数的特性,如静态的this、不适用作构造函数等。最后,探讨了Symbol数据类型及其用途,如解决命名冲突问题,并解析了Symbol.for()的方法。
摘要由CSDN通过智能技术生成

1.声明

1.1.let和var

let var
变量不能重复声明 可以
具有块级作用域 没有
不存在变量提升 存在
不影响作用域链 也不影响

块级作用域: 变量只在代码块内有效,出代码块就无效(读取不到) {} / if / else / while / for等

不影响作用域链:

{
   
    let star = 'yyqx';

    function fn() {
   
        console.log(star);
        //作用域链:fn里没有star 继续向上找 找到大括号里声明的star
    }
    fn();
}

var和let关于块级作用域的区别的案例

let items = document.getElementsByClassName('item');
for (var i = 0; i < items.length; i++) {
   
    console.log(i); // 打印出 0 1 2
    items[i].onclick = function() {
   
        console.log(i);
        // 只能用
        this.style.background = 'pink';
        // items[i].style.background = 'pink'; 这个就不好使
    }
}
// var声明的i没有块级作用域, 其一直是在全局中存在的let声明的i有块级作用域 
for (let i = 0; i < items.length; i++) {
   
    items[i].onclick = function() {
   
        // this.style.background = 'pink';
        items[i].style.background = 'pink';
    }
}

1.2.const

const定义常量:值不能修改的量称为常量

  1. const声明常量时一定要赋初始值
    const A; // 会报错
    必须 const A = 100;
  2. 一般常量的值使用大写(潜规则)
  3. 常量的值不能修改
    const A = 100;
    A = 200;//fault
  4. 块级作用域
  5. 对于数组和对象的元素修改,不会报错。(注意是修改元素,而不是修改整个数组) 因为这样只改变了数组/对象里的元素,但这个数组/对象指的地址没有改变
    可:
    在这里插入图片描述在这里插入图片描述
    不可:
    在这里插入图片描述
    在这里插入图片描述

1.3.变量的解构赋值

ES6允许按照一定模式从数组和对象中提取值,对变量进行赋值。这被称为解构赋值

1.数组解构
const F3 = ['易烊千玺', '刘宪华', '鞠婧祎'];
let [yyqx, lxh, jjy] = F3;
console.log(yyqx);
//输出易烊千玺
2.对象解构
const yi = {
   
    name: '易烊千玺',
    age: 20,
    jiewu: function() {
   
        console.log
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值