相关疑难解决方法(0)

构造x = x ||是什么 你的意思是?

我正在调试一些JavaScript,并不能解释这||是做什么的?

function (title, msg) {
  var title = title || 'Error';
  var msg   = msg || 'Error on Request';
}
Run Code Online (Sandbox Code Playgroud)

有人可以给我一个提示,为什么这个人正在使用var title = title || 'ERROR'?我有时也会在没有var声明的情况下看到它.

javascript parameters optional-parameters or-operator

230
推荐指数
9
解决办法
11万
查看次数

为什么typeof null"对象"?

我正在阅读'Web开发人员的专业Javascript'第4章,它告诉我五种类型的原语是:undefined,null,boolean,number和string.

如果null是原始的,为什么会typeof(null)回归"object"

null是不是意味着通过引用传递(我假设所有对象都通过引用传递),因此使它不是原始的?

javascript primitive

220
推荐指数
6
解决办法
8万
查看次数

如何使用lodash从对象中删除undefined和null值?

我有一个Javascript对象,如:

var my_object = { a:undefined, b:2, c:4, d:undefined };
Run Code Online (Sandbox Code Playgroud)

如何删除所有未定义的属性?

javascript object lodash

145
推荐指数
12
解决办法
13万
查看次数

根据值列表检查变量相等性

我正在检查一个变量,例如foo,与多个值的相等性.例如,

if( foo == 1 || foo == 3 || foo == 12 ) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

关键是这个繁琐的任务代码相当多.我想出了以下内容:

if( foo in {1: 1, 3: 1, 12: 1} ) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

但这并不完全吸引我,因为我必须为对象中的项目提供冗余值.

有没有人知道对多个值进行相等检查的正确方法?

javascript

122
推荐指数
8
解决办法
11万
查看次数

区分+0和-0

事实证明,+0 === -0计算结果为true,尽管+0-0不同的实体.那么,你如何区分+0-0

有一个黑客:

if (1 / myZero > 0) {
   // myZero is +0
} else {
   // myZero is -0
}
Run Code Online (Sandbox Code Playgroud)

我可以做得更好吗?

javascript

36
推荐指数
3
解决办法
2957
查看次数

为什么document.all麻痹?

document.all 是DOM中的非基本对象,是虚假的.

例如,此代码不执行任何操作:

if (document.all) {
    alert("hello");
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么会这样吗?

javascript dom

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

理解JavaScript Truthy和Falsy

有人可以使用下面的示例数据解释JavaScript Truthy和Falsy.我已阅读其他主题但仍感到困惑.

var a = 0;

var a = 10 == 5;

var a = 1; 

var a = -1;
Run Code Online (Sandbox Code Playgroud)

根据我的理解,我相信这var a = 1;是唯一的真理,其余的都是假的 - 这是正确的吗?

javascript

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

使用 `status == true` 时,布尔条件始终为 false

所以我刚开始学习 javascript,我现在在函数模块中,我正在玩它,突然我遇到了一个疑问:

为什么是这样:

if(x==true){
 return 1;
}
Run Code Online (Sandbox Code Playgroud)

与此不同:

if(x){
 return 1;
}
Run Code Online (Sandbox Code Playgroud)

?

你看,我有这个代码:

function isAdult(age){
    if(age >= 18){
        return true;
    }
    return false;
}

function nameAndAge(string, boolean){
    if(boolean == true){

        var my_string = string + " is adult";
        return my_string
    }
    var my_string = string + " is under age";
    return my_string

}

var talisa_age = 22;
var talisa_name = "Talisa Maegyr";

var status = isAdult(talisa_age);

var str = nameAndAge(talisa_name,status);
console.log(str)
Run Code Online (Sandbox Code Playgroud)

无论“talisa_age”值如何,我都会得到以下输出:

"Talisa Maegyr is under age"
Run Code Online (Sandbox Code Playgroud)

但是,如果我将 nameAndAge …

javascript boolean

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

JavaScript中的虚假值

今天我有一个有趣的面试问题,让我有点困惑.我被问及虚假的价值观.所以undefined,NaN,null,0和一个空字符串都计算为false.在JavaScript中知道这有用的原因是什么?我唯一能想到的就是不必这样做:

if (mystring === '' || mystring === undefined) { }
Run Code Online (Sandbox Code Playgroud)

我可以做这个:

if (!mystring)
Run Code Online (Sandbox Code Playgroud)

这是唯一有用的应用程序吗?

javascript

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

为什么在三元运算符中使用"0"会返回第一个值?

我正在玩JSconsole并发现一些奇怪的东西.值为"0"false

"0" == false
=> true
Run Code Online (Sandbox Code Playgroud)

false在三元组中使用的值返回第二个值

false ? 71 : 16
=> 16
Run Code Online (Sandbox Code Playgroud)

但是,在三元组中使用的值"0"等于false返回第一个值.

"0" ? 8 : 10
=> 8
Run Code Online (Sandbox Code Playgroud)

但是,如果您将其0用作值,则返回第二个值

0 ? 4 : 5
=> 5

0 == "0"
=> true
Run Code Online (Sandbox Code Playgroud)

我担心这对我没有意义.

javascript types ternary-operator

16
推荐指数
3
解决办法
3293
查看次数