草庐IT

SL_BOOLEAN_TRUE

全部标签

Javascript TRUE 和 "true"为什么有人使用字符串而不是 boolean 值?

我在一些javascript代码中看到人们写这样的东西:varmyVar="true";//...if(myVar=="true"){//...}else{//...}为什么人们不使用TRUE或FALSE?据我所知,boolean类型对于浏览器来说是显而易见的。或者只是一个糟糕的代码......并且尽量不要以这种方式编写。 最佳答案 这只是糟糕的代码。尽量不要这样写。这种代码的可维护性非常糟糕。==(而不是===)和true作为字符串。PS:此外,"true"==true//false。对于===参数,这仅仅是因为true==1//

javascript - javascript eventlistener 中 true 和 false 的区别

我对事件监听器的概念有疑问。下面两个代码有什么区别我对真/假部分有疑问。当我在练习代码中用第二个代码替换第一个代码时,没有任何变化。a.addEventListener("click",modifyText,true);a.addEventListener("click",modifyText,false); 最佳答案 addEventListener中的true和false是bool值,指定是否需要捕获事件。这是语法和detail:object.addEventListener(eventName,function,useCapt

Javascript逻辑运算(a === true || a === false)

我在moment.js里面找到了这段代码.为什么我们会有这种支票?if(locale===true||locale===false){strict=locale;locale=undefined;} 最佳答案 这用于确保locale仅用作strict变量/参数,如果它实际上是一个bool值。查看该代码,看起来它可能根据是否指定了可选参数来改组函数参数。(在这种情况下,locale将是strict之前的可选区域。) 关于Javascript逻辑运算(a===true||a===false)

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 - 为什么 `1 && true` 得到一个 bool 值 `true` ,而 `0 && true` 得到一个数字 `0` ?

为什么1&&true得到一个bool值true,而0&&true得到一个数字0?我在Chrome控制台和Firebug中对其进行了测试。 最佳答案 因为expr1&&expr2如果为假则返回expr1,否则返回expr2。 关于javascript-为什么`1&&true`得到一个bool值`true`,而`0&&true`得到一个数字`0`?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques

javascript - Angular $state.go {重新加载 : true} shouldn't reinitialize the abstract parent controller

我正在使用ui-route进行导航。我的父状态称为ma​​in,它是一个abstract状态(url:/main)和子状态products和用户(网址:/main/products和/main/users)。app.config(["$stateProvider","$urlRouterProvider",function($stateProvider,$urlRouterProvider){$urlRouterProvider.otherwise("/main/products");$stateProvider.state("main",{url:"/main",templateUr

javascript - 为什么 console.log(true, '\t' ) 打印 true ""?

在Chrome中,以下内容console.log(true,'\t');将打印true""为什么周围有引号?(注意console.log(true+'','\t')只会打印true,与console.log的方式相同('a','\t');只会打印a。) 最佳答案 console.log基本上有两个重载:console.log(formatString,args)和console.log(arg1,arg2,...).更具体地说,根据thesourcecode,如果第一个参数是一个字符串,那么它会将其视为其他参数的格式字符串。否则直接

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