Javascript 两者之间有什么区别!!变数与变数

Javascript 两者之间有什么区别!!变数与变数,javascript,angularjs,Javascript,Angularjs,我见过一些开发人员以一种对我来说毫无意义的方式使用变量,这是我在AngularJS中经常看到的 考虑以下代码: var someVariable = (someOtherVariable === 'true'); if (!!someVariable) { // do some stuff here } 为什么不省去那两个感叹号呢?不一样吗?这样做有什么好处?是双not运算符。它将操作数强制为布尔值 就条件语句而言,if(!!someVariable){}相当于if(someVari

我见过一些开发人员以一种对我来说毫无意义的方式使用变量,这是我在AngularJS中经常看到的

考虑以下代码:

var someVariable = (someOtherVariable === 'true');
if (!!someVariable) {
     // do some stuff here
}

为什么不省去那两个感叹号呢?不一样吗?这样做有什么好处?

是双not运算符。它将操作数强制为
布尔值


就条件语句而言,
if(!!someVariable){}
相当于
if(someVariable){}
,因为如果值是真的,则会满足条件,因为存在自动布尔强制。

是双not运算符。它将操作数强制为
布尔值


就条件语句而言,
if(!!someVariable){}
相当于
if(someVariable){}
,因为如果值是真的,则会满足条件,因为存在自动布尔强制。

是双not运算符。它将操作数强制为
布尔值


就条件语句而言,
if(!!someVariable){}
相当于
if(someVariable){}
,因为如果值是真的,则会满足条件,因为存在自动布尔强制。

是双not运算符。它将操作数强制为
布尔值


就条件语句而言,
if(!!someVariable){}
相当于
if(someVariable){}
,因为如果值是真的,则会满足条件,因为存在自动布尔强制。

双not运算符
将(可能是非布尔)值强制为布尔值

在您的具体示例中:

var someVariable = (someOtherVariable === 'true');
if (!!someVariable) {
     // do some stuff here
}
someVariable
已被保证为布尔值(因为
==
比较的结果始终是布尔值),因此将其强制为布尔值不会以任何方式更改操作,并且是浪费代码。即使它还不是一个布尔值,你也不需要强迫它成为一个布尔值来测试它,就像
if(someVariable)
一样,所以还有另一个理由不使用
这里

当<代码>非常有用。然后您可以使用
将其强制为布尔值


因此,假设您有一个不一定是布尔值的值,并且您希望根据第一个变量的真实性或虚假性将另一个值设置为真布尔值。您可以这样做:

var myVar;
if (someVar) {
    myVar = true;
} else {
    myVar = false;
}
或者这个:

myVar = someVar ? true : false; 
myVar = !!someVar;
或者这个:

myVar = someVar ? true : false; 
myVar = !!someVar;

双重非运算符
将(可能是非布尔)值强制为布尔值

在您的具体示例中:

var someVariable = (someOtherVariable === 'true');
if (!!someVariable) {
     // do some stuff here
}
someVariable
已被保证为布尔值(因为
==
比较的结果始终是布尔值),因此将其强制为布尔值不会以任何方式更改操作,并且是浪费代码。即使它还不是一个布尔值,你也不需要强迫它成为一个布尔值来测试它,就像
if(someVariable)
一样,所以还有另一个理由不使用
这里

当<代码>非常有用。然后您可以使用
将其强制为布尔值


因此,假设您有一个不一定是布尔值的值,并且您希望根据第一个变量的真实性或虚假性将另一个值设置为真布尔值。您可以这样做:

var myVar;
if (someVar) {
    myVar = true;
} else {
    myVar = false;
}
或者这个:

myVar = someVar ? true : false; 
myVar = !!someVar;
或者这个:

myVar = someVar ? true : false; 
myVar = !!someVar;

双重非运算符
将(可能是非布尔)值强制为布尔值

在您的具体示例中:

var someVariable = (someOtherVariable === 'true');
if (!!someVariable) {
     // do some stuff here
}
someVariable
已被保证为布尔值(因为
==
比较的结果始终是布尔值),因此将其强制为布尔值不会以任何方式更改操作,并且是浪费代码。即使它还不是一个布尔值,你也不需要强迫它成为一个布尔值来测试它,就像
if(someVariable)
一样,所以还有另一个理由不使用
这里

当<代码>非常有用。然后您可以使用
将其强制为布尔值


因此,假设您有一个不一定是布尔值的值,并且您希望根据第一个变量的真实性或虚假性将另一个值设置为真布尔值。您可以这样做:

var myVar;
if (someVar) {
    myVar = true;
} else {
    myVar = false;
}
或者这个:

myVar = someVar ? true : false; 
myVar = !!someVar;
或者这个:

myVar = someVar ? true : false; 
myVar = !!someVar;

双重非运算符
将(可能是非布尔)值强制为布尔值

在您的具体示例中:

var someVariable = (someOtherVariable === 'true');
if (!!someVariable) {
     // do some stuff here
}
someVariable
已被保证为布尔值(因为
==
比较的结果始终是布尔值),因此将其强制为布尔值不会以任何方式更改操作,并且是浪费代码。即使它还不是一个布尔值,你也不需要强迫它成为一个布尔值来测试它,就像
if(someVariable)
一样,所以还有另一个理由不使用
这里

当<代码>非常有用。然后您可以使用
将其强制为布尔值


因此,假设您有一个不一定是布尔值的值,并且您希望根据第一个变量的真实性或虚假性将另一个值设置为真布尔值。您可以这样做:

var myVar;
if (someVar) {
    myVar = true;
} else {
    myVar = false;
}
或者这个:

myVar = someVar ? true : false; 
myVar = !!someVar;
或者这个:

myVar = someVar ? true : false; 
myVar = !!someVar;

是的,这次也是一样。自从<代码>