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]
    }

     

  • 相关阅读:
    HDU 4819 Mosaic --二维线段树(树套树)
    Codeforces Round #274 Div.1 C Riding in a Lift --DP
    ZOJ 3829 Known Notation --贪心+找规律
    JAVA成员变量和静态变量的区别
    spring注解
    js中double类型的数据加减的时候出错
    js在页面间传值的方法记录
    将表中数据转换成java entity实例
    最近都写APP的接口,有苦说不出啊.
    写于2018年第一场雪----记我的第一年工作
  • 原文地址:https://www.cnblogs.com/max-tlp/p/7411789.html
Copyright © 2011-2022 走看看