Web开发网 > 站内搜索 > JavaScript 闭包
认用逗号为分隔符+展开-JavaScriptvara=[1,2,3,4,5];varb=a.join("|");//a:[1,2,3,4,5]b:"1|2|3|4|5" 数组是JavaScript 提供的一个内部对象,它是一个标准的集合,我们可以添加(push)、删除(shift)里面元素,我们还可以通过for循环遍历里面的元素,那么除了数组我们在JavaScript 里还可以有别的集合吗? 由于JavaScript 的语言特性,我们可以向通用对象动态添加和删除属性。所以Object也可以看成是JS的一种特殊的集合。下面比较一下Array和Object的特性: Array:新建:var arhttp://www.w3dev.cn/article/20110901/javascript-array-method.aspx
1.5 JavaScript 解析机制JavaScript 解 析过程可以分为编译和执行两个阶段。编译也就是我们常说的JavaScript 预处理(即预编译)。在预编译期,JavaScript 解释器将完成对 JavaScript 代码的预处理,也就是说把JavaScript 脚本代码转换成字节码。在执行期,JavaScript 解释器借助执行期环境把字节码 生成机械码,并按顺序执行,完成程序设计的任务。1.5.1 预编译JavaScript 是一种解释型语言,而不是编译型语言。所谓解释型语言,就是代码在执行时才被解释器一行行动态编译和执行,而不是在执行之前就完成编译。简单说,解释型语言就是边编译边执行,而编http://www.w3dev.cn/article/20110813/JavaScript-Resolution-mechanisms.aspx
http://www.w3dev.cn/article/20110813/javascript-chain.aspx
http://www.w3dev.cn/article/20110813/3248.aspx
有变量name。该模式的应用场景还是很多的,是不是遇 Javascript 设计模式之工厂模式Factory 工厂模式Factory:先创建一个抽象类,然后基于这个抽象类派生出子类,并在子类中创建工厂方法,从而把实例化推迟到对应的子类中进行,说实话,工厂模式在javascript 中的应用有些牵强,毕竟javascript 不像java存在硬编码带来的困搅,要学习的只是模式的思想,切忌因为模式而模式。 不妨举个偏激点的例子,为tab切换、下拉列表等组件添加定位,渐隐,延迟等效果,我们可以先为这些组件定义一个接口:+展开-JavaScript varIwidget=newInterface("http://www.w3dev.cn/article/20110807/javascript-design-mode.aspx
JavaScript $=prototypeToYuiAdapter; 这样的话,在prototype中就可以使用YUI中的get方法了。本人并不是很推崇这种模式,所以不多做阐述,事实上我觉得不到万不得以,我们根本不需要使用这种模式,作为一名负责任的设计者,我宁可做代码重构也不希望使用该模式,只能作为无奈之下的过渡型方案使用。Javascript 设计模式之门面模式,观察者模式 门面模式:这应该是所有脚本框架中都用到的,最基础的设计模式,随便找个框架中定义好的方法看看就行了,比如说YUI中的setStyle方法等等等等。在这里就不多阐述了。 观察者模式:该设计模式应用在javascript http://www.w3dev.cn/article/20110807/javascript-design-mode-2.aspx
左右,实用性大大提高。2. 能够真正的持久化到本地。cookies并没有提供永久持久化到本地的方法,它总是会过期,而DOM Storage则没有这个问题。3. 效率更高。cookies是需要发回服务器端的,而DOM Storage则不会。4. 接口更加标准,使用更加简单。相信cookie在javascript 中的操作有多麻烦大家都是非常清楚的,而DOM Storage则需跟json一样操作即可。 当然它同样也有一些缺点,比如安全和隐私方面可能控制的不是那么好,它的存储是明文的并未经过加密,可以比较容易的获取存储的信息。 无论如何,DOM Storage所具有的特性都是让人十分振奋的。但是(http://www.w3dev.cn/article/20110807/javascript-DOM-Storage-Local-Storage.aspx
constructor属性始终指向创建当前对象的构造函数。比如下面例子: +展开-JavaScript //等价于varfoo=newArray(1,56,34,12);vararr=[1,56,34,12];console.log(arr.constructor===Array);//true//等价于varfoo=newFunction();varFoo=function(){};console.log(Foo.constructor===Function);//true//由构造函数实例化一个obj对象varobj=newFoo();console.log(obj.construhttp://www.w3dev.cn/article/20110807/javascript-class-inherit-constructor.aspx
学朋友搞不清楚,既然说JavaScript是单线程运行的,那么XMLHttpRequest在连接后是否真的异步?其实请求确实是异步的,不过这请求是由浏览器新开一个线程请求(参见上图),当请求的状态变更时,如果先前已设置回调,这异步线程就产生状态变更事件放到 JavaScript 引擎的处理队列中等待处理,当任务被处理时,JavaScript 引擎始终是单线程运行回调函数,具体点即还是单线程运行 onreadystatechange所设置的函数.参考资料:http://fed.renren.com/2010/01/247http://www.phpv.net/html/1700.html来源:hthttp://www.w3dev.cn/article/20110806/brower-Kernel.aspx
http://www.w3dev.cn/article/20110806/javascript-variable-scope-chain.aspx
用 看上去,fn2()和延时程序是分两个过程再走,但其实,这是JavaScript 中的回调机制在起作用,类似于操作系统中的中断和响应 延时程序设置一个中断,然后执行fn2(),待1000毫秒时间到后,再回调执行fn1()。 同样,5中body的onload事件调用的函数,也是利用了回调机制body加载完成之后,回调执行fnOnLoad()函数。 Ajax请求中的数据处理函数也是一样的道理。 关于JavaScript 线程问题的更深入讨论,看这篇 javascript 中的线程之我见,以及infoQ上的 JavaScript 多线程编程简介。困了,再说一下回调函数吧。7. 回调函数 回调http://www.w3dev.cn/article/20110805/javascript-execution-sequence.aspx
自己试试看吧。 总之,再重复一遍之前的结论:不要在变量未定义之前使用它。 最后介绍一个我也搞不明白的问题: 在HTML文档里写上这段代码: +展开-HTMLscripttype="text/javascript "window['a']='Hi';/scriptscripttype="text/javascript "src="out.js"/scriptscripttype="text/javascript "alert(a);/script 然后在out.js里写上这句: +展开-JavaScriptif(false){vara='Hello';} 然后用FF和IE6分别运行,看看你得到什么。http://www.w3dev.cn/article/20110805/javascript-var-execute-order-scope.aspx
来说明JavaScript 代码在页面中的执行顺序。如果说,JavaScript 引擎的工作机制比较深奥是因为它属于底层行为,那么JavaScript 代码执行顺序就比较形象了,因为我们可以直观感觉到这种执行顺序,当然JavaScript 代码的执行顺序是比较复杂的,所以在深入JavaScript 语言之前也有必要对其进行剖析。1.6.1 按HTML文档流顺序执行JavaScript 代码 首先,读者应该清楚,HTML文档在浏览器中的解析过程是这样的:浏览器是按着文档流从上到下逐步解析页面结构和信息的。JavaScript 代码作为嵌入的脚本应该也算做HTML文档的组成部分,所以JavaScript 代码在http://www.w3dev.cn/article/20110805/JavaScript-function-Variable-Precompiled-order.aspx
http://www.w3dev.cn/article/20110714/javascript-document-write.aspx
兼容浏览器的解析XML文件,XML字符串的通用类库/*------------------------------------------------------------------------------ * JavaScript zXml Library * Version 1.0.2 * by Nicholas C. Zakas, http://www.nczonline.net/ * Copyright (c) 2004-2006 Nicholas C. Zakas. All Rights Reserved. * * This program is free software; yhttp://www.w3dev.cn/download/20110712/JavaScript-zXml-Library.aspx
法,对这种需求真的很无语。。。。 由于ajaxpro在客户端注册的脚本是JavaScript 的,但是JavaScript 无法调用VBScript注册的函数或者过程,只能访问VBScript注册的变量,VBScript可以调用JavaScript 注册的变量或者方法,所以VBScript使用ajaxpro的异步功能时,需要传递回调函数,如果传递的是VBScript的function函数,会出错“由于出现错误 80020102 而导致此项操作无法完成”的错误。 要解决这个问题,可以在VBScript传递JavaScript 的回调函数,而不是VBScript的回调函数。反正变量是可以相互访问的,这http://www.w3dev.cn/article/20110630/VBScript-JavaScript-function-call.aspx
过obj.value是可以获取客户端选择文件的全路径的,但是到ie7就只能获取文件名,这对于onchange事件立即显示图片会有问题,可以用js方法解决具体代码如下:+展开-HTMLhtmlheadtitlegetfileinputfullpathtitlescriptlanguage='javascript 'functiongetFullPath(obj){if(obj){//ieif(window.navigator.userAgent.indexOf("MSIE")=1){obj.select();returndocument.selection.createRange().text;}http://www.w3dev.cn/article/20110620/javascript-file-full-path.aspx
搞幽啊,showModalDialog {url:} 放在script标签之间竟然变成了JS/Exploit-DialogArg.gen特洛伊木马程序,被麦咖啡给杀掉了,O(∩_∩)O哈哈~ 如果你的电脑安装有麦咖啡,只要将下面的内容保存在文本类型的文件里面,如.txt,.aspx..jsp等等里面,就会被识别为JS/Exploit-DialogArg.gen特洛伊木马程序,然后杀掉,script标签之间的js代码全部被删除。script type="text/javascript " showModalDialog {url:}/scripthttp://www.w3dev.cn/article/20110526/JS-Exploit-DialogArg-gen-mcafee.aspx
js将JavaScript 对象转换成字符串或者将json格式的字符创转换为json对象。使用说明json.js 2007-08-05Public DomainThis file adds these methods to JavaScript :array.toJSONString()boolean.toJSONString()date.toJSONString()number.toJSONString()object.toJSONString()string.toJSONString()These methods produce a JSON text from a JavaScript vahttp://www.w3dev.cn/download/20110420/json-js-file-download.aspx
http://www.w3dev.cn/article/20110406/vbs-file-forbid-update.aspx
更新:2011-03-29增加淡入淡出效果,效果如下javascript 实现的图片卷帘切换效果,上下左右都可以切换,兼容IE,ff,chrome,和javascript 图片翻页切换效果很接近,稍微修改了一些样式和一些脚本代码。cfg配置说明w: 容器宽,不设置默认500pxh: 容器高,不设置默认为500pxdelay: 触发器间隔,默认10msstep: 切换时每次的移动的距离,默认20pxchrDelay:自动播放间隔时间,如果不传递这个值,将不会自动播放topLeft: 被移动的层距离要显示的层的距离,默认10pxzIndex: 层垂直显示循序,默认100data: 数组,对应容器的内容http://www.w3dev.cn/download/20110328/javascript-photo-roll-up-effect.aspx
http://www.w3dev.cn/article/20110325/IE-display-javascript-error.aspx
javascript 实现的图片翻页切换效果,上下左右都可以切换,兼容IE,ff,chrome,效果如下cfg配置说明w: 容器宽,不设置默认500pxh: 容器高,不设置默认为500pxdelay: 触发器间隔,默认10msstep: 切换时每次的移动的距离,默认20pxchrDelay:自动播放间隔时间,如果不传递这个值,将不会自动播放topLeft: 被移动的层距离要显示的层的距离,默认10pxzIndex: 层垂直显示循序,默认100dir: 切换方向,从左边切换还是右边,从上还是下,默认左边到右边1,右边到左边为2,上到下3,下到上4,注意右边的时候水平导航条可能会出现data: 数组http://www.w3dev.cn/download/20110322/photo-turn-page.aspx
由于要插入客户广告,所以需要扩展fckeditor的自定义功能,具体原理可以参考这篇文章。扩展Fckeditor工具条--添加自定义功能按钮。不过修改的是源代码,然后再重新打包压缩。我是懒得再打包 了,而且文章里面也没打包成功。 所以干脆直接修改打包压缩过的js文件fckeditorcode_gecko.js【非IE浏览器,如果不需要兼容非IE浏览器就不需要修改这个文件了】,fckeditorcode_ie.js【For IE】算了,原理也是差不多的,只是fckeditorcode_gecko.js,fckeditorcode_ie.js代码压缩过,看起来比较吃力,不过知道原理以后,添加http://www.w3dev.cn/article/20110128/update-fckeditor-fckeditorcode-gecko-file-add-selfdefine-toolbutton.aspx
http://www.w3dev.cn/article/20110126/fckeditor-config-params-introduce.aspx
http://www.w3dev.cn/download/20110125/javascript-3d-cube-effect.aspx
Javascript 获取生肖属相和星座源代码如下+展开-HTMLhtmlheadscriptlanguage="javaScript "functionf_GetAnimal(ld_year){varla_Animals=newArray("鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪");returnla_Animals[(ld_year-4)%12];}functionf_GetAstro(ld_month,ld_day){vars="魔羯水瓶双鱼牧羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯",arr=[20,19,21,21,21,22,23,23http://www.w3dev.cn/article/20110107/javascript-shengxiaoshuxiang-xingzuo.aspx
http://www.w3dev.cn/article/20101216/freemarker-javascript-template-EasyTemplate.aspx
JavaScript 实现的3D球面标签云效果使用说明:一般需要修改的,应该是3D球面的大小,也就是半径,修改了大小,就可以随意放进自己页面的任何地方。半径大小修改:下载后,打开 miaov.js 文件,第一行:var radius = 120; 这就是半径大小值了。文字的修改在 miaov_demo.html 文件中,可以任意添加关键词的个数;如果希望修改文字颜色、鼠标经过的样式,可以打开 miaov_style.css 文件,修改相关的样式即可。效果原理:制作这个效果需要重新回顾一下高中的数学知识:球坐标系例如:r∈[0,+∞),φ∈[0, 2π],θ∈[0, π] .r = 常数,即以原点http://www.w3dev.cn/download/20101023/javascript-3d-cloud-tag.aspx
在javascript 里,每个function都有一个prototype属性,这个属性的用途是实现继承机制。必如下面定义的+展开-JavaScriptfunction class1:function class1(){} class1.prototype={a:10,b:100};则class1的每个实例都会从prototype继承a和b这两个属性。 同时,每个对象都会有一个内部的属性_proto_(不同的javascript 虚拟机实现用的名字可能不同),这个属性对js开发人员不可见,只在虚拟机内部使用。每当创建一个对象的时候,这个对象的_proto_就会被赋值为这个对象的构造函数的phttp://www.w3dev.cn/article/20101013/2900.aspx
首页 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] 下一页 尾页 9/14页,每页显示30条,共393条相关记录