Welcome 微信登录

首页 / 脚本样式 / JavaScript

深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点

深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点

具体一点就是编写高质量JavaScript的一些要素,例如避免全局变量,使用单变量声明,在循环中预缓存length(长度),遵循代码阅读,以及更多。 此摘要也包括一些与代码不太相关的习惯,但对整体代码的创建息息相关,包括撰写API文档、执行同行评审以及运行JSLint。这些习惯和最佳做法可以帮助你写出更好的,更易于理解和维护的代码,这些代码在几个月或是几年之后再回过头看看也是会觉得很自豪的。 书写可维护的代码(Writing Maintainable Co...
深入理解JavaScript系列(2) 揭秘命名函数表达式

深入理解JavaScript系列(2) 揭秘命名函数表达式

前言 网上还没用发现有人对命名函数表达式进去重复深入的讨论,正因为如此,网上出现了各种各样的误解,本文将从原理和实践两个方面来探讨JavaScript关于命名函数表达式的优缺点。 简单的说,命名函数表达式只有一个用户,那就是在Debug或者Profiler分析的时候来描述函数的名称,也可以使用函数名实现递归,但很快你就会发现其实是不切实际的。当然,如果你不关注调试,那就没什么可担心的了,否则,如果你想了解兼容性方面的东西的话,你还是应该继续往下看看。 我们...
深入理解JavaScript系列(3) 全面解析Module模式

深入理解JavaScript系列(3) 全面解析Module模式

简介 Module模式是JavaScript编程中一个非常通用的模式,一般情况下,大家都知道基本用法,本文尝试着给大家更多该模式的高级使用方式。 首先我们来看看Module模式的基本特征: 模块化,可重用 封装了变量和function,和全局的namaspace不接触,松耦合 只暴露可用public的方法,其它私有方法全部隐藏 关于Module模式,最早是由YUI的成员Eric Miraglia在4年前提出了这个概念,我们将从一个简单的例子来解释一下基本的...
深入理解JavaScript系列(4) 立即调用的函数表达式

深入理解JavaScript系列(4) 立即调用的函数表达式

前言 大家学JavaScript的时候,经常遇到自执行匿名函数的代码,今天我们主要就来想想说一下自执行。 在详细了解这个之前,我们来谈了解一下“自执行”这个叫法,本文对这个功能的叫法也不一定完全对,主要是看个人如何理解,因为有的人说立即调用,有的人说自动执行,所以你完全可以按照你自己的理解来取一个名字,不过我听很多人都叫它为“自执行”,但作者后面说了很多,来说服大家称呼为“立即调用的函数表达式”。 本文英文原文地址:http://benalman.com/...
深入理解JavaScript系列(6) 强大的原型和原型链

深入理解JavaScript系列(6) 强大的原型和原型链

前言 JavaScript 不包含传统的类继承模型,而是使用 prototypal 原型模型。 虽然这经常被当作是 JavaScript 的缺点被提及,其实基于原型的继承模型比传统的类继承还要强大。实现传统的类继承模型是很简单,但是实现 JavaScript 中的原型继承则要困难的多。 由于 JavaScript 是唯一一个被广泛使用的基于原型继承的语言,所以理解两种继承模式的差异是需要一定时间的,今天我们就来了解一下原型和原型链。 原型 10年前,我刚学...
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!

深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!

前言 写这篇文章的目的是经常看到开发人员说:把字符串转化为JSON对象,把JSON对象转化成字符串等类似的话题,所以把之前收藏的一篇老外的文章整理翻译了一下,供大家讨论,如有错误,请大家指出,多谢。 正文 本文的主题是基于ECMAScript262-3来写的,2011年的262-5新规范增加了JSON对象,和我们平时所说的JSON有关系,但是不是同一个东西,文章最后一节会讲到新增加的JSON对象。 英文原文:http://benalman.com/news...
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)

深入理解JavaScript系列(11) 执行上下文(Execution Contexts)

