日期:2014-05-16 浏览次数:20379 次
今天在阅读同事写的代码过程中发现这样一段javascript代码:
?
function geturl(uitype,_backurl) { uitype = uitype||1; var _burl = _backurl||this.location.href; .... }?
?
里面的"||"运算符,在我的印象里他返回的应该布尔型,true或者fasle,但是这个函数中的变量肯定不是要返回布尔型。
?
于是查资料发现问题所在:
?
?
javascript 使用下面的规则来把非 Boolean 值转换为 Boolean 值:
1.所有对象都被认为是 true。
2.字符串当且仅当为空时才被认为是 false。
3.null和undefined被认为是 false。
4.数字当且仅当为 0 时才是 false。
?
这里就能理解? var _burl = _backurl||this.location.href; 这句话
当_backurl参数为空的时候 _burl就等于this.location.href的值,
?
延伸:
var?uitype = 0||1; 返回 1
var?uitype = 0||"abc"; 返回 abc
var?uitype = 1||"abc"; 返回 1
?
var?uitype = 0||undefined; 返回 undefined
var?uitype = undefined||0; 返回 0
?
?
javascript运算符与表达式:
?
括号