读书笔记之JavaScript
zhi_Miss
hello world!I am coming
展开
-
变量声明提前和函数声明提前
JavaScript解析器在向执行环境加载数据时,会将当前作用域中所有声明的变量和函数都会放到作用域的开始处。但是只有变量的声明被提前到作用域的开始处了,而赋值操作被保留在原处。原创 2016-02-27 15:51:54 · 838 阅读 · 0 评论 -
将一个字符串逆序输出
1.转换成数组,用reverse()方法 2.使用数组的栈方法 3.使用数组的队列方法原创 2016-02-27 16:13:37 · 863 阅读 · 0 评论 -
面向对象程序设计——理解对象
面向对象语言的标志是有类的概念,但是ECMAScript中没有类的概念。 ECMA-262把对象这样定义:无序属性的集合,其属性可以包含基本值、对象或函数。严格的说,对象是一组没有特定顺序的值。对象的每一个属性或方法都有一个名字,而每个名字都映射到一个值。 创建对象: var person = new Object(); person.name = "Tom"; person.age =原创 2016-02-27 16:11:27 · 451 阅读 · 0 评论 -
原型链
许多面向对象语言都支持两种继承:接口继承和实现继承。接口继承只继承方法签名,而实现继承则继承实际的方法。 JS中,由于函数没有签名,无法实现接口继承。JS只支持实现继承,而主要依靠的就是原型链。 基本思想:利用原型让一个引用类型继承另一个引用类型的属性和方法。 每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。假如我们原创 2016-02-27 16:09:17 · 740 阅读 · 0 评论 -
执行环境及作用域
执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为。每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个变量中。 全局执行环境是最外围的一个执行环境。在web浏览器中,全局环境被认为是window对象,因此所有全局变量和函数都是作为window对象的属性和方法创建的。某个执行环境中的所有代码执行完之后,该环境被销毁,保存在其中的所有变量和函原创 2016-02-27 16:00:33 · 522 阅读 · 0 评论 -
事件模型:事件冒泡、事件冒泡、事件委托
事件冒泡:IE的事件流叫做事件冒泡,即事件开始由最具体的元素(文档中嵌套层次最深的哪个节点)接收,然后逐级向上传播到较为不具体的节点(文档)。 举例: Event Bubbling Example click me 如果单击div元素,则事件的传播顺序: 1)div 2)body 3)html 4)document原创 2016-02-27 15:59:24 · 416 阅读 · 0 评论 -
apply()和call()
call()方法: 语法:call(thisObj,arg1,arq2);(传递给函数的参数必须逐个列举出来) 定义:调用一个对象的一个方法,以另一个对象替换当前对象。 说明:call方法可以用来代替另一个对象调用一个方法。call方法可将一个函数的对象上下文从初始的上下文改变为由thisObj指定的新对象。 如果没有提供thisObj参数,那么Global对象被用作thisObj。原创 2016-02-27 15:58:35 · 407 阅读 · 0 评论 -
闭包
闭包是指有权访问另一个函数作用域中的变量的函数。 特点:1.函数嵌套函数 2.内部函数可以引用外部函数的参数和变量 3.参数和变量不会被垃圾回收机制收回。 好处:1.让变量的值始终驻扎在内存中 2.避免全局变量的污染 3.私有成员的存在 使用注意点: 1)由于闭包会使得函数中的变量都被保存在原创 2016-02-27 15:55:32 · 418 阅读 · 0 评论 -
String类型相关方法
(一)创建方法 var newString = new String("hello world"); (二)字符方法 a.charAt()方法 //返回指定位置的字符 var stringValue = new Strig("hello world"); alert(stringValue.charAt(1)); //e b.charCodeAt()方原创 2016-02-27 15:30:50 · 392 阅读 · 0 评论 -
数组中各方法
(一)创建数组的方法(两种方法) a.构造方法 var newArr = new Array(); var colors = new Array(3); var people = new Array("Xiao","Xuan","Ting"); b.数组字面量方法 var newArr = []; //创建一个空数组 var colors = ["red","yellow"]原创 2016-02-27 15:51:05 · 518 阅读 · 0 评论 -
关于闭包的理解
要想理解闭包,必须先了解作用域以及作用环境。下面是自己列举的例子: 上面的代码显然会报错,因为在函数test中是访问不到函数add中的变量sum的,所以没办法弹出sum的值。这是因为js函数的作用域。在一些类C的编程语言中,每个花括号中的代码都有各自的作用域,在声明变量的作用域之外是没办法访问到变量的,称为块级作用域。 JS中没有块级作用域,取而代之原创 2016-08-04 12:08:30 · 510 阅读 · 0 评论