摘要:
文章首发:http://www.cnblogs.com/sprying/p/3573456.html使用this的几种场合1. 执行函数时,判断函数是对象方法还是一个单独的函数?单独的函数this===window;对象方法,this == 对象。function UseThis(){console.log(this === window);this.instancePro = 1;}UseThis.objPro = 2;UseThis.objMethod = function(){console.log(this.objPro);}UseThis();//true 不管嵌套多深,执行函数时, 阅读全文
摘要:
什么是闭包文章首发:http://www.cnblogs.com/sprying/p/3329199.html最近更新: 2014年02月28日14:39:58 (最新地址)一、一个问题例一:假设要写动态生成HTML的函数,HTML有一部分是固定的。方案①function buildHtml(args) { var template = ['', '', '', '', '']; template[1] = args[0]; template[3] = args[1]; return template.join(& 阅读全文
摘要:
Js中的变量声明的作用域是以函数为单位,所以我们经常见到避免全局变量污染的方法是(function(){ // ...})();在函数内部,有var和没var声明的变量是不一样的。有var声明的是局部变量,没var的,声明的全局变量,所以可以借此向外暴露接口东东。 在全局作用域内声明变量时,有var 和没var看起来都一样,我们知道,声明的全局变量,就是window的属性,究竟是否一样,我们通过ECMAScrpit5提供的属性的特性查询方法,来发现之间的区别。var fff = 2;window.ffa = 3;ffb = 4;this.ffc = 4;var ffftx = Object.g 阅读全文
摘要:
最近更新:2014年03月02日09:54:44 首发链接:http://www.cnblogs.com/sprying/p/3194899.html 一、事件处理程序 1、HTML事件处理程序 如果当前绑定事件的元素是表单的一个输入元素;则this隐性指代可描述如下 事件处理程序是在元素的作用域中 阅读全文
摘要:
JavaScript函数 1. 函数的定义 函数名称只能包含字母、数字、下划线或$,且不能以数字开头。定义时可用函数定义表达式或者函数声明语句。 var f = function fact(x){} 函数定义表达式包含名称,名称将作为函数的局部变量,在函数内部使用,代指函数。 函数声明语句不是真正的语句,不能出现在循环、条件、try/catch/finally以及with语句中;声明语句置于在不会执行到的位置,仍可被整个作用域可访问,可在被定义代码之前使用。定义表达式的变量声明被提前了,但是对变量赋值不会提前,函数在被定义之前无法使用,否则调用时会出现错误:"TypeError: . 阅读全文
摘要:
想解决内存泄露问题,必须知道什么是内存泄露,什么情况下出现内存泄露,才能在遇到问题时,逐个排除。这里只讨论那些不经意间的内存泄露。一、什么是内存泄露内存泄露是指一块被分配的内存既不能使用,又不能回收,直到浏览器进程结束。在C++中,因为是手动管理内存,内存泄露是经常出现的事情。而现在流行的C#和Java等语言采用了自动垃圾回收方法管理内存,正常使用的情况下几乎不会发生内存泄露。浏览器中也是采用自动垃圾回收方法管理内存,但由于浏览器垃圾回收方法有bug,会产生内存泄露。二、内存泄露的几种情况1、当页面中元素被移除或替换时,若元素绑定的事件仍没被移除,在IE中不会作出恰当处理,此时要先手工移除事件 阅读全文
摘要:
继前篇谈谈JavaScrip的异步实现,我们知道JavaScript引擎是单线程的,所有的js的代码都将在这个单线程中执行。像浏览器事件、计时器等异步只是个幌子,异步时js并没有多个线程在执行,而是都排列在一个待执行队伍中。setTimeout的使用方法setTimeout(function(){},time)--可以正确执行。setTimeout("js语句",time)--可以正确执行。 js语句可以是多条语句。setTimeout(fun,time)只引用函数名字,也可运行,但是要注意的是:如果fun是某个对象的方法,则fun函数内的this此时被当做window。e 阅读全文
摘要:
我们经常说JS是单线程的,比如node.js研讨会上大家都说JS的特色之一是单线程的,这样使JS更简单明了,可是大家真的理解所谓JS的单线程机制吗?单线程时,基于事件的异步机制又该当如何,这些知识在《JavaScript权威指南》并没有介绍,我也一直困惑了,直到看到一篇外文,才有了些眉目,这里与大家... 阅读全文
摘要:
由于window.onload事件需要在页面所有内容(包括图片等)加载完后,才执行,但往往我们更希望在 DOM 一加载完就执行脚本。其实在现在大部分主流浏览器上(Firefox 3+,Opera 9+,Safari 3+,Chrome 2+)都提供了这一事件方法:addDOMLoadEvent。document.addEventListener("DOMContentLoaded", init,false);dom渲染完成,doScroll方法从不能执行到可执行,这样我们在IE中,利用doScroll()方法来模拟 addDOMLoadEvent 事件,现在主流的 Java 阅读全文
摘要:
一、开始 1、简单使用 编辑器搜索时,勾选上正则,可以搜索出满足特定条件的结果。 在webstorm中,\bfunction\b这样可以搜索出function单词。做搜索功能时 做搜索功能时 var reg = new RegExp(inpStr); apps.forEach(function (v 阅读全文