.想到一个好玩的,运行如下 javascript :
if ('0') alert("'0' is true");
if ('0' == false) alert("'0' is false");结果是,两次都 alert 了!那么 '0' 到底是 true 还是 false 呢?
答案是:在js做比较的时候,有这样的三条规则:
如果比较的两者中有bool,会把 bool 先转换为对应的 number,即 0 和 1
如果比较的双方中有一方为number一方为string,会把string转换为数字
把string直接转换为bool的时候,空字符串‘’转换为 false,除此外的一切字符串转换为 true
在第一次比较的时候,直接把 '0' 放在 if 的表达式中,相当于直接把 string 转换为 bool, !!'0' === true,所以是成立的
在第二次比较的时候,会先把 false 转换为 0,然后把 '0' 转换为 0, 左右两边都是0,于是也是成立的。
所以归根到底这是一个javascript中做比较的时候类型转换顺序的问题,个人觉得还是不是很合理的,不同的转换顺序得到的结果会不一样
在比较的时候,要用
//是否发布自助系统
var rdoPromotion=document.getElementsByName("RadPromotion");
if(arrayCategory[9])
{
rdoPromotion[0].checked=true;
rdoPromotion[1].checked=false;
}
if(arrayCategory[9]=="False")
{
rdoPromotion[0].checked=false;
rdoPromotion[1].checked=true;
}
分享到:
相关推荐
在JavaScript中,将字符串"false"转换为布尔值false并不是一个简单的隐式转换,因为JavaScript会把字符串"false"视作一个真值。针对这个特定问题,我们需要一个明确的方法来确保字符串"false"能被正确转换成布尔的...
答案是:在js做比较的时候,有这样的三条规则: • 如果比较的两者中有bool,会把 bool 先转换为对应的 number,即 0 和 1 • 如果比较的双方中有一方为number一方为string,会把string转换为数字 • 把string直接...
在JavaScript中,布尔值(bool值)转换是一个重要的概念,因为很多条件判断和逻辑运算都依赖于这些值。本文将详细解析JavaScript中的布尔值转换以及“&&”、“||”、“!!”运算符的工作原理。 首先,JavaScript中有...
首先需要知道的是,js中有6个值为false,分别是: 0, ”, null, undefined, NaN 和 false, 其他(包括{}, [], Infinity)为true. 可以使用Boolean()函数或是两次取非就能获得对象的布尔值,例如Boolean(undefined)和!!...
布尔值将真实内容转换为布尔值 var bool = require ( '@nkcmr/bool' )bool ( 'true' ) // => truebool ( 'yes' ) // => truebool ( 'no' ) // => falsebool ( 'false' ) // => falsebool ( 0 ) // => falsebool ( 1 ...
<script language=javascript> function checkAll(boolvalue){ var items=document.getElementsByTagName("input"); for(i=0;i;i++){ if(items[i].type=="checkbox"){ items[i].checked=boolvalue; } } } ...
由于上述转换规则的存在,当JSON中布尔类型的值以字符串形式传递时,例如"true"或"false",如果客户端解析后直接使用,那么即使是"false"字符串,也会被解析为布尔值true,这就导致了逻辑上的错误。 以一个实际的...
var bool = true; console.log(bool.toString()); // 输出:"true" ``` 2. String() 方法 String() 方法可以将任何类型转换为字符串类型,包括 null 和 undefined。 例如: ```javascript console.log(String(null)...
var bool1 = true, bool2 = false; var result = !bool1 && bool2; // 结果为false,因为非true并且false是false ``` 4. **关系运算符**: - `、`>`:小于、大于。 - `、`>=`:小于等于、大于等于。 - `!=`、...
3. **Boolean**:布尔类型,只有两个值:`true` 和 `false`。 4. **Number**:数字类型,包括整数和浮点数。 5. **String**:字符串类型,由字符序列组成。 6. **Symbol**:ES6引入的新数据类型,用于创建唯一的键。...
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 1: node::Abort() [node] 2: 0x8cd49c [node] 3: v8::Utils::ReportOOMFailure(char const*, bool) [node] 4: v8::...
True → False和False → True , true → false和false → true , 1 → 0和0 → 1 。 切换开关适用于当前行的第一个匹配项,并且不会更改光标位置。 安装 可以通过插件管理器完成安装。 另外,需要安装 。 ...
let bool = true; let nul = null; let undef = undefined; let sym = Symbol(); console.log(typeof num); // "number" console.log(typeof str); // "string" console.log(typeof bool); // "boolean" console....
var bool = false; var speed = 2; // 每次行走的距离 var actor; // 人物div const HEIGHT = 33; // 人物的高 const WIDTH = 32; // 人物的宽 var arr = [1, 3, 2, 0]; // 4排图像代表下左右上 var num = 0;...
在JavaScript中,布尔对象是基于基本的布尔类型`true`和`false`创建的,它是一种特殊的对象形式。本文将详细解析JS布尔对象的`toString()`方法和`valueOf()`方法。 `toString()`方法: `toString()`方法是...
在JavaScript中,Boolean类型是两种基本数据类型之一,用于表示逻辑值,即真(true)或假(false)。Boolean类型不仅作为原始值存在,还可以作为对象形式,即Boolean对象。虽然在多数情况下,原始值与对象形式的行为...
例如,boolType1 = true,boolType2 = false。 4. **数组**:数组是有序的数据集合,可以容纳不同类型的元素。例如,myArray = [1, 2, true, "string", 3.2]。 5. **null 和 undefined**:undefined 通常表示变量...
// 比较运算符 var z = true && false; // 逻辑运算符 var w = x = 10; // 赋值运算符 ### 流程结构 JavaScript 中的流程结构包括顺序结构、分支结构、循环结构等。例如: #### 顺序结构 顺序结构是指按照顺序...