
JavaScript
zhaomin_hi
这个作者很懒,什么都没留下…
展开
-
javascript 学习之 函数 - 参数
javascript函数可以用任意多个参数来调用,而不用管函数定义时指定了几个参数。因为函数是弱类型的,没有方法去声明它所期望的参数类型,并且给任何函数传递任何类型的值都是合法的。可选参数当调用一个函数时,传递的参数少于声明时的参数。那么额外的参数都将以undefined值来处理。写一些在调用时可以被忽略或者可选的函数也是有用的。要达到这个目的,你必须给那些可能被忽略的参数分配一个合理的值(或指定为null),如:// 将对象o的所有属性名添加到数组a中,并返回数组a。如果o被忽略,那么先创建,再返回fun转载 2011-01-04 15:40:00 · 518 阅读 · 0 评论 -
经典 Javascript 正则表达式
正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,以致往往要上网查一番。我将一些常用的表达式收藏在这里,作备忘之用。匹配中文字符的正则表达式:[/u4e00-/u9fa5]匹配双字节字符(包括汉字在内):[^/x00-/xff]应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)String.prototype.l转载 2011-06-15 18:12:00 · 346 阅读 · 0 评论 -
理解Javascript_07_理解instanceof实现原理
在《Javascript类型检测》一文中讲到了用instanceof来用做检测类型,让我们来回顾一下: 那么instanceof的这种行为到底是如何实现的呢,现在让我们揭开instanceof背后的迷雾。 instanceof原理 照惯例,我们先来看一段代码:view source转载 2011-06-15 18:18:00 · 453 阅读 · 0 评论 -
JavaScript 继承方式(2)
这篇开始写几个工具函数实现类的扩展。每个工具函数都是针对特定的写类方式(习惯)。这篇按照构造函数方式写类:属性(字段)和方法都挂在this上。以下分别提供了个类,分别作为父类和子类。//父类Personfunction Person(nationality) { this.nationality = nationality; this.setNationality = func转载 2011-06-15 18:04:00 · 313 阅读 · 0 评论 -
JavaScript 继承方式(4)
4,继承工具函数四/*** @param {String} className* @param {String/Function} superClass* @param {Function} classImp*/function $class(className, superClass, classImp){if(superClass === "") superClass = Object转载 2011-06-15 18:05:00 · 351 阅读 · 0 评论 -
理解Javascript_03_javascript全局观
今天让我们站在语言的高度来看一下Javascript都有点什么。因为是全局性的俯瞰,所以不针对细节作详细的讲解。 先来看一张图吧: 解释一下: 核心(ECMAScript):定义了脚本语言的所有对象,属性和方法。文档对象模型(DOM):HTML和XML应用程序接口。浏览器对象模型(BOM):对浏览器窗口进行访问操作 现在来具体的讲一个各个成分: 关于ECMASc转载 2011-06-15 18:15:00 · 1564 阅读 · 0 评论 -
14条最佳JS代码编写技巧
摘要:写任何编程代码,不同的开发者都会有不同的见解。但参考一下总是好的,下面是来自Javascript Toolbox发布的14条最佳JS代码编写技巧。 写任何编程代码,不同的开发者都会有不同的见解。但参考一下总是好的,下面是来自Javascript Toolbox发布的14条最佳JS代码编写技巧。 1. 总是使用 var 在javascript中,变量不是全局范转载 2011-06-15 17:12:00 · 344 阅读 · 0 评论 -
Javascript中括号“[]”的多义性
摘要:本文就是主要是分享JavaScript中括号的四种语义。 Javascript中括号有四种语义 语义1,声明数组 view sourceprint?1var ary = []; // 声明一个空数组转载 2011-06-15 18:02:00 · 443 阅读 · 0 评论 -
JavaScript继承方式(1)
前段时间温故了下JS OO之写类方式,从这篇开始我们看看JS OO之继承方式。 面向对象的语言多数都支持继承,继承最重要的优点就是代码复用,从而构建大型软件系统。如果一个类能够重用另一个类的属性和或方法,就称之为继承。从这个角度来看看JS的继承方式。JS中继承方式与写类方式息息相关。不同的写类方式造成不同的继承方式。各种流行JS库继承方式也各不相同。从最简单的复用开始。 1、构造函数方转载 2011-06-15 18:08:00 · 346 阅读 · 0 评论 -
Javascript 变量作用域
变量的作用域指的是变量的可见性,而生命周期则(存活期)则是从另一个角度考察变量。 JS中变量的作用域分为全局变量和局部变量,函数内定义的称为局部变量,函数外的称为全局变量。(“函数外的称为全局变量”是相对的,另此处讨论的前提是用var显式声明的变量,函数内不用var定义的变量默认是全局变量,当然忽略var声明变量是不赞成的)。var glob = 4;//函数外声明全局变量functio转载 2011-06-15 18:09:00 · 389 阅读 · 0 评论 -
早该知道的7个JavaScript技巧
摘要:下面的描述的就是过去让作者不由得发出“啊!”的感叹的编程技巧,这些技巧你应该现在就试试,而不是等着未来的某个时候偶然的发现它们。 我写JavaScript代码已经很久了,都记不起是什么年代开始的了。对于JavaScript这种语言近几年所取得的成就,我感到非常的兴奋;我很幸运也是这些成就的获益者。我写了不少的文章,章节,还有一本专门讨论它的书,然而,我现在依然能发现一些转载 2011-06-15 18:10:00 · 377 阅读 · 0 评论 -
理解Javascript_01_理解内存分配
在正式开始之前,我想先说两句,理解javascript系列博文是通过带领大家分析javascript执行时的内存分配情况,来解释javascript原理,具体会涵盖javascript预加载,闭包原理,面象对象,执行模型,对象模型...,文章的视角很特别,也非常深入,希望大家能接受这种形式,并提供宝贵意见。 原始值和引用值 在ECMAScript中,变量可以存放两种类型的值,即原始值转载 2011-06-15 18:14:00 · 448 阅读 · 0 评论 -
理解Javascript_02_理解undefined和null
其实在 ECMAScript 的原始类型中,是有Undefined 和 Null 类型的。 这两种类型都分别对应了属于自己的唯一专用值,即undefined 和 null。 值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的,通过下列代码可以验证这一结论: Code highlighting produced by Actipro Co转载 2011-06-15 18:15:00 · 453 阅读 · 0 评论 -
理解Javascript_04_数据模型
本文主要描述Javascript的数据模型,即对Javascript所支持的数据类型的一个全局概缆。文章比较的理论化,非常深入,因此不易理解,但务必对数据模型有一个映象,因为他是理解Javascript对象模型与Javascript执行模型的基础。 基本的数据类型 原始类型(简单数据类型、基本数据类型) Undefined类型: 表示声明了变量但未对其初始化时赋予该变量的值。un转载 2011-06-15 18:16:00 · 492 阅读 · 0 评论 -
JavaScript继承方式(1)
前段时间温故了下JS OO之写类方式,从这篇开始我们看看JS OO之继承方式。 面向对象的语言多数都支持继承,继承最重要的优点就是代码复用,从而构建大型软件系统。如果一个类能够重用另一个类的属性和或方法,就称之为继承。从这个角度来看看JS的继承方式。JS中继承方式与写类方式息息相关。不同的写类方式造成不同的继承方式。各种流行JS库继承方式也各不相同。从最简单的复用开始。 1、构造函数方转载 2011-06-15 18:08:00 · 494 阅读 · 0 评论 -
深入理解JavaScript的闭包特性
摘要:初学者经常碰到的,即获取HTML元素集合,循环给元素添加事件。在事件响应函数中(event handler)获取对应的索引。但每次获取的都是最后一次循环的索引。原因是初学者并未理解JavaScript的闭包特性。 有个网友问了个问题,如下的html,为什么点击所有的段落p输出都是5,而不是alert出对应的0,1,2,3,4。 1. DOCTYPE HTML转载 2011-06-15 18:07:00 · 388 阅读 · 0 评论 -
JavaScript: 使用面向对象的技术创建高级 Web 应用程序
在某种程度上,这种假设并不是完全没有根据的。用 JavaScript 很容易做些简单的事情。入门的门槛很低,该语言很宽松,它不需要您知道很多细节就可以开始用它进行编码。甚至非编程人员也可能用它在几个小时内为主页编写一些有用的脚本。的确,直到最近,仅仅凭借 MSDN® DHTML 参考资料和我的 C++/C# 经验,我也总能勉强利用这点 JavaScript 知识完成一些任务。只是当我开始编写真实的 AJAX 应用程序时,我才意识到实际上我的 JavaScript 知识还非常不够。这个新一代的 Web 应用程转载 2011-02-25 16:24:00 · 414 阅读 · 0 评论 -
javascript 异步编程
这可能是个比较深的话题。何谓异步? 笼统地说,异步在javascript就是延时执行。严格来说,javascript中的异步编程能力都是由BOM与DOM提供的,如setTimeout,XMLHttpRequest,还有DOM的事件机制,还有HTML5新增加的webwork, postMessage,等等很多。这些东西都有一个共同的特点,就是拥有一个回调函数,实现控制反转。由于控制反转是更深奥转载 2011-06-15 17:58:00 · 319 阅读 · 0 评论 -
JavaScript基于计时器的伪线程机制
摘要:在之前的那篇浏览器对Javascript代码执行的限制文章中,描述了5个浏览器在javascript代码执行的时间过长的时候怎么办。它不会改变浏览器的行为,也不可能取消掉后端服务器的进程。不过,计时器可以帮助我们实现长期运行的任务而不需要阻塞浏览器。 在之前的那篇浏览器对Javascript代码执行的限制文章中,描述了5个浏览器在javascript代码执行的时间过长的转载 2011-06-15 18:00:00 · 450 阅读 · 0 评论 -
JavaScript的写类方式(1)
从这篇起,会由浅到深的分析JS OO之写类方式,大概会有5-8篇。后面陆续会分析流行库(框架)的写类方式。一些写类工具函数或框架的写类方式本质上都是 构造函数+原型。只有理解这一点才能真正明白如何用JavaScript写出面向对象的代码。或者说组织代码的方式使用面向对象方式。当然用JS也可写出函数式的代码,它是多泛型的。 为了讨论的单一性,暂不考虑类的继承,(私有,受保护)属性或方法。EMC转载 2011-06-15 18:03:00 · 384 阅读 · 0 评论 -
JavaScript 继承方式(3)
3,继承工具函数三/** * @param {Function} subCls * @param {Function} superCls */function extend(subCls,superCls) { subCls.prototype = new superCls(); } 父类,按原型方式写,即属性和方法都挂在原型上。/** * 父类Person转载 2011-06-15 18:05:00 · 400 阅读 · 0 评论 -
理解Javascript_05_原型继承原理
对于面向对象的基础语法在此我就不重复了,对面向对象不熟悉的朋友可以参看《使用面向对象的技术创建高级 Web 应用程序》一文。 prototype与[[prototype]] 在有面象对象基础的前提下,来看一段代码:view sourceprint?转载 2011-06-15 18:17:00 · 427 阅读 · 0 评论 -
理解Javascript_06_理解对象的创建过程
在《理解Javascript_05_原型继承原理》一文中已经详细的讲解了原型链的实现原理,大家都知道原型链是基于对象创建的(没有对象,哪来原型),那么今天就来解析一下对象的创建过程。 我们先来看一段简单的代码:view sourceprint?转载 2011-06-15 18:19:00 · 474 阅读 · 0 评论 -
理解Javascript_09_Function与Object
在《理解Javascript_08_函数对象》中讲解了很多函数对象的问题,同时也留下了许多疑问,今天让我们来解答部分问题。 注:理论过于深入,本人不改保证所有的理论都是正确的,但经过多方测试还未发现实际代码与理论冲突的问题。如有错误,望高人指点! Function 首先回顾一下函数对象的概念,函数就是对象,代表函数的对象就是函数对象。所有的函数对象是被Function这个函数对象转载 2011-06-15 18:20:00 · 494 阅读 · 0 评论 -
JavaScript调用函数的方法
摘要:这篇文章详细的介绍了Javascript中各种函数调用的方法及其原理,对于理解JavaScript的函数有很大的帮助! 一次又一次的,我发现,那些有bug的Javascript代码是由于没有真正理解Javascript函数是如何工作而导致的(顺便说一下,许多那样的代码是我写的).JavaScript拥有函数式编程的特性,当我们选择面对它的时候,这将成为我们前进的阻碍.转载 2011-06-15 18:21:00 · 606 阅读 · 0 评论 -
Javascript中的对象查找
摘要:本文作者为大家介绍Javascript中的对象查找一些问题,希望有所帮助。 近期群里常有人提一些简单的问题,比如发一段代码乱七八糟的代码,然后说里面某个变量是什么,比如这里就有个很好的例子:function fn(arg) { alert(this.arg); alert(this);}fn(123);var o = { fn: fn };o.f转载 2011-06-15 17:55:00 · 431 阅读 · 0 评论 -
开发者最容易犯的13个JavaScript错误
摘要:开发者最容易犯的JavaScript错误,总结出13个。这些当中可能少不了你犯的错误。我们描述了这些陋习,并列出来解决办法,希望对开发者有帮助。 开发者最容易犯的JavaScript错误,总结出13个。这些当中可能少不了你犯的错误^_^。我们描述了这些陋习,并列出来解决办法,希望对开发者有帮助。 1.for.. 数组迭代的用法 Usage of for..in t转载 2011-06-15 17:56:00 · 402 阅读 · 0 评论 -
javascript 异步编程2
好像有这么一句名言——"每一个优雅的接口,背后都有一个龌龊的实现"。最明显的例子,jQuery。之所以弄得这么复杂,因为它本来就是那复杂。虽然有些实现相对简明些,那是它们的兼容程度去不了那个地步。当然,世上总有例外,比如mootools,但暴露到我们眼前的接口,又不知到底是那个父类的东西,结构清晰但不明撩。我之所以说这样的话,因为异步列队真的很复杂,但我会尽可能让API简单易用。无new实例化,不转载 2011-06-15 17:59:00 · 401 阅读 · 0 评论 -
Javascript中大括号“{}”的多义性
摘要:本文主要介绍JavaScript中大括号有四种语义作用。 JS中大括号有四种语义作用 语义1,组织复合语句,这是最常见的 view sourceprint?1if( condition ) {转载 2011-06-15 18:01:00 · 411 阅读 · 0 评论 -
理解Javascript_08_函数对象
如果你无法理解博文在讲什么,请回顾前面的系列博文。文章比较深入,如有不对之处,望请指正,谢谢。 函数对象 首先,大家得明确一个概念:函数就是对象,代表函数的对象就是函数对象。既然是对象,那它又是被谁构造出来的呢?下面我们来看一段描述:JavaScript代码中定义函数,或者调用Function创建函数时,最终都会以类似这样的形式调用Function函数:var newFun=Funct转载 2011-06-15 18:18:00 · 421 阅读 · 0 评论