zoukankan      html  css  js  c++  java
  • const、var、let

    const、var、let

     

     

    const

    var

    let

     

     

    const

    作用:定义不可修改的且必须初始化的变量

    作用范围:块级作用域

    <script>
        window.onload = function() {
            // const 定义常量类型
            //const a; // 编译器报错:must be initialize
            const a = 50;
            console.log(a);// 50
            //a = 70;  // 编译器报错:说a是readonly
            console.log(a);// 50
            
            // const 定义数组对象类型:可见const定义的数组是可以被修改的,
            // 也仅仅支持修改数组内容,不支持修改数组引用指向
            const arr = new Array();
            arr.push(1);
            arr.push(2);
            console.log(arr);// 1,2
    </script>

     

    var

    作用:定义的变量支持修改,未初始化的变量默认为undefined

    <script>
        window.onload = function() {
            // var 定义常量类型
            var a; // 编译器不会报错
            console.log(a); // 输出undefined
            a = 50; // 支持修改
            console.log(a);
    
            // var 定义的对象支持修改
            var arr = new Array();
            arr.push(1);
            arr.push(2);
            console.log(arr);
    
            arr = '2';// 支持类型修改
            console.log(arr);// 2
    
        }
    </script>

    let

    作用:常用在块级作用域,可以被修改,常用于闭包循环

    <script>
        window.onload = function() {
            // let 常常用于块级作用域
            let a;
            console.log(a);// undefined
            a = 10;
            console.log(a); // 10
    
            b = 20;
            var b; // 不会报错,编译期会将变量b的声明提前
    
            //c = 30;
            //let c;// 报错,块级变量,编译期不会提前???
    
            // var 在闭包循环内定义的变量外部依然可以访问
            for(var j = 0;j < 2;j++) {
                console.log("var for:"+j);
            }
            console.log("外部依然可以访问var闭包内定义的变量:"+j);
    
            // let 常用于闭包循环
            for(let i = 0;i < 2;i++) {
                console.log("let for:"+i);
            }
            console.log("外部可以访问let闭包内定义的变量吗?"+i);
    
        }
    </script>

     

    前进时,请别遗忘了身后的脚印。
  • 相关阅读:
    读写分离之Atlas
    数组、集合和可变长参数
    史上最全的maven的pom.xml文件详解
    ArrayList集合与List与数组的区别
    ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
    Linux下Nagios的安装与配置
    Redis在windows下安装过程
    TortoiseGit-2.0.0.0-64bit问题
    丢用lamp手动安装apache php mysql
    手把手教你小程序对接微信支付
  • 原文地址:https://www.cnblogs.com/liudaihuablogs/p/13468027.html
Copyright © 2011-2022 走看看