发表于: 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){
}
评论