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);
    })();
    
  • 相关阅读:
    Django 想要单独执行文件
    Django基础
    Bootstrap框架
    Font Awesome矢量图标框架
    js函数式编程——蹦床函数
    ie被hao.360劫持的解决方法
    函数式编程——惰性链
    你可能不知道的BFC在实际中的应用
    高度随宽度适应的响应式方案
    腾讯云播放器更新——TCplayer
  • 原文地址:https://www.cnblogs.com/vipyoumay/p/5597992.html
Copyright © 2011-2022 走看看