zoukankan      html  css  js  c++  java
  • var let const随笔记(1)

    1. 基本概念

    var 声明了一个变量,并且可以同时初始化该变量

    let 声明一个块级作用域的本地变量,并且可选的赋予初始值

    const 声明创建一个只读的常量,作用域与let相同,这并不意味着常量指向的值不可变,而是变量标识符的值只能赋予一次

    注意:在语法中的块级作用域是指if/else/for/while语句里2个大括号之间的部分

    2. 基本用法

    (1)let 所声明的变量,只在let命令所在的代码块中有效

    1 {
    2     let a = 1;
    3     var b= 2;  
    4 }
    5 
    6 a //ReferenceError: a is not defined
    7 b // 2

    上面的代码块中,分别用了let 和var 定义了两个变量,然后在代码块之外分别调用这两个变量,结果let声明的变量报错,var声明的变量返回了正确的值,这说明:

    let声明的变量只在它所在的代码块中有效。

    for循环中很适合用let;同时,还有一个很特别之处,如下面的第二段代码:循环语句部分是一个父作用域,而循环体内是一个单独的子作用域,因此输出了三次‘abc’,这表明:作用域内部的变量i和外部的变量i是分离的

    for(let i=0;i<3;i++){}
    console.log(i);//RenferenceError:i is not defined
    for(let i=0;i<3;i++){
        let i="abc";
        console.log(i);
    }
    // abc
    // abc
    // abc

    (2)const声明一个只读的常量,一旦声明,常量的值就不可以改变,如下代码,当执行到第三行就会报错

    1 const PI = 3.1415926;
    2 console.log(PI);   //3.1415926
    3 PI = 3; //TypeError: Assignment to constant variable.

    同时,const声明的变量不得改变值,所以一旦声明变量就必须立即初始化,不能留到以后赋值

    const str;
    // SyntaxError: Missing initializer in const declaration 这表示,对于const来说,只声明不赋值,就会报错。

     但是以下代码是不会报错的,const定义常量值,不能够重新赋值,如果值是一个对象,可以改变对象里边的属性值

    {
        const a = {value:1}
        a.value = 2
        console.log(a) // {value:2}
    
        const b = [1,2,3]
        b.push(4)
        console.log(b) // [1,2,3,4]
    }

     

  • 相关阅读:
    输入三个整数x、y、z,请把这三个数由小到大输出
    输入某年某月某日,判断这一天是这一年的第几天?
    JS实现背景透明度可变,文字不透明的效果
    tomcat+java的web程序持续占cpu问题调试
    java中HashMap在多线程环境下引起CPU100%的问题解决
    Java HashSet和LinkedHashSet的用法
    关于List Map Set的线程安全的问题
    java 程序消耗 cpu 100% 查找方法
    新浪微博开放平台——话题跟踪
    Mina 断线重连
  • 原文地址:https://www.cnblogs.com/max-tlp/p/7411789.html
Copyright © 2011-2022 走看看