代码改变世界

随笔分类 -  web---JavaScript

不要将 Array、Object 等类型指定给 prototype

2013-10-07 15:06 by youxin, 241 阅读, 收藏, 编辑
摘要: 在 JavaScript 中,注意不要将 Array、Object 等类型指定给 prototype,除非您的应用需要那么做。先观察如下代码:functionFoo(){}Foo.prototype.n = 123;Foo.prototype.date = { year:2009, month:6, day:25 };varf1 =newFoo();varf2 =newFoo();f1.n = 456;f1.date.day = 24;alert(f2.n);// 结果为 123alert(f2.date.day);f2.date.day 结果是多少?25?错,应该是 24。这是由于 Arra 阅读全文

javascript线程解释(setTimeout,setInterval你不知道的事)

2013-10-07 03:06 by youxin, 8141 阅读, 收藏, 编辑
摘要: john resig写的一篇文章:原文地址:http://ejohn.org/blog/how-javascript-timers-work/作为入门者来说,了解JavaScript中timer的工作方式是很重要的。通常它们的表现行为并不是那么地直观,而这是因为它们都处在一个单一线程中。让我们先来看一看三个用来创建以及操作timer的函数。var id = setTimeout(fn, delay);- 初始化一个单一的timer,这个timer将会在一定延时后去调用指定的函数。这个函数(setTimeout)将返回一个唯一的ID,我们可以通过这个ID来取消timer。var id = set 阅读全文

JS 中没有按地址(引用)传递,只有按值传递

2013-10-07 01:39 by youxin, 16020 阅读, 收藏, 编辑
摘要: 很多人,包括我,受书本知识消化不彻底的影响,认为 JS 中参数有两种传递方式:数字、字符串等按值传递;数组、对象等按地址(引用)传递。对此种观点,我们要谨慎。var v1 = []var v2 = {};var v3 = {};function foo(v1, v2, v3){ v1 = [1]; v2 = [2]; v3 = {a:3}}foo(v1, v2, v3);alert(v1); // 空白alert(v2); // [object Object]alert(v3.a); // undefined由此可见:v1、v2、v3 都没有被改变,v1 仍然是零个元素的数组... 阅读全文

javascript 误用this指针 的情况

2013-10-06 23:36 by youxin, 537 阅读, 收藏, 编辑
摘要: 理解了this指针后,我们再来看看一些很容易误用this指针的情况。示例1——内联式绑定Dom元素的事件处理函数 function sayHi(){ alert("当前点击的元素是" + this.tagName); } script>在此例代码中,我们绑定了button的点击事件,期望在弹出的对话框中打印出点击元素的标签名。但运行结果却是:也就是this指针并不是指向input元素。这是因为当使用内联式绑定Dom元素的事件处理函数时,实际上相当于执行了以下代码: document.getElementById("btnTest").onclick 阅读全文

转:onkeypress、onkeydown、onkeyup 区别

2013-10-06 21:57 by youxin, 865 阅读, 收藏, 编辑
摘要: 在使用JavaScript做WEB键盘事件侦听捕获时,主要采用onkeypress、onkeydown、onkeyup三个事件进行出来。该三个事件的执行顺序如下:onkeydown -> onkeypress ->onkeyup。在一般情况下,采用三种键盘事件均可对键盘输入进行有效的响应。当在实际使用中,会发现这几者有些不同的差别。 onkeypress事件不能对系统功能键(例如:后退、删除等,其中对中文输入法不能有效响应)进行正常的响应,onkeydown和onkeyup均可以对系统功能键进行有效的拦截,但事件截获的位置不同,可以根据具体的情况选择不同的键盘事件。 由于onkey 阅读全文

Javascript 装载和执行

2013-10-01 03:50 by youxin, 144 阅读, 收藏, 编辑
摘要: http://coolshell.cn/articles/9749.htmlhttp://www.cnblogs.com/cheche/archive/2011/03/06/1971955.html 阅读全文

转:web前端面试题合集 (Javascript相关)(js异步加载详解)

