js中有这么一句:
a=!a?0:a;
虽然我知道这是个三目符,但是 a=!a的判断怎么回事儿啊?
a=!a?0:a;
虽然我知道这是个三目符,但是 a=!a的判断怎么回事儿啊?
解决方案 »
- jquery的click事件写法
- 请指教javascript函数和对象问题?
- td 下 onclick 为啥没起作用呢?谢谢。
- javascript.innerHTML用法
- 高分求一个上传下载文件的HTML(可javascript)代码
- 向学JAVA不知从何入手,请各位指点
- 关于提取时间问题,我想得到的是月和天,不会提取,救救我,大侠们?
- 网页打开时,滚动条自动置于最下端。如何实现?
- 非IE浏览器中,不支持<marquee></marquee>,javascript如何代替??
- 如何制作类似于marquee的效果
- jquery 如何获取div在可视范围内离顶部的距离
- javascript操作css left属性的问题
如果相等 结果是0
否则 就是a
var a=false;
a=!a?0:a;//==>a=(!a)?0:a;或者a=(!a?0:a)
alert(a);如果a为真值,则赋a值为a本身,否则赋a值为0;=号为赋值,不是比较。
alert( !0 )
alert( !1 )
//a=!a?0:a;
if( !a ){ // a值相反的boolean值
a = 0;
}else{
a = a;
}
嗯,对。明白了。现在的问题是这一句出现在上下文中,给你看看:
function _CalcSrvFee(record){
var sfr = record.getValue("SERVICE_FEE_RATE");
var q = record.getValue("QUANTITY");
var aq = record.getValue("APPROVE_QUANTITY");
var f = record.getValue("FEEAMOUNT");
var m = record.getValue("MAX_VALUE");
var r1 = 0;
var r2 = 0;
sfr = !sfr?0:sfr;
q = !q?0:q;
aq = !aq?0:aq;
f = !f?0:f;
m = !m?0:m;
r1 = q*f*sfr>m*sfr?m*sfr:q*f*sfr;
r2 = aq*f*sfr>m*sfr?m*sfr:aq*f*sfr;
record.setValue("FEE_AMOUNT",r1);
record.setValue("APPROVE_FEE_AMOUNT",r2);
return true;
}
是不是为了把它转化成数字,怕出错才这样处理的呢?
如当a = 1
则!a被转化成布尔值,是false
当a = 0
则!a被转化成布尔值,是true
所以假如定义了a = 1
则a = 1
所以假如定义了a = 0
则a = 0
所以假如定义了a = null
则a = 0