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

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

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

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

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

  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. 2 Egg Problem

    继续我们的推理问题之旅,今天我们要对付的是一个Google的面试题:Two Egg Problem. 我们开始吧! No.2  Google Interview Puzzle : 2 Egg Prob ...

  2. 通用Hibernate DAO类(包括分页)

    package com.jronline.dao; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.S ...

  3. 数据库一些常用的SQL语句

    1.多表连接查询: 假设现在有三个表,One,Two,Three: One表字段:Code(主键),Name Two表字段:Birthday,T_code(One表Code的外键) Three表字段: ...

  4. [Docker] docker 基础学习笔记3(共6篇)

    首先我们安装好了ssh server之后, 我们需要将这个容器commit,然后启动这个被commit的image. 启动方式: docker run -d -p 2222:22 /usr/sbin/ ...

  5. [Docker] docker 基础学习笔记2(共6篇)

    febootstrap 是一个自制image的一个第三方的工具,好像他们现在都要用这个.   安装还是挺方便的. yum -y install febootstrap   febootstrap -i ...

  6. 阿里巴巴Java招聘

    大家好: 我是阿里巴巴B2B的应用架构师,现在大量招聘Java工程师,对自己技术有信心的兄弟姐妹,请联系我吧. 版权声明:本文为博主原创文章,未经博主允许不得转载.

  7. Python:XXX missing X required positional argument: 'self'

    代码的一个小小Bug有时候会让人焦头烂额,费了很大劲搞明白的问题,如果不记录下来,是很容易遗忘的! 定义一个类,如果按照以下的方式使用,则会出现TypeError: testFunc() missin ...

  8. SeekBar 圆角问题

    用图片做背景色,最后处理成.9.png的.用普通png图片做背景,则两边会有圆角出现,原因是图片不适合SeekBar尺寸,因而被拉伸或压缩,从而产生圆角. <?xml version=" ...

  9. IOS低版本遇到了坑不知道你遇到了没

    拿着项目给客户测试,客户那边三个人俩人水果手机是ios8以下版本,结果导致```(恭喜,坑出现!)总不能说老总!"您把版本升级到ios9 吧!

  10. 关于JS 沙箱(转)

    javascript中的沙箱并非传统意义上的沙箱,只是一种语法上的hack写法而已,javascript中处理模块依赖关系的闭包被称之为沙箱,和 ajax一样,这种sandbox coding风格是一 ...