相关疑难解决方法(0)

如果没有"function"关键字,此对象方法定义如何工作?

我意外地忽略了function关键字而发现了这一点.通常foobar下面模块中的方法将被声明为foobar: function(arg1),但有趣的是以下工作,至少在某些浏览器中,例如Chrome版本44.0.2403.157 m,但它在IE 11.0.9600.17959中失败

在任何浏览器中都可以运行它怎么可能?这是某种新的ES6功能吗?

var module = {
    foobar(arg1) {
        alert(arg1);
    }
};

module.foobar("Hello World");
Run Code Online (Sandbox Code Playgroud)

javascript methods function shorthand ecmascript-6

18
推荐指数
2
解决办法
3843
查看次数

函数定义中"... args"(三个点)的含义是什么?

在Javascript中阅读此语法对我来说真的很混乱:

router.route('/:id')
.put((...args) => controller.update(...args))
.get((...args) => controller.findById(...args));
Run Code Online (Sandbox Code Playgroud)

什么... args意味着什么?

javascript express ecmascript-6

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

没有函数或json的JavaScript花括号

刚打开一个客户端的javascript文件,第一行是这样的:

{
    var s_account="blog";
}
Run Code Online (Sandbox Code Playgroud)

我没有得到.通常,根据我的经验,花括号缠绕一个函数...

function welcome(){ ...
Run Code Online (Sandbox Code Playgroud)

......或者 JSON JavaScript对象

var attributes = { this : "that...
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我为什么在他们之前或之后没有文字的花括号?它做了什么/有什么意义呢?

javascript

14
推荐指数
5
解决办法
2430
查看次数

[] ==![]计算结果为true

我想知道为什么标题中给出的表达式

[] == ![]

被评估为true.

您无法将数组作为字符串进行比较.我明白了.如果

[] == []

将评估为false,因为引用不同.虽然我们有以下声明.

var arr = []; 
arr == arr // this evaluates to true simply because references are the same.
Run Code Online (Sandbox Code Playgroud)

按顺序A == B返回trueA和B必须是falsetrue.A ==!B为了返回true A可以true和B可以false相反,但在这种情况下,A和B是相同的值,所以我不明白.

javascript arrays compare

14
推荐指数
3
解决办法
4153
查看次数

&&=、||= 和 ??= 有何用途?

v15.0.1中看到过这种语法: &&=,||=??=。但我不知道它有什么作用。有人知道吗?

javascript operators node.js

13
推荐指数
2
解决办法
1590
查看次数

多么奇怪的语法?

我发现JQuery网站上的代码构造未知.经过一些格式化,它看起来像:

function (a,c) {
    c==null && (c=a,a=null);
    return arguments.length>0
        ? this.bind(b,a,c) 
        : this.trigger(b)
}
Run Code Online (Sandbox Code Playgroud)

该函数的第一行是什么意思?是任何技巧或标准JS代码构造?

javascript

12
推荐指数
2
解决办法
766
查看次数

在Javascript中,<int-value> =="<int-value>"的计算结果为true.为什么会这样?

如果我做0 =="0"则评估为真.尝试,

if( -777 == "-777" ) alert("same");
Run Code Online (Sandbox Code Playgroud)

警报发生.

并且,值得注意的是,true =="true"不会评估为true.尝试,

if( false == "false" ) alert("same");
Run Code Online (Sandbox Code Playgroud)

警报不会发生.

为什么会这样?

javascript variables comparison

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

JavaScript中的可选链接

我最近在Swift编程了很多.今天,当我遇到问题时,我在JavaScipt做了一些工作:

是否有类似于JavaScript中的可选链接?一种防止undefined is not an object没有任何变量的方法?

例:

function test(){
   if(new Date() % 2){
      return {value: function(){/*code*/}};
   }
} 

test().value();
Run Code Online (Sandbox Code Playgroud)

将失败一半的时间因为有时会test返回undefined.

我能想到的唯一解决方案是功能:

function oc(object, key){
   if(object){
      return object[key]();
   }
}

oc(test(), 'value');
Run Code Online (Sandbox Code Playgroud)

我希望能够做到这样的事情:

test()?.value()
Run Code Online (Sandbox Code Playgroud)

问号后面的部分仅在test返回对象时执行.

但这不是很重要.还有更好的东西吗?运营商的神奇组合?

编辑我知道我可以重写test以返回一些东西.但我想知道是否有类似可选链接的东西.我对上面例子的特定解决方案不感兴趣.如果无法控制返回undefined的函数,我也可以使用的东西.

javascript

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

x | 0如何在JavaScript中添加数字?

在我之前的问题中接受的答案(在javascript中生成随机整数的最快方法是什么?),我想知道一个数字如何通过符号丢失其小数| .

例如:

var x = 5.12042;
x = x|0;
Run Code Online (Sandbox Code Playgroud)

那个数字5到底是怎么回事?

更多例子:

console.log( 104.249834 | 0 ); //104
console.log( 9.999999 | 0 );   // 9
Run Code Online (Sandbox Code Playgroud)

javascript integer numbers floor

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

javascript es6数组功能[...数据,0]"传播运算符"

我在一些示例代码中遇到了这个,我完全迷失了.

const addCounter = (list) => {
    return [...list, 0];  // This is the bit I am lost on, and I don't know about [...list, 0]
}
Run Code Online (Sandbox Code Playgroud)

显然以上等于以下内容:

const addCounter = (list) => {
    return list.concat([0]);
}
Run Code Online (Sandbox Code Playgroud)

任何建议或解释都非常感谢.

javascript ecmascript-6

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