相关疑难解决方法(0)

"x = x || 0"的目的是什么?

在查看我在网上找到的一些代码时,我发现了这个特殊的代码行(Javascript):

function values(b) {
    this.b = b || 0;
}
Run Code Online (Sandbox Code Playgroud)

我根本想不出来的目的是什么||0.如果我没有弄错,因为||返回一个布尔值,这个值b将始终是参数的布尔等效值.如果b传递为真(即1true),那么b应该是真的; 否则,使用其中一个false值(即.NaN,0),这应该是假的.然后我解释如下:

btrue:

this.b = true || false; // will evaluate to true
Run Code Online (Sandbox Code Playgroud)

bfalse:

this.b = false || false; // will evaluate to false
Run Code Online (Sandbox Code Playgroud)

我只是没有看到通过添加获得的价值||0.有人可以向我解释一下吗?

javascript

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

逗号在构造中的含义是什么(x = x || y,z)?

所以我遇到了一个答案,但这还不足以扩展我的知识库.

我一直在寻找x = x || y, zStackOverflow中的意义

我找到了这个. 构造x = x ||是什么 你的意思是?

但问题是什么, z呢?

我经常看到这些表达 window.something = window.something || {}, jQuery

我已经知道如果false在第一个参数上返回,那么{}将被分配给该something属性.

我的问题是,有什么, jQuery用?

有人可以启发我并用这个非常重要的知识吸引我吗?

更新 8/11/2014

所以我试着做试验.

var w = 0, x = 1,y = 2,z = 3;
var foo = w || x || y, z; //I see that z is a declared variable
console.log(foo); //outputs 1
Run Code Online (Sandbox Code Playgroud)

和它一样.

var w = 0, x = 1,y …
Run Code Online (Sandbox Code Playgroud)

javascript syntax

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

ES6构造函数对象param的默认值

我试图用定义的构造函数定义一个Javascript类,其中params具有最合适的ES6语法.首先,很容易像这样定义它.

let param1 = 10;
let param2 = 'foo';
let param3 = 200;
let param4 = 'bar';

let props = {id: param1, options: { op1: param2, op2: param3, op3: param4 }};

console.log('Object props');
console.log(props);

class Test {
  
  constructor(props){
    this.id = props.id;
    this.options = props.options;
  }
  
}

let test1 = new Test(props);
console.log('Class test1');
console.log(test1.id);
console.log(test1.options.op2);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用解构来定义默认值时,对于构造函数的一个参数(op2嵌套对象的属性options),我无法使其工作,而对于id对象的属性,我能够:

let param1 = 10;
let param2 = 'foo';
let param3 = 200;
let param4 = 'bar';

let props …
Run Code Online (Sandbox Code Playgroud)

javascript constructor class ecmascript-6

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

使用|| 经营者通知

Javascript代码:

var a = (b) ? b : 40;
Run Code Online (Sandbox Code Playgroud)

它正在运行,只是NetBeans说:"使用||运算符(列[在哪里?])".我没有找到任何解释.

它是什么?

谢谢!

javascript netbeans use-strict

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

`var options = options ||之间的区别 {}`和`选项|| (options = {})`

我经常使用var options = options || {}默认为空对象的方式.它通常用于初始化选项对象,以防它未在函数调用的参数中传递.

事情是我在几个地方(博客文章,源代码)阅读,options || (options = {})更好地表达了开发人员的意图.有人可以详细说明吗?我没有看到两者之间的功能差异,所以我必须在这里找到一些东西.

---编辑

我在几个地方看过Backbone.js源代码,比如https://github.com/documentcloud/backbone/blob/0.9.2/backbone.js#L273

我想我也是在jQuery的源代码中也看到过它.并且在多个Js写作风格指南中蓬勃发展.

---编辑2代码示例:

var func = function(param, options) {
   // How I do it
   var options = options || {};
   // How I should do it in the "same" way
   options = options || {};
   // The "other" way
   options || (options = {});

}
Run Code Online (Sandbox Code Playgroud)

javascript

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

Javascript短路(奇怪的使用II/OR运算符)

我遇到了这段代码:

<a  ng-click= "item.statusId !== itemStatus.in || transfer()">
Run Code Online (Sandbox Code Playgroud)

我想我们可以概括为:

<element ng-click = "someVar !== someValue || doStuff()">
Run Code Online (Sandbox Code Playgroud)

然后我发现这篇文章是关于短路的,另一篇是关注的文章,一旦我知道它们被称为什么.但是,我仍然没有得到它.

如果第一个语句的计算结果为true,它是否基本上符合OR语句结束评估的原则?因此,如果第一个语句为真,则结束评估,如果为false,则在OR语句的后半部分运行该函数?(这是我要问的主要问题,其他一切都是额外的).

我想我得到的部分是编译器是否以不同方式解释此代码,或者它仍然计算为false并且只运行该函数.甚至不确定如何短语Q.

javascript angularjs

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

设置与自己相等的东西有什么意义?

我刚刚看到有人传入函数的这个问题window.Module = window.Module || {}.

例如:

(function(module){
    // do something with module
})(window.Module = window.Module || {});
Run Code Online (Sandbox Code Playgroud)

我理解如果window.Module未定义(或者就此而言是假的)那么{}就会被传入,但是设置中的重点是什么window.Module呢?


对于发布答案的人:

我把代码读作:

if(!(window.Module = window.Module)) {
     // pass {} into function
}
else {
     // pass window.Module = window.Module into function 
     // (which makes NO sense to me)
}
Run Code Online (Sandbox Code Playgroud)

javascript variables parameters module-pattern

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

|| 有什么作用 {} 表示在 JavaScript 中?

我对在 Google Maps API 中找到的这段代码感到困惑:

window.google = window.google || {};
google.maps = google.maps || {};
Run Code Online (Sandbox Code Playgroud)

以及我在书中看到的其他代码:

var QQ = QQ || {};
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

为什么要在 JavaScript 文件的开头打印该代码?

javascript

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

什么是|| 在这个诉讼中意味着什么?

通常,|| 意味着或者,但在这种情况下它意味着什么:

function getCharCount ( e,s ) {
    s = s || ",";
    return getInnerText(e).split(s).length;
}      
Run Code Online (Sandbox Code Playgroud)

javascript

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

"对象|| {}"在javascript中的含义是什么?

我在javascript应用程序中找到了以下代码行.

var auth = parent.auth = parent.auth || {};
Run Code Online (Sandbox Code Playgroud)

我知道现有的Object父对象是用auth Object扩展的,但我不明白parent.auth || {}这里做了什么.

javascript jquery javascript-objects

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