随笔分类 -  JavaScript

摘要:一直想使用nodejs来搭建个人blog,由于拖延症的缘故一直没有完成。在godaddy上注册了域名,但是备案太麻烦,于是有了以下实践。说明下目前这个blog使用的一些技术和平台:ghost7ghostwww.nitrous.iophpclouddnspodgodaddyghostghost是搭建... 阅读全文
posted @ 2014-05-20 10:18 形随心动 阅读(618) 评论(2) 推荐(0)
摘要:你知道下面代码输出时什么吗?functiona(){}vara=1;typeofa;你告诉我是"number"那这段代码呢?vara=1;functiona(){}typeofa;也是"number"那现在呢?vara=1;vara=function(){};typeofa;现在是"function"为什么呢?因为javascript代码执行时,具有一个叫活动对象和函数声明提升。 阅读全文
posted @ 2014-03-27 14:19 形随心动 阅读(265) 评论(0) 推荐(0)
摘要:在项目开发过程中,前端和后端经常是并行的。这时前端难免需要在本地"制造"出符合指定格式要求的数据。大部分数据都是使用json格式,那么有什么好的方法能直接保存json对象到本地呢?今天发现了以下方法:1(function(console){23console.save=function(data,filename){45if(!data){6console.error('Console.save:Nodata')7return;8}910if(!filename)filename='console.json'1112if(typeofdata 阅读全文
posted @ 2013-11-07 10:10 形随心动 阅读(1041) 评论(0) 推荐(1)
摘要:如何在持续升级的项目中保持项目的高性能?如何更加准确的定位和解决性能问题?实际上,WPO的最主要目的是改善用户体验,而用户体验的好坏则可以根据几个核心性能指标来衡量。从用户体验出发的几个核心时间指标包括:Start Render、DOM Ready、Page Load、TTI。不同的性能指标对用户体验的影响是不同的,而指标本身受哪些因素的影响也是不同的。优化某个指标又该具体采用什么样的方式?接下来将一一介绍,本文集中介绍DOM Ready。定义 DOM Ready,指的是页面解析完成的时间,在高级浏览器里有对应的DOM事件 - DOMContentLoaded,Firefox官方的解析如下:. 阅读全文
posted @ 2013-10-21 12:43 形随心动 阅读(446) 评论(0) 推荐(0)
摘要:1. 取整同时转成数值型:'10.567890'|0//结果: 10'10.567890'^0//结果: 10-2.23456789|0//结果: -2~~-2.23456789//结果: -22. 日期转数值:var d = +new Date(); //12956984167923. 类数组对象转数组:var arr = [].slice.call(arguments)4. 漂亮的随机码:Math.random().toString(16).substring(2); //14位Math.random().toString(36).substring(2); 阅读全文
posted @ 2013-10-09 22:38 形随心动 阅读(360) 评论(0) 推荐(0)
摘要:// 我的思路是采用哈希表来去重,最后将数组截取1if(!Array.prototype.unique){2Array.prototype.unique=function(){3vartmp={},4arr=[],5j=0,6i,7len;8for(i=0,len=this.length;i<len;i++){9varvalue=this[i];10if(tmp[value]){11arr.push(value);12}else{13this[j++]=value;14tmp[value]=1;15}16}17this.length=j;18returnarr;19}20} 阅读全文
posted @ 2013-09-12 09:22 形随心动 阅读(655) 评论(0) 推荐(0)
摘要:想做个直接通过JS获取某个城市的天气。本来想通过直接调用中国气象网的接口:http://www.weather.com.cn/weather/101070201.shtml,但是跨域问题一直无法解决,有谁知道请告诉我。因而改调用腾讯接口,部分源码如下:1functionWeather(){};23Weather.prototype={4 5getWeather:function(city,callback){6 varthat=this,7 cities=Weather.cityParse(),8 code=cities[city]?cities[city]:12... 阅读全文
posted @ 2013-06-25 09:26 形随心动 阅读(17719) 评论(0) 推荐(0)
摘要:http://kangax.github.io/es5-compat-table/ 阅读全文
posted @ 2013-06-15 13:03 形随心动 阅读(507) 评论(0) 推荐(0)
摘要:大多数浏览器是并行下载组件的,但下载外部脚本时,在脚本的下载、解析并执行完毕之前,不会开始下载任何其他内容。下面几种方式既可以使用外部脚本又能避免因阻塞导致的减速影响:(1)XHR Eval(2)XHR Injection(3)Script in Iframe(4)Script DOM Element(5)Script Defer(6)document.write Script Tag代码如下:1varScript={2createXHR:function(){3varxhr;4try{5xhr=newXMLHttpRequest();6}catch(e){7varprogid=['M 阅读全文
posted @ 2013-06-05 09:34 形随心动 阅读(217) 评论(0) 推荐(0)
摘要:渲染树:表示DOM节点如何显示。在DOM树中的每一个需要显示的节点在渲染树中至少存在一个对应的节点。该节点又叫盒子或帧,符合CSS模型的规定,为一个具有padding、margin、border和position的盒子。一旦DOM和渲染树构建完成,浏览器就开始显示页面。 当DOM的变化影响了元素的几何属性(宽、高、增加行数),浏览器需要重新计算元素的几何属性,同样其它元素的几何属性和位置也因此受到影响。浏览器会使渲染树中受到影响的部分失效,并重新构造渲染树(重排--reflow)。完成重排后,浏览器会重新绘制受到影响的部分到屏幕中(重绘--repaint)。重排(reflow):(1)添加或删 阅读全文
posted @ 2013-06-04 16:10 形随心动 阅读(2019) 评论(0) 推荐(0)
摘要:豆瓣Javascript代码风格规范Douban Javascript Core Style Guideline1. Javascript代码应符合Douban-JSLint检验标准1-1. 语句必须都有分号结尾,除了for, function, if, switch, try, while1-2. 只有长语句可以考虑断行,如: TEMPL_SONGLIST.replace('{TABLE}', da['results']) .replace('{PREV_NUM}', prev) ... 阅读全文
posted @ 2013-05-24 09:26 形随心动 阅读(151) 评论(0) 推荐(0)
摘要:(1)作为函数在ECMAScript3和ECMAScript5中,调用上下文(this)是全局对象。在严格模式中,调用上下文是undefined(2)作为方法此时方法的上下文为该函数对象(3)作为构造函数构造函数初始化新创建的对象,并将这个对象作为其调用上下文,并用this引用这个新创建的对象。new o.m()中的this指向的是新创建的对象,而不是m。构造函数中的return语句没有返回值或者返回一个原始值,则忽略这个返回值,同时使用新对象作为调用结果var Create = function(book){ this.book = book; //return ; 还是返回新创建的对象.. 阅读全文
posted @ 2013-05-23 12:19 形随心动 阅读(157) 评论(0) 推荐(0)
摘要:在函数声明和函数命名表达式中都有name属性。很多资料中都说明函数声明和命名函数表达式中都已定义了name属性,对此我也深信不疑。今天做了一个小测试,发现在IE下函数的name属性一直都是未定义。 1functionfoo(){};//函数声明2varbar=function(){};//函数表达式3varbaz=functionbaz(){};//命名表达式45//Firefox,WebKit6console.log(foo.name);//"foo"7console.log(bar.name);//""8console.log(baz.name);/ 阅读全文
posted @ 2013-04-09 08:56 形随心动 阅读(271) 评论(0) 推荐(0)
摘要:Javascript 异步加载详解本文总结一下浏览器在 javascript 的加载方式。关键词:异步加载(async loading),延迟加载(lazy loading),延迟执行(lazy execution),async 属性, defer 属性一、同步加载与异步加载的形式1. 同步加载我们平时最常使用的就是这种同步加载形式:<script src="http://yourdomain.com/script.js"></script> 同步模式,又称阻塞模式,会阻止浏览器的后续处理,停止了后续的解析,因此停止了后续的文件加载(如图像)、渲染、 阅读全文
posted @ 2013-04-01 11:31 形随心动 阅读(201) 评论(0) 推荐(0)
摘要:可以从时钟拖出时间戳 阅读全文
posted @ 2013-03-22 10:24 形随心动 阅读(145) 评论(0) 推荐(0)