JavaScript精粹读书笔记(1)

JavaScript中鸡肋部分的比重超出了预料。在短到令人吃惊的时间里,它从不存在发展到全球采用。它从来没有在实验室里被试用和打磨。当它还非常粗糙时,它就被直接集成到网景的Navigator 2浏览器中。随着JavaTM的小应用程序(Java applets)的失败,JavaScript变成了默认的“网页语言”。作为一门编程语言,JavaScript的流行几乎完全不受它的质量的影响。好在JavaScript有一些非常精华的部分。JavaScript最本质的部分被深深地隐藏着,以至于多年来对它的主流观点是:JavaScript就是一个丑陋的、没用的玩具。本书的目的就是要揭示JavaScript
http://www.w3dev.cn/article/20100204/1376.aspx

JavaScript精粹读书笔记(2)

nfinity表示所有大于1.79769313486231570e+308的值。数字拥有方法(参见第8章)。JavaScript有一个对象Math,它包含一套作用于数字的方法。例如,可以用Math.floor(number)方法将一个数字转换成一个整数。2.4 字符串字符串字面量可以被包围在单引号或双引号中,它可能包含0个或多个字符。\是转义字符。JavaScript在被创建的时候,Unicode是一个16位的字符集,所以JavaScript中的所有字符都是16位的。JavaScript没有字符类型。要表示一个字符,只须创建仅包含一个字符的字符串即可。转义字符允许把那些正常情况下不被允许的字符
http://www.w3dev.cn/article/20100204/1377.aspx

JavaScript精粹读书笔记(3)