简介 从本章开始,我将陆续(翻译、转载、整理)http://dmitrysoshnikov.com/网站关于ECMAScript标标准理解的好文。 本章我们要讲解的是ECMAScript标准里的执行上下文和相关可执行代码的各种类型。 原始作者:Dmitry A. Soshnikov 原始发布: 2009-06-26 俄文原文:http://dmitrysoshnikov.com/ecmascript/ru-chapter-1-execution-conte...
Prototype源码浅析 String部分(二)

Prototype源码浅析 String部分(二)

格式camelize | capitalize|underscore|dasherize|inspect 变形toArray|succ|times这里面一个有用的方法是inspect,按照参考手册的说明,他的作用是“返回该字符串针对调试的字符串表现形式(即用单引号或双引号包括起来,并使用 "" 对特殊字符进行转义)”,在Object的toJSON里面也涉及到这个方法。 既然涉及到需要转义的字符,我们自然要一份转义字符信息,下面直接给出: 复制代...
Prototype源码浅析 String部分(四)之补充

Prototype源码浅析 String部分(四)之补充

替换interpolate|sub|scan|truncate | gsubinterpolate : 将字符串看作一个模板,并使用 object 的属性填充它。 sub : 将字符串中前指定个个与 pattern 指定的模式匹配的子串用 replacement 替换 scan : 遍历字符串中与参数 pattern 指定的模式匹配的所有子串。返回原始字符串本身。 truncate : 将字符串截短为指定的长度(包含后缀部分), 并添加一个后缀。 gsub...
Prototype源码浅析 Number部分

Prototype源码浅析 Number部分

Number部分方法比较少,一共有8个: toColorPart: 将 Number 对象转换为具有两位数字的十六进制形式 succ: 返回当前 Number 对象的下一个值,即当前值加一 times: 采用 Ruby 的风格来封装一个标准的 [0...n] 循环 toPaddedString:将当前 Number 对象转换为字符串,如果转换后的字符串长度小于 length 指定的值,则用 0 在左边补足其余的位数 abs: 返回当前 Number 对象的...
javascript椭圆旋转相册实现代码

javascript椭圆旋转相册实现代码

功能说明: 1.支持自动和手动两种模式:自动模式下自动旋转展示,手动模式下通过鼠标选择当前图片,或通过提供的接口选择上一张/下一张图片。 2.可自行添加旋转的缓动模式,默认模式为:匀速,先快后慢,先慢后快。 3.可自定义旋转轨迹的宽和高。 4.支持IE6 7 8 9 10 firefox chrome等浏览器。 效果预览: 实现原理: 根据对图片在椭圆轨迹上的运动,动态改变缩放大小,实现立体的视觉效果。 代码分析: 复制代码 代码如下: init:fu...
Prototype源码浅析 Enumerable部分之each方法

Prototype源码浅析 Enumerable部分之each方法

在javascript中,根本找不到Enumerable的影子,因为这一块是Prototype作者从Ruby中借鉴过来的。并且Enumerable在实际中根本没有直接应用的机会,都是混入到其他的对象中,可以说是其他对象的一个“父类”(不过只是调用了Object的extend方法,进行了方法的直接拷贝而已)。 我并不熟悉Ruby,不过看Enumerable中的一些方法,倒是跟Python中的有几分相似。 Enumerable其中一个最重要的方法是ea...
深入理解JavaScript系列(12) 变量对象(Variable Object)

深入理解JavaScript系列(12) 变量对象(Variable Object)

JavaScript编程的时候总避免不了声明函数和变量,以成功构建我们的系统,但是解释器是如何并且在什么地方去查找这些函数和变量呢?我们引用这些对象的时候究竟发生了什么? 原始发布:Dmitry A. Soshnikov 发布时间:2009-06-27 俄文地址:http://dmitrysoshnikov.com/ecmascript/ru-chapter-2-variable-object/ 英文翻译:Dmitry A. Soshnikov 发布时间:...
<< 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 >>