js中没有块级作用域,只有全局作用域和函数作用域
全局作用就是最外层的作用域
var a=100
function fn(){
alert(a);
a=200
}
fn()
域分两步
1.先预分析
2.逐行读代码
读代码时如果有表达式、函数调用就会再次预解析和逐行读代码(这里的解析和逐行读代码是局部,不是全局)
想要获取函数内的值:
1.全局变量
局部可以改全局的东西
var str = '';
function fn1(){
var a = '大鸡腿~';
str = a;
}
fn1();
// alert( str );
2.局部函数调用
function fn2(){
var a = '9999999克拉钻石23456789';
fn3(a);
}
fn2();
function fn3(b){
alert(b);
}
&& 与、|| 或、! 否
alert( 12<90 && 230<80 ); // false
var a = 120<90 && 20;
alert( a ); // false
alert( 120<90 || 230<80 ); //false
var b = 120<90 || 20
// alert( b ); // 20
var c = !!true;
alert( c ); //true
var d = !200; 不管后面跟着啥,只要加个 感叹号 都会变成false
alert( d ); //false
用!反选
<head>
<script>
window.onload = function (){
var aInp = document.getElementsByTagName('input');
aInp[0].onclick = function (){
for( var i=1; i<aInp.length; i++ ){
aInp[i].checked = !aInp[i].checked;
/*
if( aInp[i].checked ) {
aInp[i].checked = false;
} else {
aInp[i].checked = true;
}
*/
}
};
};
</script>
</head>
<body>
<input type="button" value="反选" />
<ul>
<li><input type="checkbox" checked /></li>
<li><input type="checkbox" /></li>
<li><input type="checkbox" checked /></li>
<li><input type="checkbox" /></li>
<li><input type="checkbox" /></li>
</ul>
</body>