JS作用域链详解

秋天来啦,秋天来啦;天空像一块覆盖在大地上的蓝宝石,它已经给秋风抹试得洁净而明亮。棉花笑嘻嘻的来了,它听说好朋友—秋姑娘来了,笑的咧开了嘴。玉米在房顶上唱着歌跳着舞,别提多开心了。路边两只黑色的小狗在玩耍,看它那可爱的样子,让人忍不住的笑。石榴也许太兴奋了,竟然笑破了肚皮,苹果跑着来了,当然脸蛋是红彤彤的。

本文实例为大家分享了JS作用域链的相关内容,供大家参考,具体内容如下

1、所有全局变量和函数都是作为window对象的属性和方法创建的。

2、在某个方法函数的作用域中,所有代码执行完之后,该作用域被销毁,保存在其中的所有变量和函数定义也会随着被”销毁“,这就是局部作用域。但闭包不会销毁局部变量。

这里的销毁:是指下次再执行此函数的时候,所有的变量又回到最初的状态

var color = "blue";
function changeColor(){
  var anothercolor = "red";
  if(color==="blue"){
    color = anothercolor;
  }
        //这里可以访问anothercolor,color
         
}
    //这里只可以访问color
changeColor();
console.log(color);//red
console.log(anothercolor);

// undefined。anothercolor是函数changeColor的局部变量,在整个函数运行之后已经被“销毁”

3、变量的声明注意点

function ddq(){

 alert(i)
var i=11
 alert(i)
 
}
ddq()
// 第一个返回underfind
//第二个返回11

这段代码相当于

function ddq(){
 var i
 alert(i)
 i=11
 alert(i)
 
}
ddq()

注意点:在一个函数内部的声明变量时(在调用之后),就相当于先申明,调用后赋值。

到此这篇关于JS作用域链详解就介绍到这了。这种创新代表着社会所需要的东西:首创性、 进取心和创造精神。更多相关JS作用域链详解内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

您可能有感兴趣的文章
JS获取鼠标点击时的位置

JS获取URL参数

Ajax跨域问题及解决方案(jsonp,cors)

ajax动态加载json数据并详细解析

ajax从JSP传递对象数组到后台的方法