zoukankan      html  css  js  c++  java
  • ES6

    相同点:都是块级变量

    let 可赋值任意值,但是不能重复定义

    let a=0; let a = 2; //会报错,说a已经被定义

    块级作用域

    尽在作用域内能取值,外部是取不到的

            {
              let a = 0;
            }
            console.log(a); //a is undefined
            for (var i = 0; i < items.length; i++) {
                item[i].onclick = function () {
                    item[i].style.background = 'red'
                }
            }

    此时点击div。点击事件会报错,因为它本身走的回调函数是item[3].style

    因为 其实在全局变量中保存的,他是递增的,在循环结束时的值为3windows.i);

    但是如果此时把var i 换成let i 的话,就不会影响, 因为let只在其作用域内有效

    更形象的表达就是:

    {
            let i=0;
            item[0].onclick = function (){
                item[0].style.background = 'red'
            }
        }
        {
            let i=1;
            item[1].onclick = function (){
                item[1].style.background = 'red'
            }
        }
        {
            let i=2;
            item[2].onclick = function (){
                item[2].style.background = 'red'
            }
        }

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

    • 可赋值任意值,
      • 必须有初始值
        • const A 是会报错的
        • 潜规则 常量命名是要大写的,但是小写也没问题。
        • 常量的值不能被修改
        • 例如 const A = 0; A = 2;时会报错的
      • 块级作用域
        • let
      • 对于数组和对象的元素做修改,不算做对常量的修改,不会报错,
    const A = ['1', '2', '3'];
    
    A.push('4');
        • 此时不会报错,因为A对应的地址没有改变,元素改变,但是地址没有改变,所以数组和对象使用const最为稳妥的,避免被修改数据值
  • 相关阅读:
    Linux系统安装
    设计模式的原则
    vue基础
    软考常考题目及解题技巧
    软件设计师
    Wireshark 使用教程
    JVM 调优
    Shell脚本编写
    Linux相关知识
    HTTP缓存机制及原理
  • 原文地址:https://www.cnblogs.com/ningxin/p/14448350.html
Copyright © 2011-2022 走看看