写了一段代码,测试了一下&&和||在赋值语句中的妙处!记录一下
<script type="text/javascript">
var pe = new person();
function person(){
var t=this;
t.name = null;
}
person.prototype.init= function(a){
var t= this;
t.name = a&&a.name||"xiaozhang";//核心代码
/**
个人理解:当参数a不为null且不为undefined时,取a.name;
如果,a中有参数name,且name值为“123”,则a&&a.name||"xiaozhang"最终运算结果为123;
如果,a中没有参数name,或者name为null,或者name为undefined时,
则a&&a.name||"xiaozhang"最终运算结果取默认值“xiaozhang”。
**/
}
function test(a){
pe.init(a);
alert(pe.name);
}
</script>
<body>
<input type="button" value="test()" οnclick="test()">
<input type="button" value="test({})" οnclick="test({})">
<input type="button" value="test({'name':'123'})" οnclick="test({'name':'123'})">
<input type="button" value="test({'name':null})" οnclick="test({'name':null})">
<input type="button" value="test({'name':undefined})" οnclick="test({'name':undefined})">
</body>
</html>