执行环境:执行环境定义了变量或函数有权访问的其他数据,决定了他们各自的行为,每个执行环境都有一个与之关联的 变量对象:环境中定义的所有变量和函数都保存在这个对象中。(在函数中这个变量对象叫活动对象)

  作用域链:当代码在一个环境中执行时,会创建变量对象的一个作用域链,作用域链的用途是保证对执行环境有权访问的所有变量和函数的有序访问。

  作用域链本质上是一个指向变量对象的指针列表,他只引用但不实际包含变量对象。

  闭包中所保存的是整个变量对象而不是某个特殊的变量

  闭包是指有权访问另一个函数作用域中的变量的函数。

  this对象是在运行时基于函数的执行环境绑定的,在全局环境中this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象,匿名函数的执行环境具有全局性,因此其this对象通常指向window.

function hehe(){

  return funciton(){

    return "name";  

  }

}

document的DOMContentLoaded事件会在形成完整的dom树之后触发,不理会图像,js文件,css文件或其他资源是否已经下载完毕,也就意味着用户能够尽早的与页面交互。这个事件始终都会在load事件之前触发

在ajax应用中开发人员经常要利用url参数列表来保存状态或导航信息;

在js中添加到页面上的事件处理程序的数量将直接关系到页面的整体运行性能,导致这一问题的原因是多方面的,首先每个函数都是对象,都会占用内存,内存中对象越多性能就越差,其次,必须事件指定所有事件处理程序而导致的dom访问次数,会延迟整个页面的交互就绪事件,

使用事件委托,只需要在dom树中尽量最高的层次上添加一个事件处理程序.多数鼠标事件和键盘事件都适合采用事件委托技术.

在不需要的时候移除时间处理程序.

在事件处理程序中删除按钮也能组织事件冒泡,目标元素在文档中是事件冒泡的前提.

以前面试的时候有人让我理解一下dom是什么?

DOM 文档对象模型,是针对hmtl和xml文档的一个api,dom描绘了一个层次化的节点数,允许开发人员添加,移除和修改页面的某一部分.

大多数情况下都将事件处理程序添加事件流的冒泡阶段,要保证处理事件的代码能在大多数浏览器下一致的运行,只需要关注冒泡阶段

事件对象:在出发dom上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与时间有关的信息,包括导致事件的元素,事件的类型以及其他与特定时间相关的信息.

新图像元素不一定要从添加到文档后才开始下载只要设置了src属性就会开始下载;

mouseenter:当鼠标光标从元素外部首次移动到元素范围之内时触发;这个事件不冒泡,而且在光标移动到后代元素上不会触发

mouseleave:在位于元素上方的鼠标光标移动到元素范围之外时触发,----同上---

js中的定义的更多相关文章

  1. JS中函数定义和使用顺序

    在js中如果定义函数是先声明函数,如: console.log(hello); //然后再去定义: function hello(){ alert("Hello");} 这种是可以 ...

  2. js中的定义变量之①用不用var

    var 是js定义变量的意思. 由于js中的变量是弱类型的,因此js中的所有变量包括number(数字型).string(字符串类型).boolean(布尔类型,true和false)等均通过var关 ...

  3. [转载]JS中如何定义全局变量

    三种方法 1.在js的function外定义一个变量 var name='测试'; function XX(){        alert(name); } 2.不使用var,直接给定义变量,隐式的声 ...

  4. JS中如何定义全局变量

    三种方法 1.在js的function外定义一个变量 var name='测试'; function XX(){        alert(name); } 2.不使用var,直接给定义变量,隐式的声 ...

  5. Angular JS中变量定义的基本原则

    在Angular JS开发中,经常需要定义一些变量,关于这些变量的定义方法及作用域应该注意以下几点: 1. 如果能用局部变量解决问题,尽量不要用全局变量. 2. 需要与界面双向绑定的变量采用$scop ...

  6. 1.1 js中函数定义解析(学习笔记)

    1.1.1函数的分类 函数声明式 :使用function声明函数,并指定函数名. 函数表达式:使用function声明函数,但未指定函数名. 函数表达式2.匿名函数,匿名函数有很多作用,赋予一个变量则 ...

  7. JS中函数定义和函数表达式的区别

    摘要: (function() {})();和(function(){}());的区别 Javascript中有2个语法都与function关键字有关,分别是: 函数定义:function Funct ...

  8. js 中const 定义的值是否能更改

    const定义的基本类型不能改变,但是定义的对象是可以通过修改对象属性等方法来改变的. 1. const aa=trueaa=falseconsole.log(aa)VM1089:2 Uncaught ...

  9. 简单说明一下JS中的函数声明存在的“先使用,后定义”

    首先看一段JS代码,其中使用了两种方式声明了两个函数,分别在不同的地方调用两个函数: <script> 'use strict'; // 输出hello函数 console.log(hel ...

随机推荐

  1. SQL Server 的数据库简单操作

    --创建数据库--create database 数据库名称[on [primary](name='主数据逻辑文件名',filename='完整的路径.文件名和拓展名'[,size=文件大小][,fi ...

  2. Ionic打包过程下载Gradle失败的解决方法

      安卓应用现在很多都是基于gradle进行大包,ionic默认的打包命令 cordova  build --release  android 就是使用gradle进行打包,但同时ionic也支持in ...

  3. uploadify v3.2.1 上传报大量js 类似__flash__addCallback(document.getElementById("SWFUpload_0"), "ReturnUploadStart"); 错误

    报__flash__addCallback未定义 报__flash__removeCallback未定义 最后解决方法:  uploadify  提供了destroy方法,每次使用完后,清空就可以了. ...

  4. linux入门级常用命令

    1) 关闭Linux系统的命令:init 02) Linux终端:Linux终端也称为虚拟控制台.Linux终端采用字符命令行方式工作,用户通过键盘输入命令,通过Linux终端对系统进行控制.3) 切 ...

  5. LinckedhashMap原理

    http://zhangshixi.iteye.com/blog/673789 TreeMap的key是有顺序的,是自然顺序,也可以指定比较函数. 但默认不是按插入的顺序.  为了让Map  JSON ...

  6. Dalvik指令格式

    一段Dalvik汇编代码由一系列Dalvik指令组成,指令语法由指令的位描述与指令格式 标识来决定.位描述约定如下: 每16位的字采用空格分隔开来每个字母表示四位,每个字母按顺序从高字节开始,排列到低 ...

  7. hdu4578 Transformation

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4578 题目大意:n个数(初始为0)m个操作,操作类型有4种,操作1把区间的每个数+a,操作2把区间的每 ...

  8. 【UVA11082】Matrix Decompressing(有上下界的网络流)

    题意:给出一个矩阵前i列所有元素的和,和前j行所有元素的和,求这个矩阵解压以后的原型.(答案不唯一) n,m<=20,1<=a[i,j]<=20 思路:这道题把边上的流量作为原先矩阵 ...

  9. 博弈SG

    先转一篇看得比较懂的,以后有时间自己再归纳下 转自:http://blog.csdn.net/logic_nut/article/details/4711489 博弈问题若你想仔细学习博弈论,我强烈推 ...

  10. sap 常用表

    MM    表名 EBAN 采购申请