美文网首页
1.JavaScript中关于定义变量以及变量作用域

1.JavaScript中关于定义变量以及变量作用域

作者: 乄Denve彡 | 来源:发表于2019-04-02 14:48 被阅读0次

1.在JavaScript中定义变量有两种方式

Es6之前:var 变量名称;
Es6开始:let 变量名称;

2.两种定义变量方式的区别

  • 如果通过var定义变量,可以重复定义同名的变量,并且不会报错,且后定义的会覆盖先定义的
var num = 1;
var num = 2;
console.log(num);
// 输出结果为2,因为后定义的会覆盖先定义的
  • 如果通过var定义变量,可以先使用后定义(预解析)
console.log(num);
var num = 1;
输出结果为undefined 先使用后定义可以理解成下述代码

//var num;
//console.log(num);
//num = 1
  • 如果通过let定义变量,不可以重复定义同名的
let num = 1;
let num = 2;
console.log(num);
// Uncaught SyntaxError: Identifier 'num' has already been declared
如果重复定义,会报错
  • 如果通过let定义变量,不可以先使用再定义,因为浏览器不会对let定义的变量进行预解析
console.log(num);
let num = 1;
// Uncaught SyntaxError: Identifier 'num' has already been declared

3.什么是全局变量

全局变量就是定义在{}外面的变量,我们就称之为全局变量

4.什么是局部变量

局部变量就是定义在{}里面的变量,我们就称之为局部变量

5.全局变量和局部变量的区别

如果是全局变量,那么有效范围是从定义数量的那一行开始直到文件的末尾都可以使用
如果是局部变量,那么有效范围是从定义变量的那一行开始知道大括号结束位置(只有在大括号中才能使用)
无论是通过var还是通过let定义的全局变量,都是从定义的那一行到文件末尾都可以使用
如果是通过var定义的局部变量,和全局变量一样,后续都可以被使用
如果是通过let定义的局部变量,那么这个变量只能在当前定义的变量的{}中使用

相关文章

  • 1.JavaScript中关于定义变量以及变量作用域

    1.在JavaScript中定义变量有两种方式 Es6之前:var 变量名称;Es6开始:let 变量名称; 2....

  • JavaScript 中的变量作用域

    JavaScript 中的变量作用域 JavaScript中的变量作用域被定义为函数作用域。 变量的值在定义该变量...

  • js作用域、作用域链、闭包

    作用域 1.javascript局部作用域 变量在函数内部声明,变量为局部作用域. 2.javascript全局变...

  • 【前端】-023-JavaScript-进阶篇-变量作用域

    变量作用域 JavaScript中变量的作用域 采用静态作用域(变量定义的位置决定了变量的引用) 没有块级作用域,...

  • JS高级-闭包、沙箱

    作用域,作用域链,预解析 变量:局部变量、全局变量 作用域:变量的使用范围 js中没有块级作用域,一对括号中定义的...

  • PHP学习笔记——变量作用域

    变量作用域 变量的作用域即它定义的上下文背景,也就是它的生效范围。在php中,关于变量作用域有以下六条规则: 内置...

  • 我理解的闭包

    一、 变量的作用域 一个变量的作用域(scope)是程序源代码中定义这个变量的区域。按变量作用域可以将变量分为全局...

  • javascript的函数作用域链

    变量作用域 一个变量的作用域(scope)是程序源代码中定义这个变量的区域。全局变量拥有全局作用域,在JavaSc...

  • JS作用域链

    作用域 变量的作用域 变量的作用域有两种:全局变量和局部变量。 全局作用域: 最外层函数定义的变量拥有全局作用域,...

  • 2018-08-03

    js作用域和作用域链 什么是作用域 ⼀个变量的作⽤域是程序源代码中定义这个变量的区域。对象, 函数也是变量。作...

网友评论

      本文标题:1.JavaScript中关于定义变量以及变量作用域

      本文链接:https://www.haomeiwen.com/subject/ulkgbqtx.html