JS作用域链详解


Posted in Javascript onJune 26, 2017

本文实例为大家分享了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()

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
刷新时清空文本框内容的js代码
Apr 23 Javascript
ExtJS Ext.MessageBox.alert()弹出对话框详解
Apr 02 Javascript
jquery 图片上传按比例预览插件集合
May 28 Javascript
javascript日期对象格式化为字符串的实现方法
Jan 14 Javascript
JavaScript实现简单获取当前网页网址的方法
Nov 09 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
Nov 30 Javascript
javascript 四十条常用技巧大全
Sep 09 Javascript
jQuery+json实现动态创建复杂表格table的方法
Oct 25 Javascript
微信小程序开发探究
Dec 27 Javascript
详解layui弹窗父子窗口之间传参数的方法
Jan 16 Javascript
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
Mar 15 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
Jul 15 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
Jun 26 #jQuery
纯JS实现简单的日历
Jun 26 #Javascript
vue2.0全局组件之pdf详解
Jun 26 #Javascript
JavaScript创建对象的七种方式(推荐)
Jun 26 #Javascript
基于 webpack2 实现的多入口项目脚手架详解
Jun 26 #Javascript
JavaScript的六种继承方式(推荐)
Jun 26 #Javascript
JavaScript数据类型和变量_动力节点Java学院整理
Jun 26 #Javascript
You might like
php设计模式 Prototype (原型模式)代码
2011/06/26 PHP
php 类自动载入的方法
2015/06/03 PHP
Javascript 面向对象 重载
2010/05/13 Javascript
关于js datetime的那点事
2011/11/15 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来
2013/01/23 Javascript
jQuery Animation实现CSS3动画示例介绍
2013/08/14 Javascript
jQuery中click事件的定义和用法
2014/12/20 Javascript
JavaScript替换当前页面的方法
2015/04/03 Javascript
简单掌握JavaScript中const声明常量与变量的用法
2016/05/21 Javascript
jQuery用noConflict代替$的实现方法
2017/04/12 jQuery
Angularjs在360兼容模式下取数据缓存问题的解决办法
2017/06/22 Javascript
JS实现将二维数组转为json格式字符串操作示例
2018/07/12 Javascript
vue实现输入框自动跳转功能
2020/05/20 Javascript
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
Python接收Gmail新邮件并发送到gtalk的方法
2015/03/10 Python
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
如何用itertools解决无序排列组合的问题
2017/05/18 Python
matplotlib作图添加表格实例代码
2018/01/23 Python
python itchat实现调用微信接口的第三方模块方法
2019/06/11 Python
Django框架模型简单介绍与使用分析
2019/07/18 Python
python3 selenium自动化 下拉框定位的例子
2019/08/23 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
Python namedtuple命名元组实现过程解析
2020/01/08 Python
Pandas实现一列数据分隔为两列
2020/05/18 Python
Python在线和离线安装第三方库的方法
2020/10/31 Python
车辆维修工自我评价怎么写
2013/09/20 职场文书
农药学硕士毕业生自荐信
2013/09/25 职场文书
《雨点》教学反思
2014/02/12 职场文书
超市国庆节促销方案
2014/02/20 职场文书
2014年药品销售工作总结
2014/12/16 职场文书
清明扫墓感想
2015/08/11 职场文书
施工安全协议书
2016/03/22 职场文书
pytorch 实现变分自动编码器的操作
2021/05/24 Python
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL
muduo TcpServer模块源码分析
2022/04/26 Redis