jjzjj

boolean-logic

全部标签

javascript - 有什么理由用 !! 做 bool 转换吗?而不是 JavaScript 中的 Boolean()?

我知道Boolean()、String()和Number()转换,以及''+...、!!...和+...转换方法。我想知道是否有任何理由不使用函数构造函数? 最佳答案 通常不鼓励使用!!,因为对于那些没有见过它的人来说,它的实际用途是什么并不清楚。也就是说,它不到Boolean()字符的三分之一。此外,我不确定在Javascript中实际需要多久转换一次bool值,因为它通常是隐式转换,因为Javascript是弱类型的。 关于javascript-有什么理由用!!做bool转换吗?而不

boolean 值与数字比较中的 JavaScript 真实性

我是JavaScript的新手,我正在尝试从Internet资源中学习它。虽然我知道会有很多cr*pMaterial,但大多数人似乎都同意的一件事是JS中事物的真实性(只是举个例子here)现在我在实验中发现了这个奇怪的事情:(true==2)为false。为什么?据我所知,2是一个非零的数,因此它应该被评估为true。 最佳答案 这是因为当相等运算符的任一操作数是数字时,在几乎所有情况下,另一个操作数都会转换为数字,然后比较结果。所以你最终将1(从true转换而来)与2进行比较,而不是将true与进行比较真。该规则的唯一异常(ex

javascript - [-1,1][+!!boolean_var] 的含义

谁能解释一下在下面的代码中对reversevar进行双重否定的目的?returnfunction(a,b){varA=key(a),B=key(b);return((AB)?+1:0))*[-1,1][+!!reverse];}我的理解是,目的是从[-1,1]数组中选择正确的索引,然后在乘法中使用它,但在我看来[-1,1][+!!reverse];可以安全地替换为[-1,1][+reverse];我错了吗?通过在那里对reverse进行双重否定,你会获得或阻止什么?我在thisanswer.上看到了上面的代码 最佳答案 最简单的答案

Javascript - 带有 boolean 键的数组?

我对Javascript比较陌生,可能只是有一个技巧我不熟悉,但是如何将boolean值分配给数组键?发生了什么:vartest=newArray();test[false]="asdf";test['false']="fdsa";Object.keys(test);//Yield["false"]Object.keys(test).length;//Yield1我想要发生的事情:vartest=newArray();//SomestuffObject.keys(test);//Yield["false",false]Object.keys(test).length;//Yield2

Javascript : Insane boolean test with '!' operator

这个问题在这里已经有了答案:Checklegalcharactersbyregularexpressionbutwithunexpectedresult(2个答案)关闭7年前。在chrome控制台中输入以下函数调用:(function(regex,str){console.log(regex.test(str))console.log(!regex.test(str))console.log(!regex.test(str))console.log(!regex.test(str))console.log(!regex.test(str))})(newRegExp("new","gmi

javascript - <boolean expression> && statement() 是否与 if(<boolean expression>) statement() 相同?

两者是否相同?假设你有:varx=true;然后你有一个:x&&doSomething();或if(x)doSomething();这两种语法之间有什么不同吗?我是不是偶然发现了一点糖? 最佳答案 严格来说,它们会产生相同的结果,但如果您将前一种情况用作其他情况的条件,则会得到不同的结果。这是因为在x&&doSomething()的情况下,doSomething()将返回一个值以表示其成功。 关于javascript-&&statement()是否与if()statement()相同?,

javascript - 偏置随机 boolean 值的优雅方式

我想在JavaScript中创建一个随机boolean值,但我想考虑之前的值。如果前一个值为真,我希望下一个值更有可能为真。目前我得到了这个(这是在闭包的上下文中-goUp和lastGoUp是包含范围的局部变量):functionsetGoUp(){goUp=getRandomBoolean();if(lastGoUp){goUp=getRandomBoolean()||goUp;}else{goUp=getRandomBoolean()&&goUp;}lastGoUp=goUp;}所以,算法是这样的:获取一个随机boolean值如果上次调用的随机boolean值是True:a)得到另

java - Thymeleaf:如何使用 Thymeleaf 在 JavaScript 中使用 boolean 运算符

我正在使用thymeleaf,在javascript中使用th:inline="javascript",但是当我们在java脚本thymeleaf中添加boolean条件时出现如下异常:org.xml.sax.SAXParseException;lineNumber:14;columnNumber:22;Theentitynamemustimmediatelyfollowthe'&'intheentityreference.com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseExceptio

javascript - 为什么 JavaScript 按位或行为异常?

在JavaScript中,似乎:(4294958077|0)==-9219为什么不是4294958077?这表明存在某种溢出(尽管据我所知,JavaScript数字类型的范围是+/-9007199254740992,所以这本身就很奇怪。)就算是溢出,也一定(4294958077|0)==4294958077应该评估为true-但事实并非如此。请帮忙 最佳答案 它与浮点类型或溢出无关。它返回-9219因为标准要求这样做,因为所有二进制按位运算都必须使用有符号32位整数(ECMA-262§11.10)来完成。TheproductionA

javascript - AngularJS : Should service's boolean method return promise that resolves to true/false, 或者被解决/拒绝?

promise的使用模式仍然让我感到困惑。例如,在Angular应用程序中,我有一个服务usersService,方法是emailExists(email)。显然,它向服务器请求检查给定的电子邮件是否已经存在。让方法emailExists(email)返回在正常操作中解析为true或false的promise对我来说感觉很自然.如果只是我们有一些意外的错误(比如,服务器返回500:内部服务器错误,那么promise应该被拒绝,但在正常操作中,它被解析为相应的bool值。然而,当我开始实现我的异步验证器指令(通过$asyncValidators)时,我看到它想要解决/拒绝promise。