在ES6(ES2015 / JavaScript.next / Harmony)中是否存在一个null -safe属性访问(空传播/存在)运算符?. 在CoffeeScript例如? 还是计划在ES7? var aThing = getSomething() … aThing = possiblyNull?.thing 这将大致如下: if (possiblyNull != null) aThing = possiblyNull.thing 理想情况下,解决scheme不应该为aThing分配(甚至是undefined ),如果aThing为null
我正在试验ES6,而我使用gulpbuild立和babel来转录到ES5。 输出不在节点中运行,只是从具有标记的.htm文件链接而来。 我想我需要补充 <script src='require.js'></script> 或类似的东西。 我试图导入/导出。 ////////////////scripts.js import {Circle} from 'shapes'; c = new Circle(4); console.log(c.area()); /////////////////shapes.js export class Circle { circle(radius) { this.radius = radius; } area() { return this.radius * this.radius * Math.PI; } } 错误是 Uncaught ReferenceError: require is not defined 指这个(在pipe(babel())之后) var _shapes = require('shapes');
我目前通过webpack / bable在React应用程序中使用ES6。 我正在使用索引文件来收集模块的所有组件并将其导出。 不幸的是,这看起来像这样: import Comp1_ from './Comp1.jsx'; import Comp2_ from './Comp2.jsx'; import Comp3_ from './Comp3.jsx'; export const Comp1 = Comp1_; export const Comp2 = Comp2_; export const Comp3 = Comp3_; 所以我可以很好地从这样的其他地方导入它: import { Comp1, Comp2, Comp3 } from './components'; 显然这不是一个很好的解决scheme,所以我想知道,如果有其他的方法。 我似乎无法直接导出导入的组件。 最好的祝福
ES6在节点4中是完全可用的。我想知道它是否包含一个定义方法合约的接口的概念,就像在MyClass implements MyInterface 。 我找不到我的谷歌search,但也许有一个很好的技巧或解决方法可用。
花了一些时间学习React后,我了解了创build组件的两个主要范例之间的区别 我的问题是我应该什么时候使用哪一个,为什么? 相互之间有什么好处/权衡? ES6 / 7class: import React, { Component } from 'react'; export class MyComponent extends Component { render() { return ( <div></div> ); } } function: const MyComponent = (props) => { return ( <div></div> ); } 我想在没有任何状态被这个组件所操纵的情况下是function性的……但是这样吗? 我猜如果我使用任何生命周期方法,最好使用基于类的组件。
在JavaScript中循环x次的典型方式是: for (var i = 0; i < x; i++) doStuff(i); 但是我不想使用++运算符或者任何可变variables。 那么在ES6中有没有办法以另一种方式循环x次? 我喜欢Ruby的机制: x.times do |i| do_stuff(i) end 在JavaScript / ES6中有类似的东西吗? 我可以欺骗,做我自己的发电机: function* times(x) { for (var i = 0; i < x; i++) yield i; } for (var i of times(5)) { console.log(i); } 当然,我仍然在使用i++ 。 至less它是看不见的:),但我希望在ES6中有一个更好的机制。
我很困惑,在ECMAScript 6类中,getter和setter是什么意思。 什么目的? 下面是我所指的一个例子: class Employee { constructor(name) { this._name = name; } doWork() { return `${this._name} is working`; } get name() { return this._name.toUpperCase(); } set name(newName){ if(newName){ this._name = newName; } } }
我已经看到公共出口的ES6模块在以下两个方面完成: // method 1 export var getAnswer = function () { return 'forty two'; }; // method 2 export default function () { return 'forty two'; }; 这两个都有效吗? 如果是这样,为什么他们都存在? 有使用ES6语法的模块导出其他有效的选项? 我很惊讶,我一直无法find我的googlefu答案。 我只关心ES6模块, 而不是 CommonJS,RequireJS,AMD,Node等。
我正准备发布一个模块给NPM,当时我想到在ES6中重写它,同时面向未来,学习ES6。 我使用Babel来转换到ES5,并运行testing。 但我不知道如何继续: 我是否要编译并将结果/输出文件夹发布到NPM? 包含结果文件夹在我的Github回购? 还是我维护2个仓库,一个是Github的ES6代码+ gulp脚本,另一个是经过转换的结果+ NPMtesting? 简而言之:我需要采取什么步骤将ES6中编写的模块发布到NPM,同时还允许用户浏览/分离原始代码?
比方说,我有一个variables,我想出口。 有什么区别 export const a = 1; VS export let a = 1; 我明白const和let之间的区别,但是当你导出它们时,有什么区别?