1 var声明变量时的规则: 变量的作用域:
a. 在函数外用var和不用var都是全局变量
b. 在函数内用var声明的是局部的,在函数内不用var声明的变量为全局
c. 在函数的参数中定义的变量为局部的,并且函数的参数不能加 var定义.
2 对象的比较并非值的比较,即使两个对象包含同样的属性及相同的值,它们也是不相同的。各个索引元素完全相同的两个数组也不相同
这里也引入一个概念就是“==="是指变量的属性以及值完全相等,而”==“是指变量的值相等
var o={x:1}, p={x:1};//具有两个相同属性的变量
o===p;//=》false ;两个单独的对象用不相等
var a=[] , b=[];
a===b;//=》两个单独的数组永不相等
3 js中的函数的声明语法:
a. function 函数名 (参数列表){
return 值; / 无返回值, 直接写 代码
}
b. 函数名=function(参数列表){
return 值; / 无返回值, 直接写 代码
}
调用:
a. 函数名(参数列表);
b. 值变量=function(参数列表){
return 值; / 无返回值, 直接写 代码
}();
4 js中没有块级定义,即使你重新声明,如果没有重新赋值,仍然保留原值
小案列:
<!doctype html>
<html>
<head>
<title>变量作用域</title>
<script>
function add(){
for(var i=0;i<10;i++){
document.writeln(i);
}
document.write("<br/>"+i); //10
var i;
document.write("<br/>"+i); //10
i="string";
document.writeln("<br/>"+i) ; //string;
}
add();
</script>
</head>
<body>
</body>
</html>