美文网首页
JS中的作用域

JS中的作用域

作者: js好难学啊 | 来源:发表于2018-12-09 22:43 被阅读0次

作用域

编程语言中作用于域的定义

Scope refers to the visibility of variables. In other words, which parts of your program can see or use it.

译为:作用域指的是变量的可见性, 换句话说, 就是程序可以看见和使用的那部分变量。

JS中的作用域

JS采用的是词法作用域(Lexical scope, static scope)

Lexical scoping (sometimes known as static scoping ) is a convention used with many programming languages that sets the scope (range of functionality) of a variable so that it may only be called (referenced) from within the block of code in which it is defined. The scope is determined when the code is compiled.

译为: 词法作用域(有时也称为静态作用域)是许多编程语言使用的一种约定,它设置变量的范围,以便于只能从定义它的代码块中调用它。作用域在代码编译阶段决定。
当然有静态作用域就会有动态作用域,这里不多做讨论。

举个例子

let a = 'global'
function showA() {
  console.log(a)
}

function foo() {
  let a = 'foo'
  showA()
}

foo() // 'global'

例子中, 在foo方法中调用了showA方法,最终打印出来的结果居然是'global'! 为什么? showA方法在编译阶段就将a指向了全局中的a。牢记那句话作用域在代码编译阶段决定!

相关文章

  • 2019-08-13JS里面的作用域Scope

    作用域指一个变量的作用范围。 JS的作用域 在JS中,有两种作用域 全局作用域直接编写在script标签中 JS代...

  • js 闭包

    一、js 作用域 讲闭包首先就要理解 js 的作用域。再 ES5 中,js 有两种作用域,全局作用域和函数作用域(...

  • ES5中JS的作用域和变量提升(hoisting)

    ES5 中JS 的作用域: 在ES5 中,JS 只有两种形式的作用域:全局作用域和函数作用域。 全局作用域全局对象...

  • 干货!月薪80k前端大佬面试笔记:JS闭包解析!

    三点注意事项 JS没有块级作用域,只有全局作用域和局部作用域(函数作用域)。 JS中的作用域链,内部的作用域可以访...

  • 变量作用域

    变量作用域:静态作用域、动态作用域JS变量作用域:JS使用静态作用域JS没有块级作用域(全局作用域、函数作用域等)...

  • JavaScript块级作用域

    块作用域{ }JS中作用域有:全局作用域、函数作用域。没有块作用域的概念。ECMAScript 6(简称ES6)中...

  • JavaScript快速上手:关于闭包的知识分享

    JS中变量的作用域 在理解闭包之前,我们得弄清楚JS中变量的作用域原理,它分为全局作用域和局部作用域,它有一...

  • JS作用域的练习

    Js作用域练习demo1 Js作用域练习demo2 JS作用域练习demo3 JS作用域练习demo4 JS作用域...

  • JavaScript快速上手:关于闭包的知识分享

    01 JS中变量的作用域 在理解闭包之前,我们得弄清楚JS中变量的作用域原理,它分为全局作用域和局部作用域,它有一...

  • JS语法基础整理

    块作用域 : { }JS中作用域有:全局作用域、函数作用域。没有块作用域的概念。ECMAScript 6(简称E...

网友评论

      本文标题:JS中的作用域

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