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);
    })();
    
  • 相关阅读:
    POJ1006(中国剩余定理)
    Ubuntu16.04安装jupiter
    OpenGL.tutorial06键盘和鼠标
    OpenGL.教程
    OpenGL.Qt532.cube
    Qt551.主窗体Margin
    Qt551.窗口滚动条
    Qt551.OpenGL.ZC简单例子
    Qt5OpenGL.顶点像素大小设置
    OpenGL.Tutorial03_Matrices_测试
  • 原文地址:https://www.cnblogs.com/vipyoumay/p/5597992.html
Copyright © 2011-2022 走看看