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最为稳妥的,避免被修改数据值
  • 相关阅读:
    [单链表]链表指针追赶问题
    二叉查找树与平衡二叉树
    二叉树的下一个结点
    fork进程函数总结
    《Effective C++》Item2:尽量以const,enum,inline替换#define
    Hash表的使用
    [数字]整数数字的算法
    算法题:找出整数数组中两个只出现一次的数字
    删除元素的操作
    [Reprinted] 使用Spring Data Redis操作Redis(一) 很全面
  • 原文地址:https://www.cnblogs.com/ningxin/p/14448350.html
Copyright © 2011-2022 走看看