美文网首页
4.2 js没有块级作用域

4.2 js没有块级作用域

作者: 倔强的仙人掌 | 来源:发表于2017-06-10 16:47 被阅读0次

JavaScript没有块级作用域。在其他语言上,比如C语言中,有花括号封闭的代码块都有自己的作用域,(如果用ECMAScript的话来讲,就是他们自己的执行环境),因而支持根据条件来定义变量。例如,下面的代码效果

if (true) {

var color  = "blue";

}

alert(color);//blue

这里是一个if语句中定义了一个变量color,如果是在C,C++或者Java中,color会在if执行后被销毁。但是在JavaScript中,if语句中的变量声明会将变量添加到当前的执行环境(这里是全局环境)中。在使用for语句时尤其要牢记这个差异。例如

for (var i =0; i < 10; i++) {

doSomething(i);

}

alert(i); // 10

对于有块级作用域的语言来说,for语句初始化变量的表达式所定义的变量,只会存在于循环的环境中。而对于JavaScript来说,for语句创建的变量i即使在for循环执行结束之后,依旧存在于循环外部的执行环境之中。 

1.声明变量

    使用var声明变量会自动被添加到最近的环境之中。在函数内部,最接近的环境就是函数的局部环境;如果没有使用var,则变量会被自动添加到全局环境中。

相关文章

  • 4.2 js没有块级作用域

    JavaScript没有块级作用域。在其他语言上,比如C语言中,有花括号封闭的代码块都有自己的作用域,(如果用EC...

  • let 和 const

    一、JS中的块级作用域 ES6之前JS不支持块级作用域在ES6之前,JS是没有块级作用域这个概念的,只有全局作用域...

  • js 作用域

    js 作用域主要有:全局作用域和局部作用域,es5之前没有块级作用域,es6有了块级作用域 何为块级作用域,块级作...

  • 变量作用域

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

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

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

  • js高级程序设计笔记5

    js中没有块级作用域

  • js基础

    1.js作用域 js中的变量若在当前作用域中没有,会向父级寻找,直到最顶层。 2.块级作用域 js ES5没有块级...

  • 01. 作用域

    1. 作用域 1.1 全局作用域 众所周知,js在引入块级作用域之前是没有块级作用域的。 全局作用域:在其他地方都...

  • sample

    一、var与let JS中的块级作用域,var、let、const三者的区别 var是函数级作用域,没有块级作用域...

  • javaScript-04

    作用域 JS没有块级作用域 块作用域由 { } 包括。 在其他编程语言中(如 java、c#等),在 if 语句、...

网友评论

      本文标题:4.2 js没有块级作用域

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