随笔分类 - JavaScript

摘要:Brief 有时我们需要根据入参的数据类型来决定调用哪个函数实现,就是说所谓的函数重载(function overloading)。因为JS没有内置函数重载的特性,正好给机会我们思考和实现一套这样的机制。使用方式:function foo(... 阅读全文
posted @ 2016-01-26 10:37 ^_^肥仔John 阅读(941) 评论(0) 推荐(0) 编辑
摘要:Brief linkFly的《JavaScript-如果...没有方法》中提及如何手写Math.round方法,各种奇技淫招看着十分过瘾,最让我惊叹的是~~(x + 0.5 + (x >> 30)),完全通过加法和位运算搞定整数的四舍五入。... 阅读全文
posted @ 2016-01-20 10:56 ^_^肥仔John 阅读(2527) 评论(1) 推荐(2) 编辑
摘要:Brief 一天有个朋友问我“JS中计算0.7 * 180怎么会等于125.99999999998,坑也太多了吧!”那时我猜测是二进制表示数值时发生round-off error所导致,但并不清楚具体是如何导致,并且有什么方法去规避。于是用... 阅读全文
posted @ 2016-01-16 14:40 ^_^肥仔John 阅读(20412) 评论(4) 推荐(5) 编辑
摘要:Brief 本来只打算理解JS中0.1 + 0.2 == 0.30000000000000004的原因,但发现自己对计算机的数字表示和运算十分陌生,于是只好恶补一下。以下是恶补后的成果: 基础野:细说原码、反码和补码(http://ww... 阅读全文
posted @ 2016-01-14 18:30 ^_^肥仔John 阅读(1002) 评论(4) 推荐(0) 编辑
摘要:一、Breif 大家都知道instanceof一般就是用来检查A对象是否为B类或子类的实例。那问题是JS中没有类的概念更没有类继承的概念(虽然有构造函数),那么instanceof到底是怎样判断A对象是B构造函数的实例呢?本文将对此作分析记录... 阅读全文
posted @ 2015-07-30 17:57 ^_^肥仔John 阅读(1206) 评论(0) 推荐(1) 编辑
摘要:1. Brief ES6(ECMAScript 6th edition)于2015年7月份发布,虽然各大浏览器仍未全面支持ES6,但我们可以在后端通过Node.js 0.12和io.js,而前端则通过Traceur或Babel这类Transpiler将ES6语法预转译为ES5语法,来提前兴奋一把。而... 阅读全文
posted @ 2015-06-29 13:42 ^_^肥仔John 阅读(1574) 评论(0) 推荐(0) 编辑
摘要:一、前言 IE6~8除了不遵守W3C标准和各种诡异外,我想最让人诟病的应该是内存泄露的问题了。这阵子趁项目技术调研的机会好好的再认识一回,以下内容若有纰漏请大家指正,谢谢! 目录一大坨! 二、内存泄漏到底是哪里漏了? 2.1. JS En... 阅读全文
posted @ 2015-04-27 09:03 ^_^肥仔John 阅读(8179) 评论(10) 推荐(5) 编辑
摘要:一、前言 由于innerText并非W3C标准属性,因此我们无法在FireFox中使用它(修正:FF45+已经支持innerText属性),一般情况下我们可以使用textContent来代替,但它两者是否就能完全等同呢?在坑爹的表单元素(如input、textarea等)中表现是否依旧诡异呢?文本将 阅读全文
posted @ 2015-03-07 12:08 ^_^肥仔John 阅读(40639) 评论(0) 推荐(7) 编辑
摘要:一、前言 相信大家都熟悉通过字符实体来实现多个连续空格的输入吧!本文打算对三类HTML实体及JS相关操作作进一步的整理和小结,若有纰漏请大家指正,谢谢。二、初识HTML实体 ... 阅读全文
posted @ 2015-03-07 01:17 ^_^肥仔John 阅读(2191) 评论(2) 推荐(1) 编辑
摘要:一、何为异步 执行任务的过程可以被分为发起和执行两个部分。 同步执行模式:任务发起后必须等待直到任务执行完成并返回结果后,才会执行下一个任务。 异步执行模式:任务发起后不等待任务执行完成,而是马上执行下一个任务,当任务执行完成时则会收到通知。... 阅读全文
posted @ 2015-02-21 22:39 ^_^肥仔John 阅读(1458) 评论(0) 推荐(1) 编辑
摘要:一, 前言 深入学习Promise的朋友应该都看过这一系列的文章, 以解除回调地狱之外的观点来剖析Promise更多的内涵,确实十分精彩. Part 1: The Sync Problem(译文:http://segmentfault.com/... 阅读全文
posted @ 2015-02-16 06:19 ^_^肥仔John 阅读(1546) 评论(0) 推荐(0) 编辑
摘要:一、前言 当需要新元素时我们可以通过document.createElement接口来创建一个全新的元素,也可以通过克隆已有元素的方式来获取一个新元素。而在部分浏览器中,通过复制来获取新元素的效率比通过document.create... 阅读全文
posted @ 2014-12-21 20:14 ^_^肥仔John 阅读(4130) 评论(0) 推荐(0) 编辑
摘要:一、前言 第一次看koajs的示例时,发现该语句 function *(next){...............} ,这是啥啊?于是搜索一下,原来这是就是ES6的新特性Generator Function(生成器函数)。 那什么是生成器函数呢... 阅读全文
posted @ 2014-12-17 00:52 ^_^肥仔John 阅读(20345) 评论(2) 推荐(2) 编辑
摘要:一、前言 avalon.js的影响力愈发强劲,而作为子模块之一的mmDeferred必然成为异步调用模式学习之旅的又一站呢!本文将记录我对mmDeferred的认识,若有纰漏请各位指正,谢谢。项目请见:mmDeferred@github二、AP... 阅读全文
posted @ 2014-12-14 16:38 ^_^肥仔John 阅读(961) 评论(0) 推荐(0) 编辑
摘要:一、前言 大家先预计一下以下四个函数调用的结果吧!var test = function(){ console.log('hello world') return 'fsjohnhuang'}test.ca... 阅读全文
posted @ 2014-12-13 11:49 ^_^肥仔John 阅读(5174) 评论(2) 推荐(0) 编辑
摘要:一、前言 jQuery.Deferred作为1.5的新特性出现在jQuery上,而jQuery.ajax函数也做了相应的调整。因此我们能如下的使用xhr请求调用,并实现事件处理函数晚绑定。var promise = $.getJSON('dumm... 阅读全文
posted @ 2014-12-13 08:32 ^_^肥仔John 阅读(1272) 评论(0) 推荐(0) 编辑
摘要:一、前言 今晚在知乎看到百姓网前端技术专家——贺师俊对《JavaScript 语句后应该加分号么?》的回答,让我又一次看到大牛的风采,实在佩服万分。但单纯的敬佩是不足以回报他如此优秀的文字,必须深入理解文字的含义和背后的原理才不愧呢! ... 阅读全文
posted @ 2014-12-10 15:20 ^_^肥仔John 阅读(2902) 评论(0) 推荐(2) 编辑
摘要:一、前言 由于JavaScript程序为单线程,因此在执行长时间的操作时(如循环和递归操作)到导致UI线程长期被阻塞,无法响应用户操作请求(如点击按钮等),让用户体验大打折扣。于是想到将一个长时间操作切片成N个小操作并异步执行,例如jsDef... 阅读全文
posted @ 2014-12-09 13:54 ^_^肥仔John 阅读(10360) 评论(4) 推荐(3) 编辑
摘要:一、前言 我们一般使用方式为来引入外部层叠式样式文件,但LINK元素各属性的具体含义、资源加载行为等方面却了解不多,本文打算稍微深入一下。 由于内容较多,特设目录一坨: 二、到底有没有结束标签? 三、普通属性介绍 四、属性disabled详解 ... 阅读全文
posted @ 2014-12-08 16:55 ^_^肥仔John 阅读(6280) 评论(1) 推荐(2) 编辑
摘要:一、前言 在《JS魔法堂:jsDeferred源码剖析》中我们了解到img元素加载失败可以作为函数异步执行的优化方案,本文打算对img元素的加载行为进行更深入的探讨。二、资源加载的相关属性和事件 资源加载首先... 阅读全文
posted @ 2014-12-07 18:35 ^_^肥仔John 阅读(7437) 评论(0) 推荐(2) 编辑