2013-09-29 18:27 by youxin, 804 阅读, 收藏, 编辑
摘要: 1. HTTP协议的状态消息都有哪些?1**:请求收到,继续处理2**:操作成功收到,分析、接受3**:完成此请求必须进一步处理4**:请求包含一个错误语法或不能完成5**:服务器执行一个完全有效请求失败2. AJAX跨域的解决办法?1、document.domain+iframe的设置 对于主域相同而子域不同的例子,可以通过设置document.domain的办法来解决。 具体的做法是可以在http://www.a.com/a.html和http://script.a.com/b.html两个文件中分别加上 document.domain = a.com;然后通过a.html文件中创建一个. 阅读全文

[转贴]JavaScript中Array(数组)的属性和方法

2013-09-27 16:30 by youxin, 535 阅读, 收藏, 编辑
摘要: 数组有四种定义的方式使用构造函数:var a = new Array();var b = new Array(8);var c = new Array("first", "second", "third");或者数组直接量:var d = ["first", "second", "third"];属性Array只有一个属性,就是length,length表示的是数组所占内存空间的数目,而不仅仅是数组中元素的个数,在刚才定义的数组中,b.length的值为8。数组的length 阅读全文

javascript集合求交集

2013-09-27 16:08 by youxin, 2213 阅读, 收藏, 编辑
摘要: 两集合求交集思路:1. 每一次从B数组中取一值,然后在A数组里逐个比较,如果有相等的,则保存。该算法复杂度为 O(MN). M, N 分别为数组 A B 的长度。2. 因为A B 都排过序,所以,每一次从B数组取值后,可以利用二分查找看是否在数组A里有B所对应的值,这样复杂度变成了O(N lg M)... 阅读全文

常用的Javascript设计模式

2013-09-26 00:27 by youxin, 179 阅读, 收藏, 编辑
摘要: 前往:http://blog.jobbole.com/29454/ 阅读全文

polling轮询和comet

2013-08-10 12:38 by youxin, 1937 阅读, 收藏, 编辑
摘要: comet:(原意:彗星)Cometis aweb applicationmodel in which a long-held(held:保留)HTTPrequest allows aweb servertopushdata to abrowser, without the browser expl... 阅读全文

转:js包装DOM对象

2013-07-30 23:02 by youxin, 405 阅读, 收藏, 编辑
摘要: 我们在日常的应用中,使用Javascript大多数时间都是在用DOM ,以致于很多人都有一种看法就是DOM==JS,虽然这种看法是错误的,但是也可以说明DOM的重要性。这就导致了我们在写JS的时候,首先会考虑的是这个方法在页面上会产生什么样的变化之类的问题,用架构的思想来说:我们可以说这样把用户界面和业务逻辑掺杂到了一起。我们也知道,这样对于一个稍大的项目来说,满脑袋都是DIV,都是CSS是做不好东西的。那么怎么办?我们还是用对象的角度,从逻辑上来考虑这个问题,让我们忘记那些DOM对象。我们来举一个例子吧:对于某个回复,可能是回复本贴,也可能是举报。那么暂时让我们忘记那些DOM对象,让我们想清 阅读全文

转:js包装DOM对象

2013-07-28 08:03 by youxin, 355 阅读, 收藏, 编辑
摘要: 我们在日常的应用中,使用Javascript大多数时间都是在用DOM ,以致于很多人都有一种看法就是DOM==JS,虽然这种看法是错误的,但是也可以说明DOM的重要性。这就导致了我们在写JS的时候,首先会考虑的是这个方法在页面上会产生什么样的变化之类的问题,用架构的思想来说:我们可以说这样把用户界面和业务逻辑掺杂到了一起。我们也知道,这样对于一个稍大的项目来说,满脑袋都是DIV,都是CSS是做不好东西的。那么怎么办?我们还是用对象的角度,从逻辑上来考虑这个问题,让我们忘记那些DOM对象。我们来举一个例子吧:对于某个回复,可能是回复本贴,也可能是举报。那么暂时让我们忘记那些DOM对象,让我们想清 阅读全文

转:Javascript继承机制的设计思想

