随笔分类 -  Javascript

eval & window.eval & window.execScript 的区别
摘要:eval & window.eval & window.execScript 的区别首先看一下 eval 和 window.eval 的区别直接看示例代码:var x = 2;var test = function(){ var x = 5; eval('alert(x)');};var test_win = function(){ var x = 6; window.eval('alert(x)');};alert(x); // IE6/7/8/9/Chrome/Ff: 2test(); // IE6/7/8: 5, IE9/Chr... 阅读全文
posted @ 2013-10-31 10:04 花森 阅读(640) 评论(0) 推荐(0)
Js 对象拷贝
摘要:Js 对象拷贝对象的引用在js里面实在的太常见了。如果不注意这个问题,则往往会犯一些小白一样的错误。比如:var pa = { name: 'huasheng', age: '20', address: { province: 'zzz', city: 'aaa' }};function test(param){ var addr = param.address; addr.city = "bbb";}test(obj);console.log(obj.address.city); // bbb// 这里函数t 阅读全文
posted @ 2013-09-15 14:34 花森 阅读(684) 评论(0) 推荐(0)
Js 模版——学习小结
摘要:最近调研了一下 Javascript 模版的使用情况。下面就简单的总结一下 Jqeury Template 插件和 Handlebars.js 二者的用法。Jqeury Template 插件1. Jquery 中生成 template 的方法有两种,一种是字符串 string 的形式,另一种是 这个个人倾向于使用第二种形式。首先字符串形式的出错率较高,同时也省去了创建 template 的中间步骤。第二种使用$("#template").tmpl( users.people, users).appendTo( $dom );这里 $item 即指代了 users.或者说, 阅读全文
posted @ 2013-06-19 22:23 花森 阅读(470) 评论(0) 推荐(0)
Js 模版——jQuery Templates plugin API
摘要:翻译JQuery.tmpl ( template, [data ,options] )* template : HTML 或 text 组成的 template;* data :将要渲染的数据,可以是 Javascript 中任意的一个数据类型,包括 object 或 array;* options :一个可选的用户自定义 key-value 键值对,扩展了 ‘tmplItem’ 的数据结构,并在 template 的渲染过程也可以使用。返回:JqueryJquery Templates 插件的下载地址 是:https://github.com/BorisMoore/jquery-tmplJQ 阅读全文
posted @ 2013-06-19 15:33 花森 阅读(1332) 评论(0) 推荐(0)
Js 模版 ——Handlebars.js 初步
摘要:原文地址:http://blog.teamtreehouse.com/getting-started-with-handlebars-js本文只是翻译。主要目的是锻炼一下翻译及语言组织能力,水平有限,不足之处望批评指正。现在越来越多的Web应用程序开始使用 Javascript 来创建动态接口,这个趋势不会立即改变。DOM操作非常适合简单的 Javascript应用程序,但是,当每次改变 view 都需要改变 document 中大量节点的时候,你会怎么做?这时就需要引入 Javascript的模版。已经有很多非常好的 Javascript templating 类库可用。我第一次使用的是 m 阅读全文
posted @ 2013-06-18 22:31 花森 阅读(3847) 评论(0) 推荐(0)
函数的arguments属性
摘要:活动对象是在进入函数上下文时刻被创建的,它通过函数的arguments属性初始化。arguments属性的值是Arguments对象:AO = { arguments: };Arguments对象是活动对象的一个属性,它包括如下属性:callee — 指向当前函数的引用length — 真正传递的参数个数properties-indexes (字符串类型的整数) 属性的值就是函数的参数值(按参数列表从左到右排列)。 properties-indexes内部元素的个数等于arguments.length. properties-indexes 的值和实际传递进来的参数之间是共享的。这个共享其实. 阅读全文
posted @ 2013-06-13 10:51 花森 阅读(327) 评论(0) 推荐(0)
js sleep
摘要:1 function sleep(n) {2 var start = new Date().getTime();3 while(true) if(new Date().getTime()-start > n) break;4 }由于js的单线程机制,这种方式会使浏览器在这段时间内无法进行任何操作。 阅读全文
posted @ 2013-06-03 12:44 花森 阅读(206) 评论(0) 推荐(0)
JS replace 回调
摘要:JS中 字符串的replace函数 可以接受回调函数 例如一般用法:var a = '1,2,3,4,5';var b = a.replace('2,3','*');console.log(b); 输出:'1,*,4,5'回调函数的用法:var a = '1,2,3,4,5';var b = a.replace('2,3',function(match){ return '*';});console.log(b);输出:'1,*,4,5' 阅读全文
posted @ 2013-04-27 13:48 花森 阅读(300) 评论(0) 推荐(0)
JS 中的call,apply,bind 和 caller, callee
摘要:1 call,apply,bind都是Function里面原生支持的方法,是JavaScript引擎内在实现的,每个Function的实例都有这三个属性。 call() 和 apply() 的用法很相似,只是调用的时候传递参数的方式有些区别: call():function.call(object, arg1,arg2...), apply():function.apply(object, [arg1,arg2,...]),apply方法传递的是一个参数数组,所以有时候直接传个 arguments 就可以。 注:这里的object就是该function里面的this,这... 阅读全文
posted @ 2013-04-27 11:18 花森 阅读(306) 评论(0) 推荐(0)
JS文档工具:JsDoc Toolkit
摘要:JsDoc Toolkit文件下载地址:https://code.google.com/p/jsdoc-toolkit/downloads/detail?name=jsdoc_toolkit-2.4.0.zip使用方法:首先进入jsrun.jar目录下,输入命令:java -jar jsrun.jar app\run.js -a -t=templates\jsdoc mycode.js输出文档默认是在当前目录中新建一个文件名为out的文件夹下,可以通过 -d=somewhere_else 进行配置 阅读全文
posted @ 2013-04-26 11:46 花森 阅读(216) 评论(0) 推荐(0)
JS 压缩工具 closure compiler
摘要:文件下载地址https://code.google.com/p/closure-compiler/downloads/list使用方法:首先进入compiler.jar这个文件所在的目录第一种:去掉注释和空格。java -jar compiler.jar --compilation_levelWHITESPACE_ONLY--js hello.js --js_output_file hello-WHITESPACE_ONLY-compiled.js第二种:去掉注释和空格,变量重命名 (一般情况下都用这个,不容易出错,而且压缩效果也不错。)java -jar compiler.jar --com 阅读全文
posted @ 2013-04-26 11:29 花森 阅读(487) 评论(0) 推荐(0)
window.location对象
摘要:location是window下的一个全局变量location = { hash: "", host: "", hostname: "", href: "", pathname: "", port: "", protocol: "", search: "", reload: funciton(){}, replace: function(){}, assign: function(){}};例如:当前的url为:“http://127. 阅读全文
posted @ 2013-04-22 14:08 花森 阅读(308) 评论(0) 推荐(0)
Fiddler如何监测VirtualBox中的网络请求
摘要:1.Fillder 设置:Tools -> Fiddler Options -> Connections -> Allow remote computers to connect2.远程电脑设置(这里指虚拟机):Internet Explorer -> Tools -> Internet Options -> Connections -> LAN Settings -> Use a proxy server for your LANAddress: 192.168.56.1Port: Fiddler listens on port 阅读全文
posted @ 2013-04-17 11:12 花森 阅读(364) 评论(0) 推荐(0)
JS中函数的声明和引用
摘要:1.直接通过function申明函数:function a(){ console.log("a");}a();//输出b;function a(){ console.log("b");}a();//输出b;可以看到,二者均输出“b”。在javascript中,直接通过function申明的函数,后面定义的会影响到前面的引用。2.通过var申明函数:var a = function(){ console.log("a");};a();//输出a;var a = function(){ console.log("b") 阅读全文
posted @ 2013-04-09 18:18 花森 阅读(389) 评论(0) 推荐(0)