TOGOUTECH

ecmascript-6

全部标签

javascript - 异步/等待如何串行和并行工作?

我有两个async函数。他们都在等待两个3秒的函数调用。但是第二个比第一个快。我认为更快的一个是并行运行的,另一个是串行运行的。我的假设正确吗?如果是,为什么会发生这种情况,因为这两个函数在逻辑上看起来是一样的?functionsleep(){returnnewPromise(resolve=>{setTimeout(resolve,3000);});}asyncfunctionserial(){awaitsleep();awaitsleep();}asyncfunctionparallel(){vara=sleep();varb=sleep();awaita;awaitb;}s

javascript - ES6 — 如何从具有字符串键的对象中解构?

我有一个对象{hello_en:'helloworld','hello_zh-CN':'世界您好',something:'niceday',something_else:'isn\'tit'}传递给一个函数function(data){const{hello_en,hello_zh-CN,...rest}=data//dosomestuffwithhello_enandhello_zh-CN//sosomeotherstuffwithrest}当然hello_zh-CN不是有效的键名。我不会写con

javascript - JavaScript 变量存储在哪里?

我在玩一些普通的lisp并意识到它不像Lisp,其中所有局部变量要么是参数(通过lambda)lambda,要么是通过参数(通过let)。换句话说,他们总是遵循IIFE惯用语:((x,y,z)=>{/*Ihasvariables*/})(1,2,3);例如((lambda(xyz);Ihasvariables)123)或(let((x1)(y2)(z3));Ihasvariables)在JavaScript中,vars“感觉”像setq,但是如果局部变量没有声明为隐藏它,setq会改变全局范围,在JavaScript中,vars无论如何都不会改变全局范围。假设我想在Lisp中这样

javascript - window.customElements.define() 和 document.registerElement() 有什么区别

我一直在阅读一些关于网络组件的教程(原生的,没有聚合物)。我已经看到了两种注册组件的方法,但我对使用什么感到有点困惑。对于第二个,我实际上在vscode中收到一个typescript错误:[ts]属性“registerElement”在类型“Document”上不存在。您是说“createElement”吗?/***App*/exportclassAppextendsHTMLElement{constructor(){super();}connectedCallback(){this.innerHTML=this.template;}gettemplate(){return`<d

javascript - React Native _this2.refs.myinput.focus 不是函数

使用React-Native,我有一个从TextInput扩展而来的自定义组件,如下所示:TextBox.js...render(){return(<TextInput{...this.props}style={styles.textBox}/>);}...MyScene.js(导入TextBox.js)...render(){render(<View><TextBoxrel='MyFirstInput'returnKeyType={'next'}onSubmitEditing={(event)=>{this.refs

javascript - React.js 节流 mousemove 事件不断抛出 event.persist() 错误

我需要限制mousemove事件,我按照下面的提示构建方法,但不起作用:PerformdebounceinReact.js这是我的代码(http://jsbin.com/binesofepo/edit?js,console,output):classToolextendsComponent{constructor(props){super(props);this._onMouseMove=_.throttle(this._onMouseMove.bind(this),1000)}render(){return(<divref="tool"className=

javascript - 使用 Intl API 获取时区在 Firefox : 中不起作用

我正在使用IntlAPI.在Chrome中:Intl.DateTimeFormat().resolved.timeZone返回“欧洲/伦敦”在Firefox中这返回undefined,即使FirefoxsupportsIntl.如何使用Firefox获取时区? 最佳答案 从技术上讲,更正确的咒语是:Intl.DateTimeFormat().resolvedOptions().timeZone遗憾的是,目前并非所有实现都支持IntlAPI的时区功能。因此,虽然这会在Chrome中返回一个有效的IANA时区,但它不会在FireFox和

javascript - 所以我使用 Javascript const 关键字,在 IE 中会发生什么?

我知道const关键字已经在除IE10版本之外的浏览器中全面实现,但它可行吗?如果有人在IE10上跳转到我的站点MDN有关const关键字的文档在底部提供了一个方便的图表,它告诉我不仅IE,而且许多移动浏览器也不支持它。我应该废弃它并使用var吗? 最佳答案 以Babel为例,它是ECMAScript2015(ES6)到ECMAScript5的转译器。如果你写:consta=123;输出:"usestrict";vara=123;如果在不受支持的浏览器上破坏您的代码的可能性还不够,我认为应该是。

javascript - setTimeout 是 JavaScript 本身的一部分还是它只是浏览器提供的一个 API?

setTimeout是JavaScript本身的一部分还是它只是浏览器提供的一个API?它是ES的一部分吗? 最佳答案 setTimeout()函数实际上由浏览器的window对象公开,因此它们不一定在ECMAScript规范中定义,因为它们不是JavaScript功能,它们是浏览器本身的功能。您可以从之前链接的文档中的规范部分看到它使用了WHATWGHTMLLivingStandard:与split()这样的Javascript函数相反明确使用EMACScript: 关于javascr

javascript - 访问 Angular2 JavaScript ES5 组件中的元素

编辑:由于目前大多数评论都给出了TypeScript解决方案,我觉得我需要在这里重复一遍:使用JavaScriptES5。我想创建一个Canvas组件,我在其中根据绑定(bind)属性绘制数据。我如何在Angular2中使用JavaScript执行此操作?我使用Angular1的方法是在指令中获取元素引用,但我现在不知道应该如何完成。这是一个似乎有效的方法,但我想在这样做后洗手:(function(app){app.DrawingComponent=ng.core.Component({selector:'my-drawing',template:'<di