javascript

java

python

c#

android

c++

node.js

php

html

jquery

ios

reactjs

css

.net

git

ruby-on-rails

sql

c

ruby

string

javascript-ES6动态类名

我一直在尝试ES6类,并且想知道是否可以动态更改类名? 例如

class [Some dynamic name] {}; 
trans by 2020-08-10T14:26:01Z

ecmascript 6-使用es6和babel-nod从根目录导入节点模块

我正在使用Babel Transpiler用es6编写一个节点应用程序。

我的根目录上有2个文件index.jsmy-module.js

- index.js
- my-module.js

my-module.js

export let myFunc = () => {
  console.log('myFunc was called!!!');
}

index.js

import {myFunc} from './my-module';
myFunc();

如果我从命令行运行以下行,则一切正常。

$ babel-node index.js >> myFunc was called!!!

但是如果在导入我的模块时删除了点:

import {myFunc} from '/my-module';
myFunc();

我收到一个错误:

Error: Cannot find module '/my-module'

为什么我不能使用绝对路径导入模块? 无论如何要更改.babelrc配置以支持它?

谢谢

trans by 2020-08-09T01:44:51Z

Javascript-ECMAScript文档中的SpreadElement是什么? 它与MDN的Spread语法相同吗?

在ECMAScript规范中,描述了SpreadElement

SpreadElement[Yield]:
...AssignmentExpression[In, ?Yield]

这和Spread语法一样吗

扩展语法允许将迭代式(例如数组表达式或字符串)扩展到期望零个或多个参数(对于函数调用)或元素(对于数组文字)的扩展,或将对象表达式扩展在零个或多个 键值对(用于对象文字)是必需的。

句法

对于函数调用:

SpreadElement

对于数组文字:

SpreadElement

在MDN文档中有描述?

SpreadElement的用例是什么,或者是扩展语法? 如果SpreadElement和扩展语法不同,则它们在哪些特定方面不同?

trans by 2020-08-08T22:12:50Z

Javascript-导入ES6模块是否在导入文件中执行代码?

js文件中的代码是否在导入期间运行? 如果是,那么一次还是每次?例如

// a.js
console.log("A");
const a = "a"; 
export default a;

// b.js
import a from "./a"; // => console logs?

// c.js
import a from "./a"; // => console logs again?
trans by 2020-08-03T13:20:02Z

javascript-以HTML格式内联ECMAScript模块

我一直在尝试新的本机ECMAScript模块支持,该支持最近已添加到浏览器中。 最终能够直接从JavaScript干净地导入脚本是令人高兴的。

 /example.html 🔍 
<script type="module">
  import {example} from '/example.js';

  example();
</script>
 /inline-id.html 🔍 
export function example() {
  document.body.appendChild(document.createTextNode("hello"));
};

但是,这仅允许我导入由单独的外部JavaScript文件定义的模块。 我通常喜欢内联一些用于初始呈现的脚本,因此它们的请求不会阻塞页面的其余部分。 使用传统的非正式结构库,可能看起来像这样:

 /inline-id.html 🔍 
<body>
<script>
  var example = {};

  example.example = function() {
    document.body.appendChild(document.createTextNode("hello"));
  };
</script>
<script>
  example.example();
</script>

但是,天真的内联模块文件显然不起作用,因为它会将用于标识该模块的文件名删除为其他模块。 HTTP / 2服务器推送可能是处理这种情况的规范方法,但并非在所有环境中都是一种选择。

是否可以使用ECMAScript模块执行等效转换?  /inline-id.html 🔍 是否可以导入同一文档中另一个模块导出的模块?


我想这可以通过允许脚本指定文件路径来工作,并且表现得好像它已经从路径下载或推送一样。

 /inline-id.html 🔍 
<script type="module" name="/example.js">
  export function example() {
    document.body.appendChild(document.createTextNode("hello"));
  };
</script>

<script type="module">
  import {example} from '/example.js';

  example();
</script>

或者可能是通过完全不同的参考方案,例如用于本地SVG参考的:

 /inline-id.html 🔍 
<script type="module" id="example">
  export function example() {
    document.body.appendChild(document.createTextNode("hello"));
  };
</script>
<script type="module">
  import {example} from '#example';

  example();
</script>

但是这些假设都没有实际起作用,而且我还没有看到一种可行的选择。

trans by 2020-08-01T09:35:20Z

