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

     

  • 相关阅读:
    python-生成器
    python—迭代器
    python—递归函数
    CentOS关闭防火墙
    OpenHCI
    USB电源管理
    USB相关的网络资料
    USB Packet Types
    USB描述符概述
    Core Java Volume I — 1.2. The Java "White Paper" Buzzwords
  • 原文地址:https://www.cnblogs.com/max-tlp/p/7411789.html
Copyright © 2011-2022 走看看