2016-05-04 44 views
1

我想在javascript中使用var关键字创建块范围变量。
我不想创建使用关键字。因为它不会支持所有的浏览器。
有没有办法通过一些最好的和通用的方式来实现这一点?
在javascript中使用var关键字创建块范围变量

usecase:我想在for循环中使用它,以便每次迭代都会创建一个新的作用域。在一个

(function() { 
    var x = "whatever"; 
    // x is scoped to only within this "block" 
    // block code 
})() 

为了用于循环以维持范围:

+0

使用垫片/ pollyfills,巴别到transpile ES6成ES5。 – Tushar

+0

是的,Pollyfills将实现这一目标。我无法在MDN中找到它。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let我们可以通过核心JavaScript来实现吗? –

+0

在大多数情况下,您可以使用'.forEach()'。 – zeroflagL

回答

1

与IIFE像这样创建一个 “块”

for (var i = 0; i < l; i++) { 
    (function (i) { 
    var x = "whatever"; 
    // x is scoped to only within this "block" 
    // block code 
    })(i) 
} 
+0

你的意思是“IIFE”。你是否建议用函数替换所有块?所以'if(x){var ...}'变成'(function(){if(x){var ...}}())'? – RobG

+0

@RobG - 这就是传译员通常所做的事情。 – PitaJ

+0

@PitaJ IIFE会做。但我想在循环中使用它。因此,对于每一次迭代它都会创建一个新的范围。我已经编辑了相应的问题。 –