js 的作用域 域解析 分析
来源:互联网 发布:自动抢红包软件 编辑:程序博客网 时间:2024/06/09 18:30
作用域链
函数每次执行时,浏览器都会在函数中开启一个地方用来存储函数内的局部数据。(声明在函数内的局部变量),这个地方就叫做作用域([scopes])
作用域链
变量与函数的查找规则:当我们在函数使用一条数据时,优先在本作用域(调用数据的函数内),去查找这条数据,如果在本作用域,,找不到这条数据,就去查找父级的作用域,直到找到全局作用域,如果在全局作用域下也找不到,就报错。
全局作用域 --- 在任何地方都能访问
函数外定义的变量拥有全局作用域
不使用var定义的变量拥有全局作用域
所有window对象上的属性拥有全局作用域
没有声明在任何函数内部的函数拥有全局作用域
##域解析
js在解析代码时,时一行一行从上向下执行的。何时得到undenfined,变量声明
何时得到undenfined:
1 定义了一条数据,但是数据没有赋值的时候,得到的结果时undenfined。
2 调用对象属性,但是对象上并没有这个属性的时候。
何时得到null
1 null通常出现在找不到元素的时候,(通常出现在找不到对象的时候)。
域解析:当浏览器读到一个script标签(或者函数时)时,就开始执行域解析:
快速浏览这个代码块:
1 如果碰到var 就将变量声明提到代码块的最前边。
2 如果碰到了function,就把整体提到代码块最前面紧跟var。
在赋值操作中保存时函数的执行结果(函数返回值)
###定时器
1 setInterval(函数fn,间隔时间);间隔多长时间重复执行某件事情。
返回值:定时器编号;
2 setTimeout(函数fn,延迟时间 )多长时间之后执行什么事情,只执行一次。
返回值:定时器编号;
setTimeout(fn,延迟时间); 多长时间之后,执行什么事情(只做一次)
返回值:定时器编号
什么时候使用定时器
当需要隔一段时间重复执行一段代码时用 setInterval()
当需要延迟一段时间执行一段代码时用 setTimeout()
定时器清除 当定时器不在需要时要关闭
1 clearInterval(定时器编号)
2 clearTimeout(定时器编号)
当定时器不在需要的时候,一定记得关闭
定时器管理:
1 每次开启定时器之前,先清除,在开启。
2 如果当前的定时器还在开启,我们就不开启新的。
阅读全文
0 0
- js 的作用域 域解析 分析
- js 的作用域 域解析 分析
- JS的解析过程和作用域
- JS预解析,作用域
- JS代码作用域解析
- js词法分析 作用域
- JS作用域的解析和代码执行的原理
- JS语句是怎么解析的(同一个作用域)
- JS的解析原理和变量作用域
- JS的预解析和作用域浅析
- js中三种函数的效率、解析顺序、作用域问题解决
- 作用域 -JS解析器如何解析JS代码2
- JS变量作用域难点解析
- js变量作用域(解析机制)
- JS作用域和预解析机制
- 作用域、JS预解析机制
- js全局变量和局部变量的作用域分析
- Js的作用域
- windows环境 -phpstudy安装redis扩展
- Spring事务学习笔记(一)
- springMVC笔记
- 翻转单词顺序列
- 2017.8.28. 欧拉函数
- js 的作用域 域解析 分析
- 种花 (贪心+(堆 or 线段树))
- LintCode-----11.二叉查找树中搜索区间
- POJ-1091:[NOIP模拟](二)T2-跳蚤
- HttpServletRequest
- 电机矢量控制
- 使用Material design仿JD顶部搜索
- Universal 2nd Factor (U2F) 概述(4)-特定的公私秘钥对
- [知了堂学习笔记]_css3特效第一篇--旋转的背景&翻书效果