Javascript ES6地图功能支持-在IE11中支持太大?
我正在探索ES6的一些特性。要检查可用内容和使用位置,请执行以下操作: 我使用Babel玩游戏: 当浏览Javascript ES6地图功能支持-在IE11中支持太大?,javascript,ecmascript-6,Javascript,Ecmascript 6,我正在探索ES6的一些特性。要检查可用内容和使用位置,请执行以下操作: 我使用Babel玩游戏: 当浏览地图时,兼容性表显示 IE11中不支持构造函数参数 但我复制了示例代码: var result = function() { var key1 = {}; var key2 = {}; var map = new Map([[key1, 123], [key2, 456]]); return map.has(key1) && map.get(key1) =
地图时,兼容性表显示
IE11中不支持构造函数参数
但我复制了示例代码:
var result = function() {
var key1 = {};
var key2 = {};
var map = new Map([[key1, 123], [key2, 456]]);
return map.has(key1) && map.get(key1) === 123 &&
map.has(key2) && map.get(key2) === 456;
}();
console.log(result);
在IE11中执行它,令我惊讶的是,结果是真的true既在Babel中(尽管Babel没有生成任何代码),也在IE11控制台中
为什么呢
我使用Babel玩游戏:
这是Babel在REPL中使用其Map
polyfill。如果您在IE11本身中逐字运行该代码,则会得到false
,而不是true
:
var result=function(){
var key1={};
var-key2={};
var-map=newmap([[key1,123],[key2,456]]);
返回map.has(key1)&&map.get(key1)==123&&
map.has(键2)和map.get(键2)==456;
}();
控制台日志(结果)代码>谢谢。我在这里测试过,你是对的。但,若我打开Babel的页面并以多行模式运行它,结果仍然是正确的。这意味着巴贝尔正在使用垫片。相当地misleading@dragonfly:嗯,REPL旨在为您提供一个快速的环境,用于测试使用Babel进行传输时将获得的结果。但我不得不说,我不太清楚他们到底在做什么,以使它发挥作用;请参阅答案末尾的更新…:-)巴贝尔确实填补了这个空缺。[本机代码]
是一个值得商榷的问题,但是核心js
目前这样做是为了让具有本机行为的东西看起来像本机。@loganfsmyth:谢谢,这很有意义。我应该有意识地不相信函数的toString
@loganfsmyth:那么这是否意味着当我在构建管道中包含babel时,我还需要包含整个核心js?