2013-07-27 11:05 by youxin, 269 阅读, 收藏, 编辑
摘要: 我一直很难理解Javascript语言的继承机制。它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instance)的区分,全靠一种很奇特的"原型链"(prototype chain)模式,来实现继承。我花了很多时间,学习这个部分,还做了很多笔记。但是都属于强行记忆,无法从根本上理解。直到昨天,我读到法国程序员Vjeux的解释,才恍然大悟,完全明白了Javascript为什么这样设计。下面,我尝试用自己的语言,来解释它的设计思想。彻底说明白prototype对象到底是怎么回 阅读全文

javascript prototype __proto__区别

2013-07-27 10:49 by youxin, 1919 阅读, 收藏, 编辑
摘要: An Object's__proto__property references the same object as its internal[[Prototype]](often referred to as "the prototype"), which may be an object or, as in the default case ofObject.prototype.__proto__,null. This property is an abstraction error, because a property with the same name, 阅读全文

js Function 加不加new 详解

2013-07-27 09:58 by youxin, 1160 阅读, 收藏, 编辑
摘要: 以下来自:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/newThenewoperator creates an instance of a user-defined object type or of one of the built-in object types that has a constructor function.new constructor[([arguments])]ParametersconstructorA function that specifies the 阅读全文

转:javascript面向对象编程

2013-07-27 08:47 by youxin, 287 阅读, 收藏, 编辑
摘要: 作者:阮一峰日期:2010年5月17日学习Javascript,最难的地方是什么?我觉得,Object(对象)最难。因为Javascript的Object模型很独特,和其他语言都不一样,初学者不容易掌握。下面就是我的学习笔记,希望对大家学习这个部分有所帮助。我主要参考了以下两本书籍:《面向对象的Javascript》(Object-Oriented JavaScript)《Javascript高级程序设计(第二版)》(Professional JavaScript for Web Developers, 2nd Edition)它们都是非常优秀的Javascript读物,推荐阅读。笔记分成三部 阅读全文

javascript语言精粹:继承

2013-07-27 07:06 by youxin, 365 阅读, 收藏, 编辑
摘要: 继承提供了2个有用的任务:1.代码重用2.引入了一套类型系统的规范,因为程序员无需编写显示类型转换的代码,他们的工作量将大大减轻。这是一件很好的事情,应为类型转换会丧失类型系统在安全上的优势。在基于类的语言中,对象是类的实例,并且类可以从另一个类继承,javascript是一门基于原型的语言,这意味着对象直接可以从其他对象继承。伪类:JavaScript is conflicted about its prototypal nature. Its prototype mechanism isobscured by some complicated syntactic business that 阅读全文

转:Javascript的10个设计缺陷

2013-07-25 13:28 by youxin, 351 阅读, 收藏, 编辑
摘要: 作者:阮一峰日期:2011年6月30日前几篇文章,我经常说Javascript的设计不够严谨,有很多失误。今天的这一篇,前半部分就谈为什么会这样,后半部分将列举Javascript的10个设计缺陷。我参考的文献主要是Douglas Crockford的专著《Javascript语言精粹》(JavaScript: The Good Parts)和Fredrik Holmström的文章《我对Javascript的抱怨》(My gripes with Javascript)。一、为什么Javascript有设计缺陷?这里有三个客观原因,导致Javascript的设计不够完善。1. 设计阶 阅读全文

javascript去掉字符串空格——转

2013-05-26 23:09 by youxin, 220 阅读, 收藏, 编辑
摘要: 第一种去掉 空格的方法//去掉字串左边的空格function lTrim(str){if (str.charAt(0) == " "){//如果字串左边第一个字符为空格str = str.slice(1);//将空格从字串中去掉//这一句也可改成 str =str.substring(1, str.length);str = lTrim(str); //递归调用}return str;}//去掉字串右边的空格function rTrim(str){var iLength;iLength = str.length;if (str.charAt(iLength - 1) == 阅读全文
上一页 1 2 3 4 5 6 7 ··· 10 下一页
点击右上角即可分享
微信分享提示