zoukankan      html  css  js  c++  java
  • js 的作用域 域解析 分析

    作用域链
     
    函数每次执行时,浏览器都会在函数中开启一个地方用来存储函数内的局部数据。(声明在函数内的局部变量),这个地方就叫做作用域([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 如果当前的定时器还在开启,我们就不开启新的。
  • 相关阅读:
    Packet Tracer 5.2实验(十五) 网络端口地址转换NAPT配置
    Packet Tracer 5.3实验(十六) 网络设备系统升级
    PostgreSQL学习手册(一) 数据表
    Access insert 语法错误
    Access2003转换成SQL2005。
    C#实现ACCESS数据库备份还原
    js 图片滚动
    根据日期算出天数
    datetime赋空值
    如何把Sql Server2005 数据库转换成Access
  • 原文地址:https://www.cnblogs.com/YinWeiBlog/p/7442157.html
Copyright © 2011-2022 走看看