发表于: 2016-08-14 00:06:34

1 2102


今天完成的事:学习angular 以及原生js

明天要做的事:暂定

收货:

执行环境定义了变量或函数有权访问的其他数据

 var color="blue";

function changeColor(){
if(color=="blue"){
color="red";
    }else {
color="blue";
    }
}

changeColor();

console.log("color is now " + color);


作用域链 内部环境可以通过作用域链访问所有的外部环境,反之则不行


与其他语言的块语句不同,js中的if(){} 

if(true){
var color="blue";
}

alert(color);


for(){}在内部语执行完毕后不会被销毁掉 ,而是会将语句中的变量声明添加到当前的执行环境中。也就是说在执行完if和for语句后,在语句外部还能够读取到声明的变量 最简单的例子for(var i=0 ; i<=10 ;i++){}     这里的i能够在外部读到  i的值是最后循环的结果10

使用var声明的变量会自动添加到最近的环境中

如果初始化声明变量的时候没有使用var声明,该变量就会自动被添加到全局的环境中

function add(num1,num2){
var sum=num1 +num2 ;
   return sum;
}


var result=add(10,20);
console.log(sum)


最后会显示  sum   未定义


但是如果把第二行的var去掉

function add(num1,num2){
sum=num1 +num2 ;
   return sum;
}


var result=add(10,20);
console.log(sum)


这时sum是天下无敌,不生不灭的存在  

最后的结果是 sum=30


但是你觉得变量一开始不声明是不是很爽  ,但是 结果是会造出许多的  大魔王!!!!boss太多还是不好的


所以要在一开始就声明变量  使用var 



查询表示符  

就近原则啊 就是在局部变量中如果找到了就不再往外面找了  

这样的好处是如果局部变量和全局变量有相同的名字,那只能局部的那一个(吃好你碗里的,别老想着锅里的)

但是,如果我现在就是碗里有但想去吃锅里的呢???   因为全局变量是在window对象之下  所以比如说var color


你想要获取全局的话(前提是你局部也声明了一个var color)  就要使用 window.color 来获取



访问对象属性有两种形式


var person={

   name:"luyitian"

}


console.log(person.name)  //使用点的方法

console.log(person[name])  //使用方括号的方法


使用方括号的方法的优点是可以通过变量来访问属性  以及属性名出现关键字或保留字也可以使用方括号来读取数据


var a="name";

console.log(person.a) //失败 读取结果为undefine

console.log(person[a]) //成功 读取结果为luyitian


通过length属性向数组添加新项的方法

var colors=[1,2,3]


colors[colors.length]=4;

colors[colors.length]=5;


console.log(colors)   //  [1,2,3,4,5]


监测数组

确定某个对象是不是数组的经典问题!!!!

if( value instanceof Array){

}





返回列表 返回列表
评论

    分享到