javascript学习笔记之对象函数变量作用域
一、对象
数组我们用[],对象我们用{}
创建对象:
var obj = {属性名:属性值1,属性名:属性值2,属性名:属性值3};
var obj = {"name":"zhansan","age":22,"sex":'male'};
对象单元值的引用
对象名.属性名
obj.name//使用方法
对象名[属性名]
obj.['name']//这是类似数组的使用方法,不建议这么使用
对象如何遍历,遍历对象不能用obj.key
for(key in obj){
alert(obj[key]);//不能写成obj.key
}
对象单元的删除
delete 对象名.属性名
delete obj.name;
对象单元的添加
对象名.新属性名 = 新属性值
obj.height = 170;
js中对象是变量集合,又因为函数也是一种变量,那么当对象变量是函数的时候,也符合对象的定义。
对象单元的值,我们可以通过重新赋值来改变如下:
var obj = {"name":"zhansan","age":22,"sex":'male'};
//alert(obj.name);
//alert(obj['name']);
//删除属性
delete obj.age;
//遍历对象
for(key in obj){
alert(obj[key]);
}
*/
//当对象变量是函数的时候
function talk(){
alert(this.name);
}
//talk();调用方法
//talk2 = talk;方法当成变量赋值
//talk2();
var zhangsan = {"name":"鲁智深","age":23,"sex":"male","speak":12};
var lisi = {"name":"李四","age":33,"sex":"female","speak":null};
zhangsan.speak = talk;
zhangsan.speak();
//让speak说出自己的名字
lisi.speak = talk;
lisi.speak();
lisi.hieght = '177CM';//添加对象属性
for(key in lisi){
alert(lisi[key]);
}
所以,我们把方法的变量赋值给属性的时候,这个属性就是方法了
二、函数:变量的运算关系
在程序中,函数是一段封装的代码段,能够完成某个特定功能!
函数的使用:
1、必须有声明
2、用函数名调用
3、可以存在参数,参与函数内部的运算,可以扩展函数功能
4、返回值:函数可以有0个或者一个返回值,在return语句后面的语句终止执行
<p id="pid"></p>
<script>
function demo(a,b){
if(a>b){
return "a比较大";
}else{
return "b比较大";
}
}
var v1 = demo(100,20);
alert(v1);
document.getElementById("pid").innerHTML=v1;//把赋值后变量v1替换p标签里面的内容
</script>
声明:
function 函数名([arg1],[arg2].....){
函数体;
}
函数名 = function([arg1],[arg2].....){
函数体;
}
调用:函数名();
2种调用方法
<!---第一种-->
<script>
function tell(){
var n = 10;
var m = 10;
var vl = n*m;
alert(vl);
}
tell();
</script>
<!---第二种-->
<form>
<input type="button" value="按钮" onclick="tell()" />
</form>
<button onclick="tell()">按钮</button>
案例一:
function sum(){
var sum = 0;
for(var i=1;i<=100;i++){
sum+=i;
}
alert(sum);
}
//调用函数
//sum();
//需求,给出一个区间值,要求出这个区间内的所有整数的和50-100
function sum2(a,b){
var sum = 0;
for(var i=a;i<=b;i++){
sum+=i;
}
alert(sum);
}
sum2(111,1000);
//函数声明方法2
var sum3 = function(a,b){
var sum = 0;
for(var i=a;i<=b;i++){
sum+=i;
}
alert(sum);
}
sum3(111,1000);
//return会结束函数的执行
var sum3 = function(a,b){
var sum = 0;
for(var i=a;i<=b;i++){
sum+=i;
}
alert(1);
return sum;
alert(2);
}
alert(sum3(111,1000));
案例二:
<script type="text/javascript">
var a1 = 10;
var a2 = 20;
var sum = a1+a2;
document.write(sum);
</script>
<script>
function demo(a,b){
var sum = a+b;
return sum;
}
var v1 = demo(30,10);
alert(v1);
</script>
<script>
function demo(){
var a = 10;
var b = 10;
var sum = a+b;
alert(sum);
}
function tell(){
var n = 10;
var m = 10;
var vl = n*m;
alert(vl);
}
demo();
tell();
</script>
三、函数变量的作用域
1、定义变量一定要加上var
2、函数内部可以用到外部的变量,外部不能使用内部变量
3、如果函数内部不加var,就会操作到外面的变量,造成污染
<script type="text/javascript">
var c =7;
</script>
<script type="text/javascript">
var a = 3;
var b = 4;
var c = 7;
function t(){
var a = 5;
var c = 6;
alert(a+"^^^"+b);//5^^^4
function s(){
alert(c);//6函数体里面没有到外层找
}
s();
}
t();
</script>
<script type="text/javascript">
var n = 3;
var m = 4;
function s(){
n = 1;//如果函数内部不加var,就会操作到外面的变量,造成污染
var m = 2;
alert(n);
}
s();
alert(n);
</script>