随笔分类 -  JavaScript

摘要:JavaScript 本身提供了十分好用的数据类型,以满足大家的日常使用。单靠 Array 和 Object 也的确足够应付日常的绝大部分需求,这也导致了很多前端er对数据结构这一块不是十分的了解。数据结构是 CS 的必修科目,前端这个圈子非科班的童鞋比例较高,相信很多人对数据结构的了解并不多。虽然... 阅读全文
posted @ 2014-08-11 01:46 Maple Jan 阅读(2606) 评论(1) 推荐(0)
摘要:什么是「超大整数」?JavaScript 采用 IEEE754标准 中的浮点数算法来表示数字 Number。我也没花时间去详细了解IEEE754标准,但对于处理超大整数,了解下面的几个知识点就足够了。首先,JavaScript 实际上可以表示的最大数是:1.7976931348623157e+308... 阅读全文
posted @ 2014-08-06 00:26 Maple Jan 阅读(6183) 评论(0) 推荐(0)
摘要:本文是我在知乎上的一个回答:http://www.zhihu.com/question/24702250/answer/28695133————— 下面是正文—————1. W3C 标准querySelectorAll 属于 W3C 中的 Selectors API 规范 [1]。而 getElem... 阅读全文
posted @ 2014-08-02 17:55 Maple Jan 阅读(1280) 评论(0) 推荐(1)
摘要:APOMWArticle Pagination Of Mobile Web移动端Web的文章排版,主要用于 SPA(Single Page Application) 形态的阅读产品中。功能支持中英文分页排版支持多款字体样式切换通过 span 标签的 data-key 属性,可以进行书签功能扩展代码已... 阅读全文
posted @ 2014-07-06 13:56 Maple Jan 阅读(1869) 评论(0) 推荐(0)
摘要:JavaScript的语法有多坑,算是众人皆知了。今天看到vczh的这条微博:http://weibo.com/1916825084/B7qUFpOKb,代码如下:{} + []; // 0[] + {}; // "[object Object]"{} + [] == [] + {}; ... 阅读全文
posted @ 2014-06-05 01:32 Maple Jan 阅读(2302) 评论(9) 推荐(6)
摘要:事件代理(Event Delegation),又称之为事件委托。是 JavaScript 中常用绑定事件的常用技巧。顾名思义,“事件代理”即是把原本需要绑定的事件委托给父元素,让父元素担当事件监听的职务。为什么要这样做呢?众所周知,DOM操作是十分消耗性能的。所以重复的事件绑定简直是性能杀手。而事件... 阅读全文
posted @ 2014-05-31 15:06 Maple Jan 阅读(1815) 评论(0) 推荐(2)
摘要:在XMLHttpRequest Level2出台之前,大多数的异步上传图片都是利用iframe去实现的。至于具体的实现细节,我就不在这边啰嗦的,Google一下就有文章谈这个东西。这次主要说说,怎么用新的API去实现图片上传。首先,少不了的自然是XMLHttpRequest Level2的一些新特性啦。其中最为实在的就是FormData对象,直接把表单(form)的DOM对象转为FormData对象,然后向服务器发送。还有就是Progress事件的支持,异步上传终于可以查看进度条啦!这里我就不废话了,因为大多数人应该都看过的阮一峰的《XMLHttpRequest Level 2 使用指南》,直 阅读全文
posted @ 2013-09-03 00:23 Maple Jan 阅读(4041) 评论(4) 推荐(4)
摘要:关于lazyload,很久之前整理过它的文档:《Lazy Load(1.7.0)中文文档 -- 延迟加载图片的jQuery插件》因为懒,所以才要用lazyload。但lazyload用了一些jQuery特有的内部接口,导致Zepto.js不支持。So,就在github上面fork了一个支持Zepto.js的branch。github:https://github.com/jiancm2011/jquery_lazyload 阅读全文
posted @ 2013-08-08 22:53 Maple Jan 阅读(2247) 评论(1) 推荐(0)
摘要:很随意的总结,几乎是代码片段,纯粹当个人笔记。JavaScript中,定义Function对象有两种方法。函数声明(function declaration)1 function fn() {2 // 代码3 };函数表达式(function expression)var fn = function () { // 代码};函数作回调(callback)时的作用域其实回调并不是传递一次性的匿名函数或全局函数,而是对象的方法。看下面的代码,输出结果和我们所想的不一致。 1 var obj = {}; 2 obj.color = "red"; 3 obj.getColor = 阅读全文
posted @ 2013-06-17 13:42 Maple Jan 阅读(377) 评论(0) 推荐(0)
摘要:/*** 本文纯粹是梳理一下目前W3C标准中Array对象的自带Method。* 全文没啥营养,不过最后性能测试的部分,倒是抛出了一些疑问。*/赋值方法 (Mutator methods)这些方法直接修改数组自身pop 和 push Array.pop();// 删除数组最后一个元素,返回被删除的元素Array.push(element1, ..., elementN); // 在数组尾部插入1-N个元素,返回操作后数组的length通过这pop 和 push ,就能把数组模拟成 堆栈(stack) 来进行操作。堆栈这种数据结构的特点,就是“后进先出”(LIFO, Last In First. 阅读全文
posted @ 2013-03-12 00:21 Maple Jan 阅读(3045) 评论(1) 推荐(3)
摘要:CORS全称:Cross-Origin Resource Sharing中文意思:跨域资源共享?好吧,目前中文方面的资料还比较少,能搜索到的那仅有的几篇相关介绍,也几乎是雷同的。最近工作上也有用到CORS的地方,随便做点分享吧,也当是笔记。大家也知道,XMLHttpRequest接口是Ajax的根本,而Ajax考虑到安全性的问题,是禁止跨域访问资源的。也就是说:www.a.com的页面无法通过Ajax来调用www.b.com的资源。很多人又会说,但jQuery的$.ajax()明明就可以跨域访问啊!对,的确是跨了,但那是jsonp!关于jsonp的介绍也很多了,这里不扯。其实jQuery的$. 阅读全文
posted @ 2012-12-02 02:15 Maple Jan 阅读(4381) 评论(1) 推荐(2)
摘要:对象冒充的方法实现:function Human() { //定义Human类 this.species = "Human"; } function Sex(sex) { //定义Sex类 this.sex = sex; } function Chinese(name,sex) { this.name = name; this.newMethod1 = Human; //对象冒充,指向Human对象 this.newMethod1(); //调用方法,实现继承 delete this.newMethod... 阅读全文
posted @ 2012-11-16 23:15 Maple Jan 阅读(201) 评论(0) 推荐(0)
摘要://方法1for(var i = domSpans.length; i--; ) { domSpans[i].onclick = function(num) { return function() { alert(num); } }(i); } //方法2for(var i = domSpans.length; i--; ) { (function(num) { domSpans[num].onclick = function() { alert(num);... 阅读全文
posted @ 2012-11-16 23:02 Maple Jan 阅读(204) 评论(0) 推荐(0)
摘要:function getStyle(elem, styleName){ if(elem.style[styleName]){ //获取内联样式 return elem.style[styleName]; } else if(elem.currentStyle){ //IE特有的属性 return elem.currentStyle[styleName]; } else if(window.getComputedStyle){ //DOM标准属性 return window.getComput... 阅读全文
posted @ 2012-11-16 22:57 Maple Jan 阅读(328) 评论(0) 推荐(0)
摘要:(function() { var createRequest = function() { var request; try { //support IE7+, Firefox, Chrome, Safari and Opera. request = new XMLHttpRequest(); } catch(tryMS) { try { request = new ActiveXObject("Msxml2.XMLHTTP"); ... 阅读全文
posted @ 2012-11-16 22:55 Maple Jan 阅读(189) 评论(0) 推荐(0)
摘要:如何创建一个Web Workers ?var worker = new Worker('task.js'); worker.onmessage = function(event) { console.log(event.data + " Jan!"); }; worker.postMessage("Hello"); worker.onerror = function(event) { console.log("ERROR: " + event.filename + " (" + event.line 阅读全文
posted @ 2012-11-16 22:35 Maple Jan 阅读(199) 评论(0) 推荐(0)
摘要:主要参考:http://webdesignerwall.com/demo/css3-image-styles/http://www.qianduan.net/css3-image-styles.html详情到上面两个连接看。主要自己整理一下,顺便把jQuery的代码专为JavaScript,做个备忘。DEMO:http://jsfiddle.net/QkRKC/embedded/result/代码:<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title> 阅读全文
posted @ 2012-11-16 22:28 Maple Jan 阅读(266) 评论(0) 推荐(0)
摘要:其实用CSS3实现动画效果主要涉及到3个CSS3属性:transition,animation 和 transformtransitionCSS3过渡属性,通过transition指定css属性,当该属性的值发生变化时,就会产生流畅的过渡效果。transition主要包含四个属性值,分别为:执行变换的属性:transition-property变换延续的时间:transition-duration在延续时间段,变换的速率变化:transition-timing-function变换延迟时间:transition-delay语法:transition:property duration timi 阅读全文
posted @ 2012-11-16 22:21 Maple Jan 阅读(412) 评论(1) 推荐(0)
摘要:原文:http://getfirebug.com/wiki/index.php/Console_API#console.log.28object.5B.2C_object.2C_....5D.29 Firebug插件 和 Chrome的JavaScript控制台 都有一个全局变量conslole . console.log(object[, object, ...]) 这样就能在控制台打印出 :Here is log!console.log("Here is log!");如果要输入的内容存在变量,可以用多个参数的方式实现:var firstName = "Map 阅读全文
posted @ 2012-10-20 11:26 Maple Jan 阅读(415) 评论(0) 推荐(1)
摘要:七:Ajax 其实这个章节主要分为了2个部分,数据传输和数据格式。 主要描述如何通过客户端语言来实现数据的交互。 常用五种向服务器请求数据的技术: XMLHttpRequest(XHR)//也就是所谓的Ajax Dynamic script tag insertion//动态脚本注入 iframes Comet Multipart XH 在现代高性能JavaScript中使用的三种技术是:XHR,动态脚本注入和Multipart XHR。 关于XHR就不多介绍了,主要就是通过XMLHttpRequest对象来实现服务器数据的发送和接受。 详细的学习跳去:http:/... 阅读全文
posted @ 2012-10-20 11:21 Maple Jan 阅读(252) 评论(0) 推荐(0)