推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
Guzi

JavaScript 存在块级作用域吗?

  •  
  •   Guzi · Feb 27, 2014 · 5813 views
    This topic created in 4631 days ago, the information mentioned may be changed or developed.
    12 replies  •  1970-01-01 08:00:00 +08:00
    sezina
    sezina
    Feb 27, 2014
    1
    没有。一个函数内的所有变量的声明都会被提前到前面。
    jsonline
    jsonline
    Feb 27, 2014 via Android
    2
    不存在不存在不存在
    Blueshit
    Blueshit
    Feb 27, 2014❤️1
    3
    try
    {...}
    catch(e)
    {...}
    这个 e 只作用于 catch 语句块
    serenader
    serenader
    Feb 27, 2014
    4
    没有。

    Unlike most programming languages, JavaScript does not have block-level scope (variables scoped to surrounding curly brackets); instead, JavaScript has function-level scope. Variables declared within a function are local variables and are only accessible within that function or by functions inside that function.
    摘自 http://javascriptissexy.com/javascript-variable-scope-and-hoisting-explained/
    normanzb
    normanzb
    Feb 27, 2014
    5
    有,新的ES里有: let

    for(let i = 0 ; i < xxx; i++) { ... }
    muzuiget
    muzuiget
    Feb 27, 2014
    6
    有,ES6 标准里才有,现在只有 Firefox 支持。
    zhulinpinyu
    zhulinpinyu
    Feb 28, 2014
    8
    目前只有函数级作用域,没有块级作用域。
    hussion
    hussion
    Feb 28, 2014
    9
    ES6以前木有,但是可以通过闭包实现块级作用域;ES6可以用let实现块级作用域
    xuyifei
    xuyifei
    Mar 1, 2014
    10
    块级作用域确实是js的一个坑
    nil
    nil
    Mar 1, 2014
    11
    多用函数,js里面函数能给你其他主流语言提供的一切功能~
    g0thic
    g0thic
    Mar 24, 2014
    12
    没有块级作用域,不过可以模仿块级作用域
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1361 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 20:12 · PVG 04:12 · LAX 12:12 · JFK 15:12
    ♥ Do have faith in what you're doing.