.想到一个好玩的,运行如下 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;
}
分享到:
相关推荐
答案是:在js做比较的时候,有这样的三条规则: • 如果比较的两者中有bool,会把 bool 先转换为对应的 number,即 0 和 1 • 如果比较的双方中有一方为number一方为string,会把string转换为数字 • 把string直接...
首先需要知道的是,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 ...
大家都知道在JS的世界里, 0、-0、null、””、false、undefined 或 NaN,这些都可以自动转化为布尔的 false,那么字符串的”false”是不是false呢,答案是否定的,if(“false”) 来判断的话,是等于true的 ...
<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; } } } ...
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 。 切换开关适用于当前行的第一个匹配项,并且不会更改光标位置。 安装 可以通过插件管理器完成安装。 另外,需要安装 。 ...
是将表达式强制转化为bool值的运算,运算结果为true或false,表达式是什么值,结果就是对应的bool值,不再取非。 不是取非再取非的意思!!! !!false=false; 要注意false和“false” 的区别!!!!! !!”false”...
注意:[assembly: WebResource("Wisesoft.Web.Control.Wisesoft.Calendar.calendar.js", "application/x-javascript", PerformSubstitution=true)]是用来封装你的JS文件,要使用你项目的名字加上你JS文件的名字,还...
vue-inifinite-contextmenu ...截图如下 开发安装 # install dependencies npm install # serve with hot reload at localhost:8080 npm run dev # build for production...true,false false startX 子菜单显示的X轴位置 S
科技雷达 构造URL ...强制数据源 任何一个 ... 布尔值是false或其他任何值,例如&bool=false是false; &bool=true为true, 数字是任何正实数。 例如&number=0.1 , &number=50 参数 filter(字符串)
网上流传的ckeditor和ckfinder基本是都是不能上传图片的 ...3、将ckfinder中config.ascx中public override bool CheckAuthentication()函数中return false;()不允许上传改为return true;(允许上传)
js中的不同的数据类型之间的比较转换规则如下: 1. 对象和布尔值比较 对象和布尔值进行比较时,对象先转换为字符串,然后再转换为数字,布尔值直接转换为数字 [] == true; //false []转换为字符串'',然后转换为数字...
emojify ( true , ( result ) => { /* TODO: result.value */ } ) ; const secondEmojify = BoolEmojify . emojify ( false ) ; // secondEmojify.value 原料药 emojify(数据,[cb]) 数据 类型:
根据propTypes自动为测试的组件创建一组道具 文献资料 “ prop-types”模块... [false,true,undefined] PropsType.bool.isRequired [false,true] PropsType.func [()=> {},未定义] PropsType.func.isRequi
toString() 方法 把布尔值转换为字符串,并返回结果。 实例 将布尔值转换为字符串: var bool = new Boolean(1);...“true” 或者 “false” valueOf() 方法 返回 Boolean 对象的原始值。 实例 var bool =
负责响应该事件的句柄函数可以有2个返回值(true 或 false)当返回值为false时,整个上传将被取消;当返回值为true时上传过程继续进行。而如果返回值为false,则通常是由一个uploadError事件所导致的。 注:官方...
XDR,用于Javascript 读/写XDR编码的数据结构(RFC 4506) XDR是一种开放数据格式,在指定。 该库提供了一种从javascript... // returns false xdr . Bool . fromXDR ( [ 0 , 0 , 0 , 1 ] ) ; // returns true // t
var bool = isPrimitive ( value ) ; // returns true 例子 var isPrimitive = require ( 'validate.io-primitive' ) ; console . log ( isPrimitive ( false ) ) ; // returns true console . log ( isPrimitive
在js中,NaN,undefined,Null,0,”” 在转换为bool的时候,是false,所以,可以这样写。 代码如下: if(!obj) {} 表示一个对象如果为false的时候所做的事情,因为如果obj为以上任何一个,那么就是false,!false即...