javascript声明变量的4种方法是什么


本文摘自PHP中文网,作者青灯夜游,侵删。

javascript声明变量的4种方法:1、使用“var”声明变量,例“var a;”;2、使用“function”声明变量,例“function Fun (num) {}”;3、使用“let”声明变量;4、使用“const”声明变量。

本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

声明变量的方式

JavaScript 变量声明的方式有下面几种:

  • ES6之前是 var 和 function
  • ES6中新增 let 和 const

function 是一种声明变量的方式?

我们来验证一下

验证方法一:

1

2

3

4

5

6

7

8

9

function repeatFun (num) {

  return num;

}

 

repeatFun(10); // 10

 

var repeatFun = 1;

 

repeatFun(2); // Uncaught TypeError: repeatFun is not a function

这种方法是利用 var可以重复声明变量,但是会后者覆盖会覆盖前者的特点

我们来看看这里发生来什么事:

  • 首先是声明了一个函数,他的名字是 repeatFun
  • 紧接调用一次,得到结果为10
  • 之后用 var 又声明了一次 repeatFun , 并初始化为 1
  • 最后调用一次 repeatFun 这个函数
  • 结果就是报错 ,内容: repeatFun 不是一个函数

根据执行结果我们可以推断出在浏览器的内存中存在一个 repeatFun 变量,之前是一个函数,后来被一个 var 关键字重新声明并初识化为 1。

验证方法二:

1

2

3

4

5

6

7

{

  let repeatFun = 1;

  function repeatFun (num) {

    return num

  }

}

// Uncaught SyntaxError: Identifier 'repeatFun' has already been declared

第二种方法我是利用

ES6的一个语法:利用 let 不能重复声明的特性来证明 function 也是一种声明变量的方式


var ,let , const 的不同点:

  • 变量声明提升

    • var 有变量声明提升的功能,可以先使用然后再声明,反之也成立
    • let 和 const 则没有变量声明提升的功能,必须要先声明才能使用
  • 重复声明

    • var 能重复声明,后者覆盖前者
    • let 和 const 则不能重复声明
  • 作用域的范围

    • var 的作用域是以函数为界限
    • let 和 const 是块作用域
    • var 可以定义全局变量和局部变量,let 和 const 只能定义局部变量
  • const 的特殊之处

    • 声明之后不能被修改(引用类型和基本类型的表现有些地方不一样)

变量声明提升

  • var 是有变量声明提升的功能,可以先使用然后再声明
  • let 和 const 则没有变量声明提升的功能,必须要先声明才能使用

例子一,验证 var 变量提升:

1

2

var b = a + 1; // b: NaN

var a = 1; // a: 1

首先是先声明来一个变量 b 并进行初识化,初始化的值为 a + 1(a 的值是多少?)
然后紧接是声明了一个变量 a ,初识化为 1
这是代码表面上就是做着这些事,实际上做的事情是这样:

  • 在每次声明一个变量的时候,他们的声明都是放在代码的最上面,并且他们都是要进行一次初始化,值为:undefined,但是赋值的位置是不会改变,
  • 然后再进行其他的操作

下面写法同样可以实现一样的效果

1

2

3

4

5

var b;

var a;

 

b = a +1; // b: NaN

a = 1; // a: 1

let 和 const 则与 var 的表现则不同

例子二,验证 let 是否存在变量提升:

1

2

let b = a + 1; // Uncaught ReferenceError: a is not defined

let a = 1;

在运行的时候直接抛出范围错误,若这样改一下,就没有错误:

1

2

let a = 1; // a: 1

let b = a + 1; // b: 2

const 和 let在变量提升方面的表现是一致


重复声明

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...