相关疑难解决方法(0)

使用命名参数JavaScript(基于打字稿)

我有问题,当在TypeScript中使用命名参数时,我知道它不支持我在TS中使用它的方式.但我怎么能

打字稿:

SomeFunction(name1: boolean, name2: boolean, name3: boolean, name4: boolean) //will occur only 1 time, so the change should be in typescript
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

$(function () {
     ...SomeFunction({name1:false, name2:false, name3:false, name4:true}); //will occur 100 times    
});
Run Code Online (Sandbox Code Playgroud)

我在看(这没有用):

在javascript中命名参数

如何将可选的命名参数添加到TypeScript函数参数中?

我可以在TypeScript中做什么,在JavaScript中使用命名参数?

我想知道的是,当我在TypeScript中使用它时,VS2015在使用命名参数时没有显示语法错误...

ps.:我使用TS 2.1

javascript typescript

11
推荐指数
3
解决办法
2万
查看次数

在node.js中使用命名参数

我正在使用node.js v4.3.1

我想在调用函数时使用命名参数,因为它们更具可读性.

在python中,我可以用这种方式调用函数;

info(spacing=15, width=46)
Run Code Online (Sandbox Code Playgroud)

我如何在node.js中做同样的事情?

我的javascript函数看起来像这样;

function info(spacing, width)
{
   //implementation
{
Run Code Online (Sandbox Code Playgroud)

javascript function named-parameters node.js

10
推荐指数
2
解决办法
7836
查看次数

javascript var语句和性能

选项1:没有赋值的多个var

function MyFunction() {

  var a = null;
  var b = null;
  ....
  var z = null;

  a = SomeValue;
  b = SomeValue2;
  ....
}
Run Code Online (Sandbox Code Playgroud)

选项2:一个var语句,没有赋值

function MyFunction() {

  var a, b ..., z;

  a = SomeValue;
  b = SomeValue2;
  ....
}
Run Code Online (Sandbox Code Playgroud)

选项3:带赋值的多个var语句

function MyFunction() {

  var a = SomeValue;
  var b = SomeValue2;
  ....
  var z = SomeValue26;
}
Run Code Online (Sandbox Code Playgroud)

使用特定选项有任何性能优势吗?原始类型赋值AND对象引用赋值是否属实?

感谢您的输入.

javascript performance variable-declaration

6
推荐指数
2
解决办法
4178
查看次数

将值传递给特定参数,而不关心参数的位置

我想知道是否可以通过例如指定其名称来将值传递给特定参数,而不考虑该参数是第一个,第二个还是第100个.

例如,在Python中,您可以轻松地执行以下操作:

def myFunction(x, y):
    pass

myFunction(y=3);
Run Code Online (Sandbox Code Playgroud)

我真的需要将一个值传递给一个特定的参数,我不知道它在参数枚举中的位置.我已经搜索了一段时间,但似乎没有任何效果.

javascript parameters

5
推荐指数
2
解决办法
4730
查看次数

第一个 JavaScript 参数是否可以使用默认值?

最后一个参数具有默认值是很实用的,如下所示。

function add(x, y = 5) {
    return x + y;
}

console.log(add(3)); // results in '8'
Run Code Online (Sandbox Code Playgroud)

但是,除了最后一个参数之外,是否可以使用默认值?如果是这样,您将如何调用它以使用第一个默认值,但提供第二个参数?

function add(x = 5, y) {
    return x + y;
}
    
console.log(add(,3)); // doesn't work
Run Code Online (Sandbox Code Playgroud)

javascript default-parameters

5
推荐指数
1
解决办法
2446
查看次数

在函数调用中“使用严格”和命名参数

一位同事建议我添加"use strict";到我的 JS 代码的顶部,以突出我的定义中的任何差距和潜在的引用错误等。我对此非常满意,因为它已经确定了几段可能存在问题的代码.

但是,另一位同事告诉我,在调用带有多个参数的函数时,按照指定的方式命名参数会很有帮助,尤其是当它是一堆布尔值时。为了说明,这里有几个函数调用:

logData(data, target, preserveLog=true, changeClass=false, wrapLine=false);
Run Code Online (Sandbox Code Playgroud)

...比:

logData(data, target, true, false, false);
Run Code Online (Sandbox Code Playgroud)

但是"use strict";讨厌这个。在我执行此操作的任何地方,我都会在控制台中收到参考错误。正如预期的那样,它仍然运行良好,但控制台现在被所有这些明显未定义的引用弄得乱七八糟。

有谁知道是否有办法解决这个问题,以便我可以保留我的同事欣赏的编码约定,或者我将不得不停止使用"use strict";或检查我的所有代码并删除参数名称?

谢谢。

javascript calling-convention use-strict

1
推荐指数
2
解决办法
807
查看次数

将对象的属性应用于函数的参数

假设我有一个函数(可能来自第三方库,假设我无法更改其定义),以及一个具有与函数参数匹配或重叠的属性的对象:

function fn(foo, bar, baz) { /* do stuff */ }
var obj = { foo: "yes", bar: 7, baz: false }
Run Code Online (Sandbox Code Playgroud)

有没有办法使用某种解构或扩展赋值或其他一些 ES6 功能来将对象属性应用为函数参数,或者我是否坚持单独指定每个参数?

fn(...obj); // Doesn't work
fn(obj.foo, obj.bar, obj.baz); // Convoluted but works
fn.apply(null, obj.values()); // Might work if you're lucky
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

1
推荐指数
1
解决办法
365
查看次数