javascript-Object.assign-覆盖嵌套属性

我有一个像b这样的对象:

const a = {
  user: {
   …
   groups: […]
   …
  }
}

因此在b中有更多的属性

我只想更改b的值。 如果我这样做:

const b = Object.assign({}, a, {
  user: {
    groups: {}
  }
});

bb.user.groups外没有任何其他属性,所有其他属性均被删除。 是否有任何ES6方法仅更改嵌套属性,而不会丢失其他所有属性(使用Object.assign)?

trans by 2020-08-01T03:55:10Z

javascript-ES6承诺结算回调?

无论我的Promise是否成功解决,我都想执行相同的操作。 我不想将相同的功能绑定到.then的两个参数。是否没有像jQuery一样的.always? 如果没有,我该如何实现?

trans by 2020-07-31T22:36:33Z

javascript-类型'ObjectConstructor'不存在属性'entries'

我正在研究ng2实现。 我正在使用以下函数调用将对象转换为数组:

var authors = Object.entries(responseObject.Authors);

这是一个标准的js函数。 但是,ts编译器返回以下错误:

"Property 'entries' does not exist on type 'ObjectConstructor'"

根据一个快速的谷歌,看来解决方案可能是将CompilerOptions target属性从es5更改为es6。 但是,在对以前的问题进行了一些先前的研究之后,我认为我可以通过在下面的tsconfig.json中包含其他“ lib”属性来利用es6功能:

  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "module": "commonjs",
    "noEmitOnError": true,
    "noImplicitAny": false,
    "outDir": "../Scripts/",
    "removeComments": false,
    "sourceMap": true,
    "target": "es5",
    "moduleResolution": "node",
    "lib": [
      "es2015",
      "dom"
    ]
  }

我还尝试将target属性更改为es2015,然后重建项目并执行“ typescriptUsingTsConfig”,但仍然出现相同的错误。 知道我可以在这里做什么以利用Object.entries()函数吗?

trans by 2020-07-27T21:30:33Z

ecmascript 6-使用index.js从'/ folder'导入javascript

我注意到一些情况下,我看到以下内容:

// /reducers/reducer1.js
export default function reducer1(state = {}, action){
  // etc...
}
  
// /reducers/reducer2.js
export default function reducer2(state = {}, action){
  // etc...
}

// /reducers/index.js
import { combineReducers } from 'redux';
import reducer1 from './reducer1';
import reducer2 from './reducer2';

export default combineReducers({
  reducer1,
  reducer2
})
  
// /store.js
import masterReducer from './reducers';

export default function makeStore(){
  // etc...
}

注意我们称为import的最后一个“文件”-一些人似乎认为这应该从index.js文件导入requires

这实际上是规范的一部分吗? -我的解释/问题是,这是许多人使用WebPack v1将import语句转换为CommonJS样式的requires语句的结果吗? 还是在WebPack v2中使用“官方” import/export支持这一突破?

trans by 2020-07-26T05:31:40Z

javascript-重新导出ES 6模块中的默认值

在ES6中,可以缩短以下代码。 我有App.js文件和index.js

index.js

import App from './App';

export default App;

像这样

index.js

export default App from './App.js'
trans by 2020-07-21T18:06:57Z

javascript-是否有办法判断ES6承诺是否已兑现/拒绝/已解决?

这个问题已经在这里有了答案:

  • 如何同步确定JavaScript Promise的状态? 19个答案

我习惯了Dojo的承诺,在这里我可以执行以下操作:

promise.isFulfilled();
promise.isResolved();
promise.isRejected();

有没有一种方法可以确定ES6承诺是否得到履行,解决或拒绝? 如果没有,是否有办法使用Object.defineProperty(Promise.prototype, ...)来填充该功能?

trans by 2020-07-14T09:31:49Z

Douglas Crockford谈JavaScript中的免费类OOP

道格拉斯·克罗克福德(Douglas Crockford)对ES6的“更好的零件”进行了非常好的演讲。 除其他外,他鼓励放弃原型继承,转而使用无类的OOP。

在这里,他说他停止使用newObject.createthis,但并未真正解释替代方案。 任何人都可以填写一下它的外观吗?

trans by 2020-07-11T01:40:19Z

javascript-ES6的箭头功能中的“ this”指的是什么?

我在几个地方都读到,主要区别在于“ this在箭头函数中按词法绑定”。 一切都很好,但是我实际上不知道那意味着什么。

