博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nodejs与ES6系列1:变量声明
阅读量:6854 次
发布时间:2019-06-26

本文共 1146 字,大约阅读时间需要 3 分钟。

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);})();

转载于:https://www.cnblogs.com/vipyoumay/p/5597992.html

你可能感兴趣的文章