随笔分类 -  Javascript

摘要:dragstart drag dragend dragenter dragover dragleave drop 阅读全文
posted @ 2013-10-09 23:04 积跬步 阅读(2256) 评论(0) 推荐(0)
摘要:译文地址 bonsaiden.github.io/JavaScript-Garden/zh/#intro.authors之前被人问到JS一些概念性的东西,感觉很模糊,可能层次比较浅,偏理论的东西实践得较少,发现一处花园, 采点小蜜。1 数字不是对象的误解 2.toString();报语法错误的原因是因为试图将 点号解析为浮点数的一部分。 (2).toString()可行的。2 hasOwnProrotype方法继承自Object.prototype 是JS中唯一一个处理属性但是不查找原型链的函数。3 函数名在函数内总是可见的 var a = function b (){b();}//见94 & 阅读全文
posted @ 2013-07-18 01:02 积跬步 阅读(503) 评论(0) 推荐(0)
摘要:正则就是一段描述匹配规则的字符串,经解析,能匹配想要的字符串。就好比受害者描述嫌疑人的体貌特征,警察会从众多体貌相近的人中进行筛选,描述得准确,可以减少排查范围,加快破案的速度。传统型NFA就是典型的例子,决定权在于你, 看你的如何描述,如何引导正则引擎去高效地匹配相应内容。大多数人看到正则晦涩难懂,只要求会用, 不去考究它的工作原理, 是很难活学活用的。自己也差不多, 很难系统地去学习正则, 非要写的时候也是参考手册写的, 这次难得有闲情雅致去啃这硬骨头, 比以前了解得稍微多了点, 在此做个小结。 个人是在JS中使用正则的,其中的正则是Perl正则的一个完整的子集,属于传统型NFA。正... 阅读全文
posted @ 2013-07-03 21:26 积跬步 阅读(270) 评论(0) 推荐(0)
摘要:当时想法很简单,自己喜欢这个网站,但是不能轮播收藏的歌曲却是一大遗憾(想要实现这功能对百度来说非常简单,只是他不想,我想和“随心”两个字有关,如今有红心频道),只能自己动手,去尝试在客户端实现这种功能。 不得不说,Firebug却是非常强大,可以让加载好的代码“自由编辑”,变成你想要的。 我观察了一下加载的JS中有JQuery,那这样子就简单多了。 最简单的例子就是,在Firebug控制台中的代码编辑器中输入$('html').empty(); 这样子就清空当前页面(如果命令行编辑器没有默认打开的话,点击右下角的红色按钮)。既然页面可以改变,尝试事件触发也是可行的(JQ中的tr 阅读全文
posted @ 2013-03-24 09:34 积跬步 阅读(573) 评论(0) 推荐(0)
摘要:只是从网上搜集的一些资料的概括, 有些完全有别于我固定的思维,比如说$('selector').find('descendant')的效率要比$('slector').children('descendant')的效率高,记得我一年前,我还坚定地说着相反的话。http://jsperf.com/jquery-context-find-and-children-selectors/6 简要地归为下面几点 1 id>tag>class>attribute||class||伪类 .class 在现代浏览器中表现不错,因 阅读全文
posted @ 2013-03-20 14:43 积跬步 阅读(259) 评论(0) 推荐(0)
摘要:JS解析过程 步骤1. 读入第一个代码段(js执行引擎并非一行一行地执行程序,而是一段一段地分析执行的) 步骤2. 做词法分析和语法分析,有错则报语法错误(比如括号不匹配等) 步骤3. 如果还有下一个代码段,则读入下一个代码段,重复步骤2 步骤4. 对【var】变量和【function】定义做“预解析“(永远不会报错的,因为只解析正确的声明) 步骤5. 执行代码段,有错则报错(比如变量未定义)javascript的作用域是词法性的,函数运行在定义他们的作用域中,而不是运行在调用他们的作用域中。this,谁调用它,就是谁。实际不存在this的值为null的情况,因为当this的值 为null的. 阅读全文
posted @ 2013-03-12 23:23 积跬步 阅读(347) 评论(0) 推荐(0)
摘要:position :static(默认值) / absolute / relative / fixed;如果不是默认值,元素就会脱离文档流,发生偏移。absolute的偏移分两种情况,主要是根据祖先元素是否有position:absolute/relative,如果有,就会根据最近的相对定位的祖先元素进行偏移,否则,就会根据文档进行偏移。relative会根据自身进行偏移,其在文档流中的位置依然会保留,即不会被填充,absolute就不一样。fixed会根据当前窗口进行偏移。但是IE6并不支持fixed。解决这个问题我暂时能想到两种办法,CSS表达式 和 JS绑定滚动事件。CSS表达式 -- 阅读全文
posted @ 2013-02-07 15:10 积跬步 阅读(266) 评论(0) 推荐(0)
摘要:在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口,self是当前窗口, opener是用open方法打开当前窗口的那个窗口。判断当前窗口是否在一个框架中:<script type="text/javascript">var b = window.top!=window.self;document.write( "当前窗口是否在一个框架中:"+b );</script> 阅读全文
posted @ 2013-02-07 14:19 积跬步 阅读(270) 评论(0) 推荐(0)
摘要:1 鼠标滚轮事件和键盘事件以及鼠标左右键没本质的区别。2 if(document.addEventListener){ document.addEventListener('DOMMouseScroll',scroll,false);//FF} window.onmousewheel=document.onmousewheel = scroll; //IE opera chrome safari像上面这样就可以给整个文档绑定滚轮事件。function scroll(e){ var direct e = window.event || e; if(e.wheelDelta... 阅读全文
posted @ 2013-01-31 08:03 积跬步 阅读(261) 评论(0) 推荐(0)
摘要:SVG事件onfocusin 在元素获得焦点(如通过指针选择)时触发动作。onfocusout 在元素失去焦点时(通常在另一元素获得焦点时)触发动作。onactivate 通过鼠标单击或按下键盘来触发动作,取决于 SVG 元素。onmousedown 在元素上按下鼠标按钮时触发动作。onmouseup 在元素上释放鼠标按钮时触发动作。onclick 在元素上单击鼠标时触发动作。onmouseover 在指针移动到元素上时触发动作。 onmousemove 指针在元素上时触发动作。onmouseout 指针从元素上移开时触发动作。onkeydown 在按住某键时触发动作。onkeypress 在 阅读全文
posted @ 2013-01-22 21:52 积跬步 阅读(490) 评论(0) 推荐(0)
摘要:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head&g 阅读全文
posted @ 2012-12-20 20:40 积跬步 阅读(1671) 评论(0) 推荐(0)
摘要:1 概述 要想在字符串中搜索出出现频率最高的字符串以及频率,需要涉及到JS中字符串以及数组的操作. 大致的思路有三种: 1:替换首字符,比较字符串前后长度之差,在进行比较。 2: 将字符串重新排列成有序字符串,在通过正则获取各个不同部分组成的数组。 3: 将字符串进行遍历统计。2 实例 假如 var str = 'asdasassdsaa'; 方法一 function getMost1(str){ var most = [], num = 0; while( str != '' ){ va... 阅读全文
posted @ 2012-12-14 16:17 积跬步 阅读(545) 评论(0) 推荐(0)
摘要:介绍函数对于任何语言都是一个核心的概念,可以封装任意多条语句。ECMAScript函数不介意传递多少函数,什么类型,因为在函数内部都是用一个数组来表示,你可以通过访问函数内部arguments对象来访问。函数重载传统意义上的重载,比如说在java中,可以为一个函数编写两个定义,只要接受的参数类型和数量(签名)不一样即可,但是ECMAScript参数实际上是一个数组来表示的,所以没有签名概念,继而也不会有纯正的重载。但是可以通过判断arugumens.length来实现重载。function test(){ if(arguments.length == 1){...}else{...}}JS中. 阅读全文
posted @ 2012-12-10 10:05 积跬步 阅读(485) 评论(0) 推荐(0)
摘要:JS中事件触发在两个阶段,捕获阶段和冒泡阶段。 //阻止事件冒泡的通用函数function stopBubble(){ if(e && e.stopPropagation){ e.stopPropagation(); }else{ window.event.cancelBubble = true;//IE }} 取消冒泡行为不能防止默认行为function stopDefault(e){ if(e && e.preventDefault){ e.pr... 阅读全文
posted @ 2012-11-21 10:42 积跬步 阅读(313) 评论(0) 推荐(0)
摘要:<div id="test" style="background-color:blue;">123</div><script type="text/javascript"> var obj = document.getElementById('test'); var items = ['click','mouseover']; for(var i = 0; i<items.length; i++){ var item = items[i]; ob 阅读全文
posted @ 2012-11-16 18:43 积跬步 阅读(253) 评论(0) 推荐(0)