我知道这意味着它在定义函数主体的大括号范围内是唯一的,但我实际上无法告诉您以下代码的输出,因为我不知道this指的是什么,除非它指的是粗箭头 函数本身...。似乎没有用。

var testFunction = () => { console.log(this) };
testFunction();
trans by 2020-07-09T21:14:10Z

javascript-TypeError:无法与“ undefined”或“ null”匹配

client.createPet(pet, (err, {name, breed, age}) => {
  if (err) {
    return t.error(err, 'no error')
  }
  t.equal(pet, {name, breed, age}, 'should be equivalent')
})

错误

client.createPet(pet, (err, {name, breed, age}) => {
                        ^

TypeError: Cannot match against 'undefined' or 'null'.

为什么会出现此错误? 我对ES6的了解使我推测,仅当阵列或对象被解构或其子级为undefinednull时,才会出现此错误。

我不知道将函数参数用作匹配项。 如果它们是它们,那么为什么我尝试破坏其中之一只是一个错误? (不是undefinednull)。

trans by 2020-07-09T08:39:06Z

ecmascript 6-在JavaScript中有条件地在Array中添加元素

当我尝试使用传播运算符有条件地合并两个对象时,当条件为ArrayObject时,它将起作用:

let condition = false;
let obj1 = { key1: 'value1'}
let obj2 = {
  key2: 'value2',
  ...(condition && obj1),
};

// obj2 = {key2: 'value2'};

当我尝试对数组使用相同的逻辑时,它仅在条件为Array时才有效:

let condition = true;
let arr1 = ['value1'];
let arr2 = ['value2', ...(condition && arr1)];

// arr2 = ['value2', 'value1']

如果条件为Array,则会引发错误:

Array

为什么ArrayObject之间的行为不同?

trans by 2020-07-06T05:18:55Z

当提供一个参数时,在ES6中将NULL作为参数传递不会使用默认参数

是否存在已知原因,为什么在提供ES535时将null作为参数传递给ES6而不使用默认参数?

function sayHello(name = "World") {
    console.log("Hello, " + name + "!");
}

sayHello("Jim");     // Hello, Jim!
sayHello(undefined); // Hello, World!
sayHello(null);      // Hello, null!
trans by 2020-07-05T20:57:14Z

javascript-React中的Export(默认)类

如果要创建组件,似乎可以用很多不同的方式创建类。 这些有什么区别? 我怎么知道要使用哪个?

import React, {Component} from 'react'

export default class Header extends Component {

}

export const Header = React.createClass({

})

export default React.createClass({

})

我只是假设他们做不同的事情,还是只是语法不同?

如果有人可以给我快速的解释或链接,我将不胜感激。 我不想从一个新的框架开始,不知道到底有什么区别。

trans by 2020-07-04T07:25:09Z

javascript-现代浏览器中的TypeScript支持

我刚刚阅读了一些与TypeScript相关的广告信息,此外,我没有使用此JavaScript超集的经验。 所以我有一些基本问题:

  1. 现代浏览器对本机TypeScript的支持情况如何?
  2. 主要的浏览器供应商对于TypeScript本身的未来支持持何立场?
  3. TypeScript和ECMAScript6之间有什么关系?TypeScript是否提供比ECMAScript6更多的功能?

随意回答所有或部分问题。 谢谢。

trans by 2020-07-03T12:58:24Z

Javascript-为什么不鼓励使用Airbnb样式指南说依赖函数名推断?

// bad
class Listing extends React.Component {
  render() {
    return <div>{this.props.hello}</div>;
  }
}

// bad (relying on function name inference is discouraged)
const Listing = ({ hello }) => (
  <div>{hello}</div>
);

// good
function Listing({ hello }) {
  return <div>{hello}</div>;
}

这取自Airbnb react样式指南。 有人可以解释为什么“不鼓励依赖函数名推断”吗? 只是样式问题吗?

trans by 2020-07-03T01:44:55Z

reactjs-使用ES6类反应静态

静态对象是否可以与React中的ES6类一起使用?

class SomeComponent extends React.Component {

  render() {
    // ...
  }

}

React.statics = {
  someMethod: function() {
    //...
  }
};

当我执行SomeComponent.someMethod()时,上述内容为我提供了未定义的方法SomeComponent.someMethod()

trans by 2020-07-02T23:05:18Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一页 共25页