Fork me on GitHub
  2011年9月5日
摘要: <scriptlanguage="JavaScript">/**演示arguments的用法,如何获取实参数和形数数*/functionargTest(a,b,c,d){varnumargs=arguments.length;//获取被传递参数的数值。varexpargs=argTest.length;//获取期望参数的数值。alert("实参数目为:"+numargs)alert("形数数目为:"+expargs)alert(arguments[0])alert(argTest[0])//undefined没有这种用法} 阅读全文
posted @ 2011-09-05 17:15 【艾伦】 阅读(362) 评论(0) 推荐(1) 编辑
摘要: 拉姆达(lambda)函数/*ECMA-262 对象定义:无序属性的集合,散列表构造函数始终要已一个大写字母开头,非构造小写开头*/var p = new Object();p.name = "cj";p.say = function(){this.name};//缺点:使用同一个接口创建很对象,大量的垃圾重复代码//工厂模式 问题 没有解决对象识别(怎么知道一个对象的类型)function createP(name,age){ var o = new Object(); o.name =name; o.age = age; o.say =function(){this.n 阅读全文
posted @ 2011-09-05 17:08 【艾伦】 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 基本的数据类型原始类型(简单数据类型、基本数据类型)Undefined类型:表示声明了变量但未对其初始化时赋予该变量的值。undefined为Undefined类型下的唯一的一个值。Null类型:用于表示尚未存在的对象。Null类型下也只有一个专用值null。Boolean类型:有两个值true和false,主要用于条件判断,控制执行流程。Number类型:代表数字(即包括32的整数,也包括64位的浮点数)String类型:用于代表字符串。注:关于undefined与null的关系,可以参见《理解Javascript_02_理解undefined和null》一文。对象:一个无序属性的集合,这些 阅读全文
posted @ 2011-09-05 15:34 【艾伦】 阅读(1108) 评论(0) 推荐(0) 编辑
摘要: 基本的数据类型原始类型(简单数据类型、基本数据类型)Undefined类型:表示声明了变量但未对其初始化时赋予该变量的值。undefined为Undefined类型下的唯一的一个值。Null类型:用于表示尚未存在的对象。Null类型下也只有一个专用值null。Boolean类型:有两个值true和false,主要用于条件判断,控制执行流程。Number类型:代表数字(即包括32的整数,也包括64位的浮点数)String类型:用于代表字符串。注:关于undefined与null的关系,可以参见《理解Javascript_02_理解undefined和null》一文。对象:一个无序属性的集合,这些 阅读全文
posted @ 2011-09-05 15:33 【艾伦】 阅读(360) 评论(0) 推荐(1) 编辑
摘要: 说明:为了文章的系统性,将本博文原来的两节内容放到了单独的一篇中,请见:《理解Javascript_12_执行模型浅析》引用变量优化即然我们已经了解了Javascript中变量的访问规则,那我们就来具体分析一下上面代码中alert(document.body.tagName);这一句的具体执行流程:由此可见,要在Fn2中访问window对象下的document对象的body属性的tagName属性是一个比较漫长的过程(这个问题在IE浏览器中尤为严重)。那么如何优化呢,通过流程图,我们也能发现问题的原因在于引用的级数太多,在《理解Javascript_01_理解内存分配》一文中也说过,通过引用寻 阅读全文
posted @ 2011-09-05 15:11 【艾伦】 阅读(378) 评论(1) 推荐(0) 编辑
摘要: 大家有没有想过,一段javascript脚本从载入浏览器到显示执行都经过了哪些流程,其执行次序又是如何。本篇博文将引出'javascript执行模型'的概念,并带领大家理解javascript在执行时的处理机制。简单的开始简单的代码:01<scripttype="text/javascript"src="xxx.js"></script>02<scripttype="text/javascript">03var i = 10;04function say(msg){05alert(m 阅读全文
posted @ 2011-09-05 15:10 【艾伦】 阅读(347) 评论(0) 推荐(2) 编辑
摘要: 这篇文章来回答javascript通用循环遍历方法forEach中最后提到的关于伪数组的问题。什么是伪数组能通过Array.prototype.slice转换为真正的数组的带有length属性的对象。这种对象有很多,比较特别的是arguments对象,还有像调用getElementsByTagName,document.childNodes之类的,它们都返回NodeList对象都属于伪数组。我们可以通过Array.prototype.slice.call(fakeArray)将伪数组转变为真正的Array对象。来看个示例:1varfakeArray01 = {0:'a',1:& 阅读全文
posted @ 2011-09-05 15:06 【艾伦】 阅读(2913) 评论(0) 推荐(0) 编辑
摘要: 循环遍历一个元素是开发中最常见的需求之一,那么让我们来看一个由框架BASE2和Jquery的结合版本吧.01varforEach = (function(){02//数组与伪数组的遍历03var_Array_forEach =function(array, block, context) {04if(array ==null)return;05//对String进行特殊处理06if(typeofarray =='string'){07array = array.split('');08}09vari = 0,length = array.length;10for 阅读全文
posted @ 2011-09-05 15:03 【艾伦】 阅读(4146) 评论(0) 推荐(1) 编辑
摘要: 先来看一下代码:(支持多个class查询和在某个范围内进行查询)01/*02* 根据元素clsssName得到元素集合03* @param fatherId 父元素的ID,默认为document04* @tagName 子元素的标签名05* @className 用空格分开的className字符串06*/07functiongetElementsByClassName(fatherId,tagName,className){08varnode = fatherId&&document.getElementById(fatherId) || document;09tagName 阅读全文
posted @ 2011-09-05 15:01 【艾伦】 阅读(595) 评论(2) 推荐(0) 编辑
摘要: 今天让我们站在语言的高度来看一下Javascript都有点什么。因为是全局性的俯瞰,所以不针对细节作详细的讲解。先来看一张图吧:解释一下:核心(ECMAScript):定义了脚本语言的所有对象,属性和方法文档对象模型(DOM):HTML和XML应用程序接口浏览器对象模型(BOM):对浏览器窗口进行访问操作现在来具体的讲一个各个成分:关于ECMAScriptECMAScript的工作是定义语法和对象,从最基本的数据类型、条件语句、关键字、保留字到异常处理和对象定义都是它的范畴。在ECMAScript范畴内定义的对象也叫做原生对象。其实上它就是一套定义了语法规则的接口,然后由不同的浏览器对其进行实 阅读全文
posted @ 2011-09-05 14:56 【艾伦】 阅读(441) 评论(0) 推荐(1) 编辑
摘要: 来自普遍的回答:其实在 ECMAScript 的原始类型中,是有Undefined 和 Null 类型的。 这两种类型都分别对应了属于自己的唯一专用值,即undefined 和 null。值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的,通过下列代码可以验证这一结论:alert(undefined == null); //true尽管这两个值相等,但它们的含义不同。undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。所 阅读全文
posted @ 2011-09-05 14:53 【艾伦】 阅读(971) 评论(0) 推荐(0) 编辑
摘要: 在正式开始之前,我想先说两句,理解javascript系列博文是通过带领大家分析javascript执行时的内存分配情况,来解释javascript原理,具体会涵盖javascript预加载,闭包原理,面象对象,执行模型,对象模型...,文章的视角很特别,也非常深入,希望大家能接受这种形式,并提供宝贵意见。原始值和引用值在ECMAScript中,变量可以存放两种类型的值,即原始值和引用值。原始值指的就是代表原始数据类型(基本数据类型)的值,即Undefined,Null,Number,String,Boolean类型所表示的值。引用值指的就是复合数据类型的值,即Object,Function. 阅读全文
posted @ 2011-09-05 14:47 【艾伦】 阅读(476) 评论(4) 推荐(6) 编辑
摘要: 执行环境,作用域2010-12-10 17:03 by 名刘天下, 84 visits,收藏,编辑在javascript的学习中,执行环境、作用域是2个非常非常重要和基本的概念,理解了这2个概念对于javsacript中很多脚本的运行结果就能明白其中的道理了,比如搞清作用域和执行环境对于闭包的理解至关重要。一、执行环境(exection context,也有称之为执行上下文) 所有 JavaScript 代码都是在一个执行环境中被执行的。执行环境是一个概念,一种机制,用来完成JavaScript运行时在作用域、生存期等方面的处理,它定义了变量或函数是否有权访问其他数据,决定各自行为。 在jav 阅读全文
posted @ 2011-09-05 13:46 【艾伦】 阅读(3781) 评论(3) 推荐(8) 编辑