【发布时间】:2011-09-23 00:02:28
【问题描述】:
已过时
let 语句的块版本在最终确定之前已从 ES6 中删除,并且已从支持它的浏览器中删除。这个问题现在只具有历史意义。
使用 ECMAScript 6 let block statement 和使用带有等效对象字面量的 with 语句之间有什么区别吗?
使用let 语句
var x = 10;
let (x = x * 10,
y = x + 5) {
console.log("x is " + x + ", y is " + y);
}
使用with 语句
var x = 10;
with ({x: x * 10,
y: x + 5}) {
console.log("x is " + x + ", y is " + y);
// writes "x is 100, y is 15"
}
【问题讨论】:
-
这个问题是为了娱乐,还是您正在认真考虑使用
with进行范围界定? -
如果答案最终是“没有区别”,那么我会考虑,但我主要是好奇,因为我预计会有区别,但找不到。
标签: javascript language-features with-statement let ecmascript-6