美文网首页
第七章 块级作用域、私有变量

第七章 块级作用域、私有变量

作者: A郑家庆 | 来源:发表于2018-06-08 16:11 被阅读0次
  • 模仿块级作用域
  • 私有变量
      js没有块级作用域,只有全局作用域和局部作用域(函数作用域),块级作用域是指某一部分代码执行完之后里面的变量就会被销毁,里面的变量不会被其他地方引用,但是js不同,例如:
function output () {
    for (var i = 0; i<10;i++) {
      console.log(i)
  }
var i
console.log(i)
var i = 2
 console.log(i)
}

如果js是块级作用域那么循环完就无法打印i,因为已经被销毁了,所以js没有块级作用域。上面第二个i为10,第三个i为2,为什么会不一样,因为js从来不会告诉你是否多次声明了同一个变量;遇到这种情况,它只会对后续的声明视而不见,不过,如果声明之后初始化了就会改变原有的值。
  函数声明后面不能跟一对圆括号,表达式可以,例:

function () {
return 1
}()      // 报错

(function () {
return 1
})()

第一种会报错,因为js将function关键字当做一个函数声明的开始,而函数声明后面不能跟圆括号。
js模仿块级作用域(私有作用域),如下

function output () {
   (function () {
      for (var i = 0; i<10;i++) {
      console.log(i)
     }
  })()
console.log(i)
}

第一个会打印出i,但是第二个打印不出来而且会报错,因为匿名函数执行完就会被销毁。在一个由很多开发人员共同参与的大型应用程序中,过多的全局变量和函数很容易导致命名冲突,而通过创建私有作用域,每个开发人员既可以使用自己的变量,又不必搞乱全局作用域。

私有变量

  js中私有变量就是函数的参数、局部变量和函数内部定义的其他函数。我们把有权访问私有变量和私有函数的共有方法称为特权方法。

相关文章

  • 第七章 块级作用域、私有变量

    模仿块级作用域 私有变量  js没有块级作用域,只有全局作用域和局部作用域(函数作用域),块级作用域是指某一部分代...

  • 块级作用域

    块级作用域:es6中一对大括号就是一个块级作用域 私有作用域:函数执行时形成的作用域,这个作用域中定义的变量外部不...

  • JavaScript作用域

    1.块级作用域 2.私有变量 3.静态私有变量 4.模块模式 5.增强的模块模式

  • es6新增特性

    一、变量的改变 let 用来声明变量(块级作用域) const 用来表示常量(块级作用域) 块级作用域 就是在{}...

  • js高级知识点(第五天)

    所用域 什么是作用域 变量起作用的范围 什么是块级作用域,使用代码块限定的作用域是块级作用域(let声明的变量是块...

  • ES2015(ES6)学习手册

    作用域 全局作用域 函数作用域 块级作用域(es6) let let 声明的变量只在所处的块级有效 let没有变量...

  • ES 6 新特性列表

    作用域块级作用域块级变量 let块级常量 const 箭头函数sum = (a, b) => a + bnums....

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

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

  • ES6的块级作用域以及let、const命令

    1.块级作用域 ES5 只有全局作用域和函数作用域,没有块级作用域。 在函数外部声明的变量,都是全局变量,容易导致...

  • 变量作用域

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

网友评论

      本文标题:第七章 块级作用域、私有变量

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