jjzjj

ecmascript-harmony

全部标签

javascript - 如何在 JavaScript 2015 (EcmaScript 6) 中给它取别名?

这个问题在这里已经有了答案:howtodo`varself=this`insidees6class?(2个答案)关闭6年前。在EcmaScript5中,我们可以将this别名为varctrl=this,如以下代码片段所示。//EcmaScript5functionBookController{varctrl=this;ctrl.books=[];ctrl.getBook=getBook;functiongetBook(index){returnctrl.books[index];}}ES6中使用class的等效BookController。我有一个场景,其中getBook是用this而

javascript - 为什么 ECMAScript 仍然不是 W3C 的推荐?

理论上,浏览器可以支持多种用于网页客户端脚本的编程语言。实际上,ECMAScript是唯一一种在所有浏览器中得到广泛实现和使用的语言。因此对于大多数人来说,它是网络不可或缺的一部分。但是,它从未被W3C提升为网页脚本的推荐标准。HTML5似乎也促进了它,尽管客户端交互性变得越来越重要。为什么会这样?是为了防止编程语言在网络平台上的垄断吗?(显然失败了)是因为W3C更喜欢只关注网络的声明性方面吗?或者仅仅是一种政治立场? 最佳答案 我会尝试一下:W3C试图起草和推荐标准。ECMAscript已经是来自ECMA的标准。它不需要重新批准该

javascript - 如何识别 ES6 生成器

假设我有一个这样的生成器函数:varg=function*(){yield1;yield2;yield3;};vargen=g();我如何以编程方式判断g是一个生成器函数,或者gen是一个迭代器?这似乎是一种可能性:g.constructor.name==='GeneratorFunction'有没有更好的办法?更新:我结束了takinganapproach类似于Eric'sanswer,但使用eval首先确定目标平台是否支持生成器。这是实现:varGeneratorConstructor=(function(){try{vargenerator;returneval('generat

javascript - Ecmascript 6 是否支持可变的 __proto__ 属性?

在当前的Ecmascript6草案(2012年11月)中,官方支持__proto__属性(第B.3.1节)。这有点令人惊讶,因为在当前的浏览器实现中,__proto__属性已被弃用。如果当前草案成立,ES6是否会完全支持可变原型(prototype)?我能否像目前在Firefox中那样为现有对象提供新原型(prototype)? 最佳答案 目前,计划将可变的__proto__包含在规范中(而不仅仅是在附件b中)。目前的计划是让它成为一个神奇的数据属性,仅存在于Object.prototype上并充当访问器(神奇的部分)。此属性也将是

javascript - 浅拷贝对象遗漏了 ES6/ES7 中的一个或多个属性?

这就是我一直在做的:varprops={id:1,name:'test',children:[]}//copypropsbutleavechildrenoutvarnewProps={...props}deletenewProps.childrenconsole.log(newProps)//{id:1,name:'test'}有没有更干净、更简单的方法? 最佳答案 你可以使用destructuringassignment:varprops={id:1,name:'test',children:[]}var{children:_,.

javascript - 如何将 --harmony Node 标志添加到 grunt-express

我正在使用grunt-express进行本地开发。这是我的GruntFile.jsvarpath=require('path');module.exports=function(grunt){grunt.initConfig({pkg:grunt.file.readJSON('package.json'),uglify:{options:{banner:'/*!*/\n'}},express:{server:{options:{debug:true,server:path.resolve('app.js')}}},env:{options:{},dev:{NODE_ENV:'devel

javascript - 如何使用纯 ecmascript 且浏览器不支持 h.264 从 MP4 URL 获取视频高度和宽度?

我正在编写用于下载视频的用户脚本。网站的flash播放器使用JSON文件。我这个脚本的目的是根据网页下载并解析视频,得到视频的url。目前可以成功下载提取视频的URL。JSON文件的重要部分如下所示:{"ammProfile":"AMM-HBBTV","version":"VF","versionProg":"1","VFO":"HBBTV","VMT":"mp4","VUR":"http://vo.llnwd.net/v2/am/HBBTV/051332-074-A_SQ_2_VF_01464306_MP4-2200_AMM-HBBTV.mp4"},{"ammProfile":"AM

javascript - 如何在 coffeescript 中启用和声语法支持?

我使用带有--harmony标志的node.js(0.11.13)并使用function*()和yield关键字。我试图在coffeescript的帮助下简化我在node.js上的开发,到目前为止它运行良好,但我在yield和声明生成器方面遇到了麻烦-它提示'reserved关键字产量'。有什么想法吗? 最佳答案 另一种打开黑色维度之门的方法是:co=require'co'sleep=require'co-sleep'co(`function*(){1`console.log'hi!'`yieldsleep(1000)`consol

javascript - 它是 Ecmascript 中的错误 -/\S/.test(null) 返回 true 吗?

在Actionscript3和Javascript中,这些语句给出相同的结果:/\S/.test(null)=>true/null/.test(null)=>true/m/.test(null)=>false/n/.test(null)=>true在这种情况下,null值似乎被转换为字符串“null”。这是Ecmascript中的已知错误还是我遗漏了什么? 最佳答案 这不是错误,但你是对的,null强制到'null'并且该行为在规范中定义:RegExp.prototype.test(string),在内部等效于表达式:RegExp.

javascript - 在 javascript Harmony/ECMAScript 6 中删除或覆盖 const 变量

阅读和修改ECMAScript6提供的新功能。用于编写常量变量的新“const”语句是一个很棒的功能,它为已经很有趣的更新添加了功能。变量创建为只读,一旦声明就不能被覆盖。编辑:随之而来的问题出现了,例如,在控制台上测试代码时。两次运行包含const定义的脚本会导致错误,中断执行。如果我想释放那个关键字怎么办?有什么方法可以取消设置或删除变量吗?我读过thispost这实际上也是一个影响var语句的问题,因为创建变量的环境在许多抽象级别上是不同的。ECMAScript6打算如何解决这个问题? 最佳答案 无法重新定义使用const声明