JavaScript的简单类型包括数字、字符串、布尔值(true和false)、null值和undefined值。其他所有的值都是对象。数字、字符串和布尔值“貌似”对象,因为它们拥有方法,但它们是不可变的。JavaScript中的对象是可变的键-值集合(keyed collections)。在JavaScript中,数组是对象,函数是对象,正则表达式是对象,当然,对象自然也是对象。对象是属性的容器,其中每个属性都拥有名字和值。属性的名字可以是包括空字符串在内的任意字符串。属性值可以是除undefined值之外的任何值。JavaScript中的对象是无类型(默然说话:或者说JavaScript
http://www.w3dev.cn/article/20100204/1378.aspx

JavaScript精粹读书笔记(4)

第4章 函数JavaScript中最好的特性就是它对函数的实现。它几乎无所不能。但是,想必你也能预料到,函数在JavaScript里也并非万能药。函数包含一组语句,它们是JavaScript的基础模块单元,用于代码复用、信息隐藏和组合调用。函数用于指定对象的行为。一般来说,所谓编程就是将一组需求分解成一组函数与数据结构的技能。4.1 函数对象在JavaScript中函数就是对象。对象是“名:值”对的集合并拥有一个连到原型对象的隐藏连接。对象定义产生的对象连接到Object.prototype。函数对象连接到Function.prototype(该原型对象本身连接到Object.prot
http://www.w3dev.cn/article/20100204/1379.aspx

JavaScript精粹(4-2)

放掉。这是件好事。糟糕的是,尽管代码块的语法似乎表现出它支持块级作用域,但实际上JavaScript并不支持。这个混淆之处可能成为错误之源。JavaScript确实有函数作用域。定义在函数中的参数和变量在函数外部是不可见的。但在一个函数中的任何位置定义的变量在该函数中的任何地方都可见(默然说话:我的天呀,真是一个灾难。。。。)。很多现代语言都推荐尽可能迟地声明变量。而用在JavaScript上却会成为糟糕的建议,因为它缺少块级作用域。所以,最好的做法是在函数体的顶部声明函数中可能用到的所有变量。4.10 只有函数作用域的好处是内部函数可以访问定义它们的外部函数的参数和变量(除了thi
http://www.w3dev.cn/article/20100204/1380.aspx

JavaScript精粹读书笔记(5)

是一件很好的事情,因为类型转换时会丢失类型系统在安全上的好处。JavaScript是一门弱类型语言,从不需要类型转换。对象的起源是无关紧要的。对于一个对象来说重要的是它能做什么,而不是它从哪里来。JavaScript提供了一套更为丰富的代码重用模式。它可以模拟那些基于类的模式,同时它也可以支持其他更具表现力的模式。在JavaScript中可能的继承模式有很多。在本章中,我们将研究几种最为直接的模式。当然还有更多更为复杂的结构,但保持它的简单通常是最好的。在基于类的语言中,对象 是类实例,并且类可以从另一个类继承。JavaScript是一门基于原型的语言,这意味着对象直接从其他对象继承。5.1
http://www.w3dev.cn/article/20100204/1381.aspx

JavaScript精粹读书笔记(6)

开-JavaScript//给data数组添加一个total方法data.total=function(){returnthis.reduce(add,0);}因为字符串’total’不是整数,所以给数组增加一个total不会改变它的长度。6.7 维度JavaScript的数组通常不会初始化。如果你用[]得到一个新数组,它将是空的。如果你访问一个不存在的元素,则将得到undefined。如果你了解这人问题,或者你在尝试获取每个元素之前都很有预见性地设置了它,那么万事大吉。但如果你实现的算法是假设每个元素都从一个已知的值开始(例如0),那么你必须自己准备好这人数组。JavaScript应该
http://www.w3dev.cn/article/20100204/1382.aspx

JavaScript精粹读书笔记(7)

第7章 正则表达式JavaScript的许多特性都借鉴自其他语言。语法借鉴自Java,函数借鉴自Scheme,原型继承借鉴自Self。而JavaScript的正则表达式特性则借鉴自Perl。正则表达式起源于对形式语言的数学研究。在JavaScript中,正则表达式的语法是对Perl版的改进和发展,它非常接近源自贝尔实验室的原始形式。正则表达式的书写规则出奇的复杂,因为它们把某些位置上的字符串解析为运算符,而把仅在位置上稍微不同的相同字符串又当作字符串本身。比不易书写更糟糕的是,这使得正则表达式不仅难以阅读,而且修改时充满危险。要想正确地阅读它们,就必须对正则表达式的整个复杂性有相当彻底的理解。
http://www.w3dev.cn/article/20100204/1383.aspx

Javascript跨域和Ajax跨域解决方案

////////////////2. 目标站的ajax.htmlHtml:+展开 -HTMLhtmlheadscripttype='text/javascript'document.domain='somedomain.com';/scriptscripttype='text/javascript'scr='http://bbs.somedomain.com/ajaxMethod.js'/scriptscripttype='text/javascript'varwebreq=newAjax();/script/headbody/body/html------------------------
http://www.w3dev.cn/article/20100120/1299.aspx

javascript解析xml文件函数列表

节点node.hasChildNodes()************************************************************************************************************************下面为javascript操作xml+展开-JavaScriptvardoc=newActiveXObject("Msxml2.DOMDocument");//ie5.5+,CreateObject("Microsoft.XMLDOM")//加载文档//doc.load("b.xml");//创建文件头varp=d
http://www.w3dev.cn/article/20100119/1289.aspx

javascript日期常用函数

+展开-JavaScript//判断是否是日期//note:不能准确判断闰年的2月日期,需用js另外处理functionisDate(str){varpatt=/^(((([1-9])|(0[1-9])|(1[012]))[-./]((0?\d)|([12]\d)|(3[01]))[-./](19|20)\d{2})|((19|20)\d{2}[-./](([1-9])|(0[1-9])|(1[012]))[-./]((0?\d)|([12]\d)|(3[01]))))$/;returnpatt.test(str);}//返回系统日期时间//参考http://blog.csdn.net/avo
http://www.w3dev.cn/article/20100119/1291.aspx

javascript操作JSON

JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。 JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。JSON的规则很简单: 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。具体细节参考http://www.json.org/json-zh.html举个简单的例子:js 代码+展开-JavaScriptfunctionshow
http://www.w3dev.cn/article/20100119/1292.aspx

JavaScript操作XML (一)

JavaScript操作XML是通过XML DOM来完成的。那么什么是XML DOM呢?XML DOM 是:用于 XML 的标准对象模型 用于 XML 的标准编程接口 中立于平台和语言 W3C 的标准 XML DOM 定义了所有XML 元素的对象和属性,以及访问它们的方法(接口)。也就是说:XML DOM 是用于查询、添加、修改、删除XML 元素的标准。 在继续之前,我们先来了解一下XML的定义。请看下面的 XML 文件 (books.xml):?xml version="1.0" encoding="utf-8"?bookstorebook category="COOKING"title l
http://www.w3dev.cn/article/20100119/1293.aspx

JavaScript操作XML(二)

上一篇介绍了XML的结构以及节点之间的关系这一篇介绍浏览器内建的XML解析器以及JavaScript是如何加载XML的。大多数浏览器都有读取和操作 XML 的内建 XML 解析器。解析器(XML Parser)把 XML 转换为 JavaScript 可访问的对象。解析器把 XML 载入内存,然后把它转换为可通过 JavaScript 访问的 XML DOM 对象。微软的 XML 解析器与其他浏览器中的解析器之间,存在一些差异。微软的解析器支持 XML 文件和 XML 字符串(文本)的加载,而其他浏览器使用单独的解析器。不过,所有的解析器都包含遍历 XML 树、访问插入及删除节点(元素)及其属
http://www.w3dev.cn/article/20100119/1294.aspx

JavaScript操作XML(三)

上一篇介绍了XML如何加载到JavaScript解析器。这一篇介绍加载到解析器后,JavaScript是如何访问节点的。在详细介绍如何使用上面的方法前,我们先来了解下节点的主要属性。documentElement 属性:XML 文档的根节点。nodeName 属性:节点的名称(只读)。nodeValue 属性:节点的值。nodeType 属性:节点的类型。childNodes 属性:返回子节点集合。parentNode 属性:返回父节点。firstChild 属性:返回第一个子节点。lastChild 属性:返回最后一个子节点。nextSibling 属性:返回下一个兄弟(同级)节点。pre
http://www.w3dev.cn/article/20100119/1295.aspx

JavaScript操作XML (四)

上一篇介绍了JavaScript主要是通过什么方法来访问节点的。这一篇介绍JavaScript是如何操作节点的(包括增、删、改、查)。通过前面的介绍,我们知道XML文档中,主要是元素节点、属性节点和文本节点。下面详细介绍JavaScript是如何操作它们的。元素节点:查找:上一篇已介绍。主要是通过方法getElementsByTagName来查找定位。例子://输出所有的titlesvar t=xmlDoc.getElementsByTagName("title");for (i=0;it.length;i++){document.write(t[i].childNodes[0].nodeVa
http://www.w3dev.cn/article/20100119/1296.aspx

13个不错的Javascript和CSS的菜单

以前发布过两篇文章——“30种时尚的CSS网站导航条”和“20个优秀的Javascript导航技术”,今天向大家介绍一下,13个不错的Javascript和CSS的菜单。1) 性感的滑动型菜单演示: Mootols Version演示:Script.aculo.usVersion2) FastFind 菜单 右键菜单,还可以被拖来拖去。使用 jQuery 。 演示:FastFind Menu3) Webber 2.0 Dock菜单 演示: Webber 2.0 Dock Menu4) Phatfusion- 图片菜单 使用了onClick 事件来 open和 close 菜单项。 演示:Pha
http://www.w3dev.cn/article/20091222/1214.aspx

