草庐IT

es6-features

全部标签

javascript - 我们可以用 ES6 模板替换现有的 JS 模板解决方案吗?

ES6的一个非常吸引人的特性是它内置的模板字符串。在这个时候,由于转换为ES5是跨浏览器兼容性的必要条件,我很好奇转换后的ES6模板与现有解决方案(例如Mustache、Handlebars、Jade等)之间的性能差异是什么。显然,如果您需要来自模板语言,ES6模板可能无法满足您的所有需求,但如果您正在执行基本模板,可以说ES6模板字符串可以取代您当前的模板引擎是否公平? 最佳答案 ES6中的模板字符串与在JavaScript中实现的各种模板引擎并没有真正的关系。大多数模板引擎(Underscore、Lodash、Mustache、

javascript - 新的 javascript ES6 模块术语中合格和不合格的导入有什么区别?

我遇到了这个区别,在ExploringJS中没有很好地解释Qualifiedandunqualifiedimportsworkthesameway(theyarebothindirections)有什么区别,因此这个陈述是什么意思? 最佳答案 严格来说,JavaScrpit中没有合格/不合格的导入。这些术语在AxelRauschmayer博士的“探索ES6”一书中在循环依赖的上下文中使用,大致意思是:不合格导入(直接导入模块的一部分):通用JS:varfoo=require('a').foo//doesn'tworkwithcycl

javascript - webpack -p 无法丑化 es2015 代码

webpack-pcli命令无法对es2015代码进行uglify包.json"devDependencies":{"babel":"^6.5.2","babel-core":"^6.13.2","babel-loader":"^6.2.4","babel-preset-es2015":"^6.13.2"}webpack.config.jsvarwebpack=require("webpack");varconfig={entry:'./src/app.js',devtool:"source-map",output:{path:'../Scripts',filename:'bundle

javascript - Firefox ES6,获取类构造函数名称

在Firefox中使用ES6类时,我在获取构造函数的名称时遇到问题。在Chromium中它工作正常,但Firefox似乎有某种错误?在Firefox中,我只返回一个空字符串。有人知道解决方法吗?classMyClass{}leta=newMyClass();console.log(a.constructor.name); 最佳答案 我认为这是一个错误(根据下面的评论)。似乎指定显式构造函数在Firefox中表现出正确的行为(即使是最新版本48)。classMyClassWithConstructor{constructor(){co

javascript - es5 中 ES6 方法(类)的等价物是什么?

我们如何将es6类方法填充到ES5中?我正在看一本书,上面写着以下内容:classNinja{constructor(name){this.name=name;}swingSword(){returntrue;}}与相同functionNinja(name){this.name=name;}Ninja.prototype.swingSword=function(){returntrue;};我只是问为什么我们要在原型(prototype)上而不是在构造函数中添加swingSword?因为函数应该在对象上,而不是在原型(prototype)链上。我是对还是错?

javascript - 在 ES Lint 中为 React Native 应用程序将 WebSocket 定义为全局变量

我收到以下eslint错误:42:21error'WebSocket'isnotdefinedno-undef您不能从react-native导入WebSocket,因为它是全局的,但是当我将WebSocket作为全局变量添加到我的.eslintrc.yml时,它不会改变结果错误:globals:WebSocket:true如何在ESLint中为ReactNative应用将WebSocket定义为全局?这可以修复吗?目前我的.eslintrc看起来像这样:env:browser:falsees6:truecommonjs:truenode:trueextends:'airbnb'par

javascript - 等效于 ES6 Promises 的 BlueBird Promise.props?

我想等待Promise的单词映射完成。BlueBird有Promise.props可以实现这一点,但是有没有一种干净的方法可以在常规javascript中做到这一点?我想我可以创建一个包含单词和Promise的新对象,获取这些对象的Promise数组,然后调用Promise.all并将它们放入map中,但这似乎有点矫枉过正。 最佳答案 适用于普通对象的Bluebird.props实现:/***Thisfunctionmaps`{a:somePromise}`toapromisethat*resolveswith`{a:resolve

javascript - 是否可以在 Mocha 测试中使用 ES6 模块?

ES6、Windows10x64、Node.js8.6.0、Mocha3.5.3是否可以在Mocha测试中使用ES6模块?我遇到了export和import关键字的问题。/*eventEmitter.js*//*Eventemitter.*/exportdefaultclassEventEmitter{constructor(){constsubscriptions=newMap();Object.defineProperty(this,'subscriptions',{enumerable:false,configurable:false,get:function(){returns

javascript - Q :ES6 map. keys() after map.delete(key)

当我尝试这些代码时:constmap=newMap([['a',1],['b',2],['c',3],['d',4],['e',5]]);console.log(map.keys());map.delete('a')console.log(map.keys());chrome控制台将显示这些:MapIterator{"a","b","c","d","e"}MapIterator{"c","d","e"}“b”为什么不出现? 最佳答案 这是一个浏览器兼容性问题,发生在map.keys()、map.values()、map.entrie

javascript - 为什么在 ES2015 中将 Object.keys 更改为将原语强制转换为对象?

有谁知道从将基元传递给Object.keys时抛出错误到默默地将基元强制转换为对象并返回结果的变化背后的原因?我不确定是否有人会期望Object.keys('abc')返回[0,1,2],这似乎违反了“不要破坏网络”的首要指令。如果某些网站的代码将对Object.keys的调用包装在try/catch中以处理调用者错误地传递原语怎么办?这就是为什么我觉得改变背后必须有一个强有力的理由。如果有人知道这方面的信息,我将非常感兴趣。 最佳答案 我在esdiscuss上找不到关于这个决定的任何提及,所以我只能提供我自己的观点。正如一位评论者