- 博客(29)
- 资源 (2)
- 收藏
- 关注
转载 提升JavaScript递归效率:Memoization(避免重复运算)技术详解
递归是拖慢脚本运行速度的大敌之一。太多的递归会让浏览器变得越来越慢直到死掉或者莫名其妙的突然自动退出,所以我们一定要解决在JavaScript中出现的这一系列性能问题。我们可以通过memoization技术来替代函数中太多的递归调用。memoization是一种可以缓存之前运算结果的技术,这样我们就不需要重新计算那些已经计算过的结果。对于通过递归来进行计算的函数,memoization简直
2012-11-28 16:59:22 1606
转载 Javascirpt的strict模式
一直以来,Javascript 松散灵活的语法饱受争议。 于是,ECMAScript 5.0 定义中引入了strict mode,使Javascript解释器可以用"严格"的语法来解析代码,以帮助开发人员发现错误。IE 10 开始支持strict mode。 开启strict mode很简单,在代码的开头加入[javascript] "use strict"; 这样很巧妙地
2012-11-28 16:50:55 465
转载 深入理解JavaScript作用域和作用域链
用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理。今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望能帮助大家更好的学习JavaScript。JavaScript作用域任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在J
2012-11-28 15:22:57 283
转载 javascript同源策略和跨域实验及其跨域解决办法
一、问题提出: 从应用A跳转到应用B,用户在应用B上操作完毕后,关闭页面,是否可以用程序自动刷新应用A窗口,以让用户观察操作效果。如支付宝充值,跳转到各银行界面进行充值,充值完毕后,支付宝页面相关自动刷新。(当然由于跨域问题,支付宝并没有这么做,而是弹出层让用户回来确认是否充值完毕)二、问题分析: 应用A采用域名http://trade.alibaba.com ,应用B采用的域名 http:/
2012-11-28 14:32:19 396
转载 翻译 - JavaScript中的作用域与变量声明提升
在前篇小议javascript之全局对象创建译文中提到过JavaScript Hoisting概念,当时不甚了解。google之后发现ben cherry解释的最为明了,于是有了本文这篇干货翻译稿。翻译能力有限,辞不达意的地方请自动跳过或者直接阅读原文。——以下为翻译——JavaScript Scoping and Hoisting(JavaScript中的作用
2012-11-27 19:25:03 619
转载 attribute和property的区别
DOM元素的attribute和property很容易混倄在一起,分不清楚,两者是不同的东西,但是两者又联系紧密。很多新手朋友,也包括以前的我,经常会搞不清楚。attribute翻译成中文术语为“特性”,property翻译成中文术语为“属性”,从中文的字面意思来看,确实是有点区别了,先来说说attribute。attribute是一个特性节点,每个DOM元素都有一个对应的attr
2012-11-27 17:14:13 480
转载 利用JSONP解决AJAX跨域问题的原理与jQuery解决方案
写在前面跨域的解决方案有多种,其中最常见的是使用同一服务器下的代理来获取远端数据,再通过ajax进行读取,而在这期间经过了两次请求过程,使得获取数据的效率大大降低,这篇文章蓝飞就为大家介绍一下解决跨域问题的一种比较通用的方案——JSONP。什么是跨域?简单的来说,出于安全方面的考虑,页面中的JavaScript无法访问其他服务器上的数据,即“同源策略”。而跨域就是通过某些手
2012-11-27 16:53:40 429
转载 有趣的浏览器检测
在写跨浏览器的js程序中,检测浏览器是一个很重要的工作。我们不时要为不同的浏览器写分支代码。如下: Js代码 //添加事件工具函数 function addEvent(el,type,handle){ if(el.addEventListener){//for standard browses el.addEventListe
2012-11-27 16:48:35 341
转载 Javascript模块化编程(三):require.js的用法
这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战。我采用的是一个非常流行的库require.js。一、为什么要用require.js?最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了。后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载。下面的网页代码,相信很多人都见
2012-11-27 15:34:25 291
转载 Javascript模块化编程(二):AMD规范
这个系列的第一部分介绍了Javascript模块的基本写法,今天介绍如何规范地使用模块。(接上文)七、模块的规范先想一想,为什么模块很重要?因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。但是,这样做有一个前提,那就是大家必须以同样的方式编写模块,否则你有你的写法,我有我的写法,岂不是乱了套!考虑到Javascript模
2012-11-27 15:04:12 282
转载 Javascript定义类(class)的三种方法
将近20年前,Javascript诞生的时候,只是一种简单的网页脚本语言。如果你忘了填写用户名,它就跳出一个警告。如今,它变得几乎无所不能,从前端到后端,有着各种匪夷所思的用途。程序员用它完成越来越庞大的项目。Javascript代码的复杂度也直线上升。单个网页包含10000行Javascript代码,早就司空见惯。2010年,一个工程师透露,Gmail的代码长度是4430
2012-11-27 14:57:48 274
转载 Javascript面向对象编程(三):非构造函数的继承
这个系列的第一部分介绍了"封装",第二部分介绍了使用构造函数实现"继承"。今天是最后一个部分,介绍不使用构造函数实现"继承"。一、什么是"非构造函数"的继承?比如,现在有一个对象,叫做"中国人"。 var Chinese = { nation:'中国' };还有一个对象,叫做"医生"。 var Doctor ={
2012-11-27 14:30:56 363
转载 Javascript面向对象编程(二):构造函数的继承
这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例。今天要介绍的是,对象之间的"继承"的五种方法。比如,现在有一个"动物"对象的构造函数。 function Animal(){ this.species = "动物"; }还有一个"猫"对象的构造函数。 function Cat(name,
2012-11-27 14:29:47 279
转载 Javascript 面向对象编程(一):封装
学习Javascript,最难的地方是什么?我觉得,Object(对象)最难。因为Javascript的Object模型很独特,和其他语言都不一样,初学者不容易掌握。下面就是我的学习笔记,希望对大家学习这个部分有所帮助。我主要参考了以下两本书籍:《面向对象的Javascript》(Object-Oriented JavaScript)《Javas
2012-11-27 11:21:07 260
转载 理解prototype.js的bind函数
先看call(或apply)的用处:Js代码 var first_object = { num: 42 }; function multiply(mult) { return this.num * mult; } multiply.apply(first_object, [5]); //等于 42*5
2012-11-27 11:00:31 378
转载 JavaScript 中 undefined 与 undeclared 之间的区别?
认为这个根本的区别在于,undefined是Js语言类型,而undeclared却是一种Js语法错误吧。 --------------------------------- 解答第一部分--------------------------------------- 在Js中,有两个表示‘空’的值undefined和null,其中比较有用的是 undefined。undefined
2012-11-26 17:18:41 1421
转载 web数据储存cookies、sessionStorage和localStorage
sessionStorage 和 localStorage 是HTML5 Web Storage API 提供的,可以方便的在web请求之间保存数据。有了本地数据,就可以避免数据在浏览器和服务器间不必要地来回传递。sessionStorage、localStorage、cookie都是在浏览器端存储的数据,其中sessionStorage的概念很特别,引入了一个“浏览器窗口”的概念。sessi
2012-11-26 17:14:18 599
转载 【HTML5】'data-'属性的作用是什么?
Resig在2008年在其博客中介绍过HTML5的data-属性,现如今HTML5在如火如荼地推广,似乎国内的技术有些延迟,这篇博文可以在这里找到。data-为前端开发者提供自定义的属性,这些属性集可以通过对象的dataset属性获取,不支持该属性的浏览器可以通过 getAttribute方法获取。ppk提到过使用rel属性,lightbox库推广了rel属性,HTML5提供了data-做替代
2012-11-26 16:52:46 842
转载 HTML / XHTML / HTML5
昨天了解了到底Web Standards是什么,有什么好处,今天就真正从”头”开始了. 在学习”doctype”的过程中,又顺便了解了一些关于HTML,XHTML的知识,觉得这些知识对于我这样平时看待问题不求甚解的人来说还是很有必要的.HTML跟XHTML什么关系?它们之间有什么区别,都说HTML要向XML过渡,可现在又推出了HTML5?为什么要向XML过渡,它有什么好?XHTML2.0又
2012-11-26 16:41:51 650
转载 通过javascript的匿名函数来分析几段简单有趣的代码
1、简单形式的封装调用 复制代码代码如下:var userName = function() { return "jeff wong" } (); alert(userName); 上面的代码确实简单,我们可以逐步分解成下面的写法: 复制代码代码如下:var anonymousFunc = function() { return "jeff wong"
2012-11-23 15:09:39 272
转载 一张图让你看懂JavaScript各类型的关系
这个图来自于《JavaScript语言精髓与编程实践》第三章P184页。最近在改第二版,这张图重做了,需要的可以对照着看。此外,补充一下图中用到的概念:1、内置(Build-in)对象与原生(Naitve)对象的区别在于:前者总是在引擎初始化阶段就被创建好的对象,是后者的一个子集;而后者包括了一些在运行过程中动态创建的对象。2、引擎扩展对象是一个并不太大的集合,一般来说比较确定,它们也
2012-11-21 14:18:26 317
转载 Javascript模块化编程(一):模块的写法(推荐阅读)
随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂。网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试等等......开发者不得不使用软件工程的方法,管理网页的业务逻辑。JavaScript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。但是,JavaScript
2012-11-21 13:44:34 366
转载 基于 HTML5 构建 Web 操作系统
HTML5 是下一代 web 语言的标准,具有兼容性好,安全性高,功能丰富,开发便捷等优点,特别适合如 Web 操作系统一类的富客户端互联网应用的前端开发。本文将展示如何利用 HTML5 提供的多种新技术如:本地数据库、多线程开发、视频支持、离线编程等构建一个基本的 Web 操作系统。简介传统的操作系统有着一些难以克服的缺点,如仅能在本地终端访问,或仅支持有限的远程访问,限于本地终端的资源
2012-11-21 10:19:48 771
转载 IE6,IE7,IE8,FIRFOX(火狐)兼容的写法
现在的主流浏览器,无非就是IE6,IE7,IE8,IE9,firefox等,我们在利用div+css写前台时,一定要知道如何让CSS去兼容各个浏览器:所有浏览器 通用 height: 100px; IE6 专用 _height: 100px;IE6 专用 *height: 100px; IE7 专用 *+height: 100px;IE7、FF 共用 hei
2012-11-13 09:45:39 554
转载 获取 Textarea 的光标位置
在任何编辑器中,获取光标位置都是非常重要的,很多人可能认为较难,其实只要处理好浏览器的兼容,还是比较容易实现的。下面我们一起来看看如何获取到 Textarea 元素中的光标位置(测试地址)。首先,我们用 rangeData 对象作为数据存储,并获得焦点:var rangeData = {start: 0, end: 0, text: "" };textarea.focus()
2012-11-01 17:17:42 934
转载 判断 iframe 是否加载完成的完美方法
一般来说,我们判断 iframe 是否加载完成其实与 判断 JavaScript 文件是否加载完成 采用的方法很类似:var iframe = document.createElement("iframe");iframe.src = "http://www.planabc.net";if (!/*@cc_on!@*/0) { //if not IE iframe.onload
2012-11-01 17:16:18 841
转载 Javascript的匿名函数
一、什么是匿名函数?在Javascript定义一个函数一般有如下三种方式:函数关键字(function)语句:function fnMethodName(x){alert(x);}函数字面量(Function Literals):var fnMethodName = function(x){alert(x);}Function()构造函数:var f
2012-11-01 17:13:18 572
转载 详解new function(){}和function(){}()
情景一:var yx01 = new function() {return "圆心"};alert(yx01);我们运行情景一代码,将返回显示“[object object] ”,此时该代码等价于:function 匿名类(){ return "圆心";}var yx01 = new 匿名类();alert(yx01);我们对情景一的代码进行下面改
2012-11-01 17:09:19 868
转载 JavaScript的陷阱
这本来是翻译Estelle Weyl的《15 JavaScript Gotchas》,里面介绍的都是在JavaScript编程实践中平时容易出错或需要注意的地方,并提供避开这些陷阱的方法,总体上讲,就是在认清事物本质的基础样要坚持好的编程习惯,其实这就是Douglas Crockford很久以前提出的JavaScript风格要素问题了,有些内容直接是相同的,具体请看《Javascript风格要
2012-11-01 17:07:30 302
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人