20个优秀的Javascript导航技术

这里,我们将向大家介绍一下使用Javascript设计的WEB页面的导航条,更多导航参考30种时尚的CSS网站导航条13个不错的Javascript和CSS的菜单因为Javascript可以处理和用户的交互,所以使用Javascript会有更好的用户体验。在这篇文章里,你可以看到一些令人恐怖和独一无二的Javascript制作的导航条。1. MenuMatic这个示例主要是展示了一个排序的纵向或横向的下拉式菜单导航条。演示页面2. JQuery制作的动画按钮菜单当鼠标经过的时候,按钮会有下压的感觉。演示页面3. jQuery 卷帘门特效导航条Gaya Kessler 设计了这样一种卷帘门式导
http://www.w3dev.cn/article/20091222/1215.aspx

JavaScript 图片预览效果

本身已经有一个dispose方法来销毁程序;_preload预载图片对象:先清除它的onload/onerror事件再移除元素;file和img属性:直接设为null,由于不是程序创建的元素,留给使用者来移除。说到移除元素,顺便说一下超空间(DOM hyperspace),这是从“ppk谈javascript”中看到的。大概指的是当元素不在dom里面,而js又有关联时,元素并不会消失,而是保存在一个称为“超空间”的地方。详细参考书的DOM 超空间部分。书中还说可以根据是否有parentNode来判断元素是否在超空间,但测试以下代码:Code highlighting produced by A
http://www.w3dev.cn/article/20091222/1217.aspx

