用于ES6常量的JavaScript ES5传输文件

用于ES6常量的JavaScript ES5传输文件,javascript,ecmascript-6,constants,polyfills,transpiler,Javascript,Ecmascript 6,Constants,Polyfills,Transpiler,我正在为ES6“const”编写transpiled/polyfill代码,以支持旧浏览器。我在网上进行了广泛的搜索,但未能找到以下准确的传输代码: function someFunction () { const abc; } 对于全局变量,可以在窗口对象上使用Object.defineProperty。但是如何在局部变量上实现同样的效果呢?我认为这是不可能的。如果你真的需要支持这么旧的东西,我会使用varconst是一个关键字,我不认为这些可以被“pollyfilled”。即使有办法

我正在为ES6“const”编写transpiled/polyfill代码,以支持旧浏览器。我在网上进行了广泛的搜索,但未能找到以下准确的传输代码:

function someFunction () {
   const abc;
}

对于全局变量,可以在窗口对象上使用Object.defineProperty。但是如何在局部变量上实现同样的效果呢?

我认为这是不可能的。如果你真的需要支持这么旧的东西,我会使用
var
const
是一个关键字,我不认为这些可以被“pollyfilled”。即使有办法,我也不认为付出的努力是值得的。
const
被一个简单的
var
所取代。您可以通过Babel的在线编译器使用@Treast所说的简单函数对其进行测试,如果您尝试修改常量的值,Babel将抛出一个错误,就像现代ES6浏览器那样:是的,但Babel将在编译时而不是运行时抛出错误。如果你想在运行时重现这种行为,也许
get
/
set
操作符可以提供帮助,但这需要为你拥有的每个
const
都有一个包装器。嗨,Treast,我也在考虑get/srt,你能不能对你的观点多解释一下?谢谢ypu,我认为这不可能。如果你真的需要支持这么旧的东西,我会使用
var
const
是一个关键字,我不认为这些可以被“pollyfilled”。即使有办法,我也不认为付出的努力是值得的。
const
被一个简单的
var
所取代。您可以通过Babel的在线编译器使用@Treast所说的简单函数对其进行测试,如果您尝试修改常量的值,Babel将抛出一个错误,就像现代ES6浏览器那样:是的,但Babel将在编译时而不是运行时抛出错误。如果你想在运行时重现这种行为,也许
get
/
set
操作符可以提供帮助,但这需要为你拥有的每个
const
都有一个包装器。嗨,Treast,我也在考虑get/srt,你能不能对你的观点多解释一下?谢谢ypu。