-
关于"||"和"&&"
几乎所有语言中||和&&都遵循“短路”原理,
- 如&&中第一个表达式为假就不会去处理第二个表达式,而||正好相反。
- js也遵循上述原则。
- 当||时,找到为true的分项就停止处理,并返回该分项的值,否则执行完,并返回最后分项的值。
- 当&&时,找到为false的分项就停止处理,并返回该分项的值。
// var a = "" || null || 3 || 4;//3
// alert(a);
// var b = 4 && 5 && null && "0";//null
// alert(b);
关于alert
var obj1={x:1},
obj2={x:2};
(function(obj2){
delete obj2.x;
})
alert(obj1.x,obj2.x);//输出1
alert(obj1.x+obj2.x);//输出3
var obj1={x:1},
obj2={x:2};
//-------------------------------------------------------------------
(function(obj2){
delete obj2.x;
})(obj1);
alert(obj1.x,obj2.x);//输出undefined
alert(obj1.x+obj2.x);//输出NaN
alert(undefined+undefined);//输出NaN
- 默认的body marginTop
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
/* body,div{
margin: 0;
padding: 0;
}*/
/* body{
margin: 0;
padding: 0;
}*/
/* div{
margin: 0;
padding: 0;
}*/
#left{
background: red;
width: 100px;
position: absolute;
left: 0;
height: 100px;
}
</style>
<script type="text/javascript">
window.onload=function(){
var oId=document.getElementById("left");
var oBody=document.getElementsByTagName("body")[0];
alert(getStyle(oId,'paddingTop'));//0px
alert(getStyle(oBody,'marginTop'));//!!!!!!--8px
alert(getStyle(oBody,'paddingTop'));//0px
}
function getStyle(obj,attr){
if(obj.currentStyle){
return obj.currentStyle[attr];
}else{
return document.defaultView.getComputedStyle(obj,null)[attr];
}
}
</script>
</head>
<body>
<div id="left"></div>
<div id="main"></div>
<div id="right"></div>
</body>
</html>