JavaScript 滑动条效果

滑动。1. JavaScript 图片切割效果 2. JavaScript 图片切换展示效果 3. JavaScript 图片变换效果(ie only) 4. JavaScript 仿LightBox内容显示效果 5. 仿163网盘无刷新文件上传系统 6. JavaScript 图片滑动展示效果 7. JavaScript 自定义多级联动浮动菜单 8. JavaScript 渐变效果 9. 图片切割系统 10. JavaScript 拖放效果 11. JavaScript 拖拉缩放效果 12. JavaScript 无缝上下左右滚动加定高定宽停顿效果 13. JavaScript Table
http://www.w3dev.cn/article/20091222/1222.aspx

JavaScript Tween算法及缓动效果

(7.5625*(t-=(2.25/2.75))*t+.9375)+b;}else{returnc*(7.5625*(t-=(2.625/2.75))*t+.984375)+b;}},easeInOut:function(t,b,c,d){if(td/2)returnTween.Bounce.easeIn(t*2,0,c,d)*.5+b;elsereturnTween.Bounce.easeOut(t*2-d,0,c,d)*.5+c*.5+b;}}}完整实例下载应用实例:JavaScript 图片滑动切换效果转载请注明出处:http://www.cnblogs.com/cloudgamer/
http://www.w3dev.cn/article/20091222/1223.aspx

javascript获取服务端控件值的两种办法

ttp://www.shuwo.net"size="40"buttononclick="alert(document.form1.getinfo.value)"CHCK/button/form/body/html第二种在HEML中把这个加上 +展开-HTMLscriptlanguage="javascript"functiona(){vartb1=document.getElementById("TextBox1");vartb2=document.getElementById("TextBox2");vara;a=tb1.value;tb2.value=a;}/script在后台LOAD事件
http://www.w3dev.cn/article/20091118/1147.aspx

执行ajax动态返回的js代码块

back返回的函数中调用: +展开-JavaScript//把不同的script标签替换为一样的html=html.replace(/scripttype=\'text\/javascript\'>/g,"script>").replace(/scripttype=\"text\/javascript\">/g,"script>");AnalyzeHtml(html,"script>","/s"+"cript>");本来以为事情告一段落,结果新的问题又出来了。通过eval执行的脚本倒是运行了,但是其中定义类的脚本却丢失了,比如:+展开-JavaScript//丢失vara="变量";//丢失
http://www.w3dev.cn/article/20090822/859.aspx

发送自定义IP(测试中:第二版)

teToUint16(buffer);myip_hdr.checksum=checksum(myarray2,myarray2.Length);ipbytes=StructToBytes(myip_hdr);ipbytes.CopyTo(buffer,0);//buffer即为要发送的伪IP//发送ipIPEndPointremoEnd=newIPEndPoint(IPAddress.Parse(t_remoIP.Text),Convert.ToInt16(t_remoPort.Text));try{s.SendTo(buffer,remoEnd);MessageBox.Show("发送成
http://www.w3dev.cn/article/20090814/785.aspx