• es6基础系列一:let和const


    let 声明变量,可以说是具有作用域的var,用于声明变量,主要规则如下:
    1 let声明的变量拥有块级作用域

    {
    	let i = 1;
    	console.log(i); // 1
    }
    console.log(i); // Uncaught ReferenceError: i is not defined
    

    2 同一作用域,let变量应先声明再调用,同时不能重复声明

    {
    	console.log(t1); // undefined
    	var t1 = "var声明的变量";
    	console.log(t2); // Uncaught ReferenceError: t2 is not defined
    	let t2 = "let声明的变量"
    }
    {
    	let t3 = "第一次声明";
    	console.log(t3); // 直接报错 Uncaught SyntaxError: Identifier 't3' has already been declared
    	let t3 = "第二次声明"
    }
    

    3 for循环中,let声明的变量在循环内部的独立作用域会形成对应的副本

    var a = [];
    for (var i = 0; i < 10; i++) {
        a[i] = function() {
            console.log("i的值="+i);
        };
    }
    console.log(i) // 10
    a[6](); // i的值=10 无论a[n];i都已经是10了
    
    var a = [];
    for (let i = 0; i < 10; i++) {
        a[i] = function() {
            console.log("i的值="+i);
        };
    }
    // console.log(i) // 未定义 报错 Uncaught ReferenceError: i is not defined
    a[6](); // i的值=6
    

    const 声明静态变量,声明以后不能再修改,其他用法和let一样

    const PI; //报错 Uncaught SyntaxError: Missing initializer in const declaration
    const PI = 3.14; // 正确用法
    PI = 3.1415; //报错,重复定义 Uncaught TypeError: Assignment to constant variable
  • 相关阅读:
    在python3.7下怎么安装matplotlib与numpy
    kNN(从文本文件中解析数据)
    k-近邻算法(kNN)笔记
    第二章--k-近邻算法(kNN)
    C++学习笔记一 —— 两个类文件互相引用的处理情况
    (转) C++中基类和派生类之间的同名函数的重载问题
    初试 Matlab 之去除水印
    (转) linux之sort用法
    vim 简单配置
    hdu 5358 First One
  • 原文地址:https://www.cnblogs.com/yanyuji/p/6693908.html
Copyright © 2020-2023  润新知