- 博客(21)
- 资源 (7)
- 收藏
- 关注
原创 JavaScript Garden - instanceof 操作符
instanceof 操作符instanceof 操作符用来比较两个操作数的构造函数。只有在比较自定义的对象时才有意义。如果用来比较内置类型,将会和 typeof 操作符 一样用处不大。比较自定义对象function Foo() {}function Bar() {}Bar.prototype = new Foo();new Bar() instanceof Ba...
2011-03-31 23:59:22 102
JavaScript Garden - 该死的typeof 操作符
typeof 操作符typeof 操作符(和 instanceof 一起)或许是 JavaScript 中最大的设计缺陷,因为几乎不可能从它们那里得到想要的结果。尽管 instanceof 还有一些极少数的应用场景,typeof 只有一个实际的应用(译者注:这个实际应用是用来检测一个对象是否已经定义或者是否已经赋值),而这个应用却不是用来检查对象的类型。注意: 由于 t...
2011-03-31 23:58:17 107
原创 JavaScript Garden - 类型转换
类型转换JavaScript 是弱类型语言,所以会在任何可能的情况下应用强制类型转换。// 下面的比较结果是:truenew Number(10) == 10; // Number.toString() 返回的字符串被再次转换为数字10 == '10'; // 字符串被转换为数字10 == '+10 '; // 同上10 == '...
2011-03-31 23:55:42 131
JavaScript Garden - 相等与比较
相等与比较JavaScript 有两种方式判断两个值是否相等。等于操作符等于操作符由两个等号组成:==JavaScript 是弱类型语言,这就意味着,等于操作符会为了比较两个值而进行强制类型转换。"" == "0" // false0 == "" // true0 ...
2011-03-31 23:53:53 99
原创 JavaScript Garden - setTimeout 和 setInterval
setTimeout 和 setInterval由于 JavaScript 是异步的,可以使用 setTimeout 和 setInterval 来计划执行函数。注意: 定时处理不是 ECMAScript 的标准,它们在 DOM (文档对象模型) 被实现。function foo() {}var id = setTimeout(foo, 1000); // 返回一个...
2011-03-31 23:52:35 98
原创 JavaScript Garden - 为什么不要使用 eval
为什么不要使用 evaleval 函数会在当前作用域中执行一段 JavaScript 代码字符串。var foo = 1;function test() { var foo = 2; eval('foo = 3'); return foo;}test(); // 3foo; // 1但是 eval 只在被直接调用并且调用函数就是 ...
2011-03-31 23:50:00 112
JavaScript Garden -自动分号插入
自动分号插入尽管 JavaScript 有 C 的代码风格,但是它不强制要求在代码中使用分号,实际上可以省略它们。JavaScript 不是一个没有分号的语言,恰恰相反上它需要分号来就解析源代码。因此 JavaScript 解析器在遇到由于缺少分号导致的解析错误时,会自动在源代码中插入分号。var foo = function() {} // 解析错误,分号丢失test()...
2011-03-31 23:48:25 100
原创 JavaScript Garden - undefined 和 null
undefined 和 nullJavaScript 有两个表示‘空’的值,其中比较有用的是 undefined。undefined 的值undefined 是一个值为 undefined 的类型。这个语言也定义了一个全局变量,它的值是 undefined,这个变量也被称为 undefined。但是这个变量不是一个常量,也不是一个关键字。这意味着它的值可以轻易被覆盖。...
2011-03-31 23:46:25 98
原创 JavaScript Garden - Array 构造函数
Array 构造函数由于 Array 的构造函数在如何处理参数时有点模棱两可,因此总是推荐使用数组的字面语法 -[] - 来创建数组。[1, 2, 3]; // 结果: [1, 2, 3]new Array(1, 2, 3); // 结果: [1, 2, 3][3]; // 结果: [3]new Array(3); // 结果: [] new Array('3')...
2011-03-31 23:44:50 164
原创 JavaScript Garden - 数组遍历与属性
数组遍历与属性虽然在 JavaScript 中数组是是对象,但是没有好的理由去使用 for in 循环 遍历数组。相反,有一些好的理由不去使用 for in 遍历数组。注意: JavaScript 中数组不是 关联数组。JavaScript 中只有对象 来管理键值的对应关系。但是关联数组是保持顺序的,而对象不是。由于 for in 循环会枚举原型链上的所有属性,唯一过滤这些...
2011-03-31 23:43:57 110
原创 JavaScript Garden - arguments 对象
arguments 对象JavaScript 中每个函数内都能访问一个特别变量 arguments。这个变量维护着所有传递到这个函数中的参数列表。注意: 由于 arguments 已经被定义为函数内的一个变量。因此通过 var 关键字定义 arguments 或者将 arguments 声明为一个形式参数,都将导致原生的 arguments 不会被创建。arguments...
2011-03-31 23:42:17 83
原创 JavaScript Garden - 闭包和引用
闭包和引用闭包是 JavaScript 一个非常重要的特性,这意味着当前作用域总是能够访问外部作用域中的变量。因为 函数 是 JavaScript 中唯一拥有自身作用域的结构,因此闭包的创建依赖于函数。模拟私有变量function Counter(start) { var count = start; return { increment: f...
2011-03-31 23:39:17 112
原创 JavaScript Garden - 构造函数
构造函数JavaScript 中的构造函数和其它语言中的构造函数是不同的。通过 new 关键字方式调用的函数都被认为是构造函数。在构造函数内部 - 也就是被调用的函数内 - this 指向新创建的对象 Object。这个新创建的对象的 prototype 被指向到构造函数的 prototype。如果被调用的函数没有显式的 return 表达式,则隐式的会返回 this 对象 - 也...
2011-03-31 23:38:10 98
原创 JavaScript Garden - 函数声明与表达式
函数声明与表达式函数是JavaScript中的一等对象,这意味着可以把函数像其它值一样传递。一个常见的用法是把匿名函数作为回调函数传递对异步函数中。函数声明function foo() {}上面的方法会在执行前被 解析(hoisted),因此它存在于当前上下文的任意一个地方,即使在函数定义体的上面被调用也是对的。foo(); // 正常运行,因为foo在代码运行前已经被...
2011-03-31 23:36:57 100
原创 JavaScript Garden - this 的工作原理
this 的工作原理JavaScript 有一套完全不同于其它语言的对 this 的处理机制。在五种不同的情况下 ,this 指向的各不相同。全局范围内this;当在全部范围内使用 this,它将会指向全局对象。译者注:浏览器中运行的 JavaScript 脚本,这个全局对象是 window。函数调用foo();这里 this 也会指向全局对象...
2011-03-31 23:35:59 163
原创 JavaScript Garden -作用域与命名空间
作用域与命名空间尽管 JavaScript 支持一对花括号创建的代码段,但是并不支持块级作用域;而仅仅支持 函数作用域。function test() { // 一个作用域 for(var i = 0; i < 10; i++) { // 不是一个作用域 // count } console.log(i); // 10}...
2011-03-31 23:34:20 114
原创 JavaScript Garden - for in 循环
for in 循环和 in 操作符一样,for in 循环同样在查找对象属性时遍历原型链上的所有属性。注意: for in 循环不会遍历那些 enumerable 设置为 false 的属性;比如数组的 length属性。// 修改 Object.prototypeObject.prototype.bar = 1;var foo = {moo: 2};fo...
2011-03-31 23:26:56 98
原创 JavaScript Garden - hasOwnProperty 函数
hasOwnProperty 函数为了判断一个对象是否包含自定义属性而不是原型链上的属性,我们需要使用继承自 Object.prototype 的 hasOwnProperty 方法。注意: 通过判断一个属性是否 undefined 是不够的。因为一个属性可能确实存在,只不过它的值被设置为 undefined。hasOwnProperty 是 JavaScript 中唯...
2011-03-31 23:25:26 125
原创 JavaScript Garden - 原型
原型JavaScript 不包含传统的类继承模型,而是使用 prototypal 原型模型。虽然这经常被当作是 JavaScript 的缺点被提及,其实基于原型的继承模型比传统的类继承还要强大。实现传统的类继承模型是很简单,但是实现 JavaScript 中的原型继承则要困难的多。(It is for example fairly trivial to build a classic ...
2011-03-31 23:23:53 175
原创 JavaScript Garden - 对象使用和属性
对象使用和属性JavaScript 中所有变量都是对象,除了两个例外 null 和 undefined。false.toString() // 'false'[1, 2, 3].toString(); // '1,2,3'function Foo(){}Foo.bar = 1;Foo.bar; // 1一个常见的误解是数字的字面值(literal)不是...
2011-03-31 23:22:29 103
原创 Android内核和驱动篇-Android内核介绍
已经有一些的文章介绍Android内核了,本系列篇将从Linux内核的角度来分析Android的内核,希望给初学者提够有用的信息。本章将简单的介绍Android内核的全貌,起到一个抛砖引玉的作用。从下一篇开始将详细介绍每一个Android内核驱动程序及其作用。 Android内核是基于Linux 2.6内核的(目前最新开发版本是2.6.31),它是一个增强内核版本,除了修改部分Bug外,它提供了...
2011-03-10 19:56:50 89
SEO课程之PPT(搜索引擎优化基础)
2009-01-06
Open Blog 数据库设计说明书
2009-01-06
ExtJs单用户Blog系统后台源码
2009-01-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人