zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    你可能不知道的 30 个 Python 语言的特点技巧
    正则替换sql为动态sql
    列表按指定个数分割后格式化输出
    多线程队列下载天涯帖子
    多线程下载图片
    sublime text3 运行python配置
    01_什么是接口测试
    02_Fiddler使用
    01_Fiddler安装
    05_功能测试
  • 原文地址:https://www.cnblogs.com/yanyuji/p/6693908.html
Copyright © 2011-2022 走看看