zoukankan      html  css  js  c++  java
  • Nodejs与ES6系列1:变量声明

    1、声明变量

    在JS当中一个变量的作用域(scope)是程序中定义这个变量的区域。变量分为两类,全局(global)的和局部的。其中全局变量的作用域是全局性的,即在JavaScript代码中,它处处都有定义。而在函数之内声明的变量,就只在函数体内部有定义。它们是局部变量,作用域是局部性的。函数的参数也是局部变量,它们只在函数体内部有定义。

    1.1 var变量声明方式

    在javascript中var关键字声明变量具有两个特点,第一变量提升(对变量的定义会默认提前至函数开始处),第二变量没有块作用域只有函数作用域。

    (function scope() {
        var i = 10;
        (function innerscope() {
            console.log(i);
            var i = 10;
        })();
    })();
    =====
    undefined
    

    代码1.1.1中,第二个变量i的定义提前至函数innerscope开始位置,因此在console.log(i)的时候i并没有赋值,因此输出结果为undefined。

    (function scope() {
        if(true){
            var i =10;
        }
        console.log(i);
    })();
    =====
    10
    

    代码1.1.2中,在if块中定义的变量i在if块外函数内依然可以使用,因此输出结果10.

    1.2 let声明变量方式

    在ES6的标准中,新引入了let关键字用于声明变量,let关键字与var关键字不同在于let为块作用域。 将1.1.2中代码定义变为let后,程序则不能执行。

    代码 1.1.2

    (function scope() {
        if(true){
            let i =10;
        }
        console.log(i);
    })();
    =====
    i is not defined
    

    1.3 const声明变量方式

    const用来声明常量,一旦声明,其值就不能改变,并且const定义的变量为块作用域,比如1.3.1和1.3.2这样编写代码是会出错的。

    代码1.3.1

    (function scope() {
        if(true){
            const pi =3.14;
        }
        console.log(pi);
    })();
    
    =====
    pi is not defined
    

    代码1.3.2

    (function scope() {
        const pi = 3.14;
        pi=3;
        console.log(pi);
    })();
    
  • 相关阅读:
    玩机分享之群晖利用反代域名访问
    Clipboard.SetText()卡住问题
    KB4040973 KB3178034 补丁导致wpf无法启动异常
    WPF 启动缓慢问题
    Jetbrains系列产品2019.2.3最新激活方法
    .net 4.0 以下HttpWebRequest Header 修改hosts方法
    Crypto++ 无法解析的外部符号 CryptoPP::AssignIntToInteger
    关于WDK开发内核签名之WHQL签名认证流程简介
    ico制作工具
    VUE监听滚动条事件
  • 原文地址:https://www.cnblogs.com/vipyoumay/p/5597992.html
Copyright © 2011-2022 走看看