`
arm25arm
  • 浏览: 17990 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

Javascript学习待续

 
阅读更多

Javascript学习待续
2009年08月01日
  javascript学习(一)
  前言
  1.javascript是一种解释语言,不用事先编译。
  2.javascipt是采用弱类型的语言,变量不用在使用前定义,可以即用即定义,它是动态类型语言。
  3.javascript也是一种面向对象的语言。但是它没有‘类’的概念。
  4.对象对方法,属性的引用和C#一样,也是通过’.‘来调用。用new运算符来声明实例!
  5.as var now=new Date();  这个Date()是一个方法,但我们可以把它看做一个类,因为没有类的概念
  所以我们把这个函数的实例说成对象,而不是对象的实例。
  6.javascript的编辑工具:dreamwear,1st javascript editor,ultra edit 32,MS notpad;建议使用
  1st javascipt editor,本人都装了,不过还是觉得这个比较不错,因为这个有代码提示,对初学者
  来说可能用MS notepad还是比较ok的啊,因为这个是手写的那么我们可以了解它的具体语法;
  7.javascript 的代码理论上是可以写在网页上的任何位置,但通常我们是放在或者
  中;
  8.常用的两个输出:window的alert()方法可以输出警告框,document的write()方法可以在网页中输出文字;
  9.注释比C#少一种///的,另外两种都可以!
  10.最好在之间的代码用HTML的注释包围起来,这样为了防止旧版本的浏览器不支持
  JavaScript;
  11.在一个网页上可以出现多个,但是不能嵌套;
  12.language属性指定语言的种类,但HTML支持使用type(mine)属性来进行命名;虽然explorer对language属性
  支持的更好一点!
  13.html代码执行的时候如果遇到script代码就会停下来执行script代码,知道script代码执行结束后,再
  执行HTML代码;如果使用了defer关键字就让HTML不停执行,不停下来等script代码的执行,除非代码
  中有document的write(),或者window的alert(),才会停止;
  14.SRC属性同来指定外部文件的引入,
  15.用JavaScript:在html中调用JavaScript的函数(自定义或者系统的都可以调用);
  16.JavaScript还可以与事件结合调用,比如onmouseover.....
  17.分号可以区分句子,回车也可以实现断句,空格在JavaScript被忽略(除非在string或者正则表达式中);
  18.JavaScript区分大小写;19.===全等于(值相等,数据类型也相等) !== 不全等于 >>>(右移,零填充)
  20.JS主要事件:
  单击事件onClick
  onChange改变事件
  选中事件onSelect
  获得焦点事件onFocus
  失去焦点onBlur
  载入文件onLoad
  卸载文件onUnload
  o
  o
  javascript(二)
  数据类型和变量: 3种基本数据类型 1.字符串类型 这个和其他语言的差不多,关键是没有char类型。 2.数字类型 只有浮点型,特殊值 infinity(无限大),NaN(not a number) 也可以用Number这个对象来调出最大和最小值; 3.布尔型 只有true or false 特殊数据类型 1.函数 2.undefined 3.null 复合数据类型 1.对象 2.数组数据类型转换 1.JavaScript提供隐式转换,定义变量时不必声明数据类型,JavaScript会帮您在使用该变量时,自动帮您转换数据类型for example: if(1){ ....} 这时JavaScript会把1转换为true,非0的数值都可以转化为true,0转化为false; 2.JavaScript还提供显示的转换比如tostring(),ToNumber()等 JavaScript在数据进行运算的时候也可以隐式的转换数据类型;常量: 常量有整形(包括浮点型和整形)浮点型用科学计数法表示,也可以用一般数学的.号来分隔整数和小数; 字符串常量,中如果有“”的或者其他的容易混淆的符号就必须进行转义,用反斜杠表示,比如“/“/””; 此外还有布尔常量,和数组常量;变量:定义变量的时候如果是引用数据类型,比如对象或者是数组,并且如果没有参数,那么后面的大括号可以省略; JavaScript和一般语言一样必须先定义后使用,当然定义时可以省略var关键字,如果写了var关键字就不能用 delete关键字来删除,这个以后再写,至于命名方式和一般语言一样,头字母不能以数字开头,如果有两个以上 单词组成,那么第一个字符小写,第二个单词首字母大写的命名规则,这个和java一样,和.NET不一样; JavaScript允许重复定义相同的变量,函数也可以嵌套,这个和其他语言有区别; 还有就是定义了变量就必须在整个应用程序中给赋初值,否者就会产生一种数据类型undefined; 还有一个就是变量和有效范围必须注意;区分全局和局部的概念; JavaScript允许函数嵌套,所以必须清楚变量的有效范围,即:变量在内层函数中的可以在外层函数中使用,但 不能在更上一级的父类中使用;
   javascript(三)
  javascript开发工具集合
  http://bbs.51js.com/forum-24-1.html 无忧脚本
  http://www.w3schools.com/js/default.asp W3英文学校
  http://www.8esky.com/handbook/Javascrīpt/contents.htm Javascrīpt 参考
  (1)调试javascrīpt的好方法:
  修改IE的设置:
  IE的“选项-高级”,有两个选项默认是钩选的:
  Disable scrīpt Debugging(Internet Explorer)
  Disable scrīpt Debugging(Other)
  中文可能是“禁用脚本调试”,去掉这两项的钩选。
  在VS2005“工具-选项-调试-实时”,选中脚本调试。
  在需要调试的地方加上debugger;例如:
  
  ..
  debugger;
  ..
  
  打开或刷新一下页面就进入断点了。
  (2)Javascrīpt IDE开发工具:
  1)软件Eclipse+Javascrīpt插件:
  见本页-Java系列:-(7)Eclipse插件:-Javascrīpt插件。
  2)软件1st Javascrīpt Editor Pro 3.8(有比较全面的智能提示,可以设计HTML代码)
  http://www.yaldex.com/JSFactory_Pro.htm
  1st javascrīpt editor 3.8破解
  下载地址:http://download.csdn.net/source/163908
  http://blog.csdn.net/hertcloud/archive/2007/04/03/1551053.aspx
  使用破解后 程序启动后是不能智能提示的 需要在 设置里面打开(每次启动都需要手动打开..:)破解的不完善.)
  3)软件AceHTML Pro v6.6 特别版(有一点智能提示但不是所需要的)
  name:www.chinaz.com
  sn:WRSG-XCQC-4XXZ-NCGS
  4)软件Antechinus Javascrīpt Editor 9.0(有一点智能提示但不是所需要的)
  5)软件Javascrīpt Plus! 4.1(无智能提示)
  6)软件ScrypTik 1.14(无智能提示)
  (3)Javascrīpt源码格式化
  SourceFormatX-格式化js代码,可以格式被任何软件混淆的js代码,原样保留但中文注释会变成乱码,提供的功能多,界面专业,可以不修改源文件。
  http://cn.textrush.com/integrate.htm
  SourceFormatX 2.56 的注册破解版
  http://hi.baidu.com/hn123/blog/item/41b10df44a75556edcc4742f.html
  http://vxer.cn/downloads/SourceFormatX.rar
  http://vxer.cn/downloads/SourceFormatX.rar SourceFormatX破解
  仅一个功能“格式化目录”不能用(需要正版KEY解码)。使用的时候最好不要开调试器,filemon等工具,因为这个软件有主要的危险代码:
  1,用winexec无限开窗口,直到你死机
  2,删除你注册表,删了你肯定要重装了!
  http://www.textrush.com/download/sfx256sp3.zip SourceFormatX SP3下载
  使用 Key Maker 165 制作 内存补丁 针对 2.56 非SP
  SP3 版本没有找到下载地址,CRACK提供的版本中部分菜单有英文,且功能莫明其妙,不知道是否有问题.
  建议"等待进程闲置时修改"
  带上做好的 MemPatch 程序.
  http://bbs.pediy.com/attachment.php?attachmentid=3544&d=1164863022
  SourceFormatX SP3 内存补丁 带上做好的 MemPatch 程序
  http://bbs.pediy.com/attachment.php?attachmentid=3546&d=1164872805
  Javascrīpt Code Improver-格式化js代码,可以格式被任何软件混淆的js代码,但只有第一个注释被保留且不是中文乱码,提供的修改参数少,界面简单,可以不修改源文件。
  http://www.jcay.com/javascrīpt-code-improver.html
  Javascrīpt Code Improver 中文语言包
  http://blog.csdn.net/KimSoft/archive/2006/05/23/750407.aspx
  polystyle-格式化js代码,不能格式被Javascrīpt Obfuscator软件混淆的js代码,很多js文件都不能完全格式化,原样保留但中文注释会变成乱码,提供的功能多,但界面混乱,提供右键格式化功能,不提供保存格式化后的文件的功能要自己copy粘贴,不修改源文件。
  http://www.polystyle.com/integrations/
  http://www.polystyle.com/walkthrough/
  Trita 1.6a-格式化js代码
  http://as.onlinedown.net/down/trita-source-formatter-windows-setup.exe
  code:1748314567063
  注册码:1734759207571
  Javascrīpt源代码格式化工具
  http://cn.textrush.com/formatter-javascrīpt.htm
  MyEclipse中的默认的Javascrīpt编辑器提供了格式化格能,只要按一下(CTRL+SHIFT+F)就OK
  在线格式化js代码
  http://files.cnblogs.com/matrix/beautyjs.htm
  http://www.div-css.com/f/tool/js-format-compress.html javascrīpt格式化及压缩工具
  http://www.div-css.com/f/tool/js-format-color.html javascrīpt格式化及代码着色工具
  (4)Javascrīpt源码混淆压缩
  Jasob2.1-混淆器,混淆后不马上修改源文件,提示你保存,而且有两个窗口显示混淆前后的文件,不支持拖入文件,可打开嵌入到页面文件如.aspx文件里的js代码而且灰显其他代码只显示js代码。
  http://www.jasob.com/Downloads.html
  http://www.jasob.com/Features.html
  Javascrīpt Obfuscator-混淆器,混淆后即将源文件修改了,但通过他生成的备份文件可以原样恢复,支持拖入文件,只能打开.js文件,不能打开嵌入到其他文件里的js代码。
  http://www.javascrīpt-source.com/
  http://www.javascrīpt-source.com/tutorial.html
  http://www.javascrīpt-source.com/help.html
  JsObfuscator2.01 Crack Version
  http://www.sosuo8.com/article/show.asp?id=1383
  JsMinGUI-javascrīpt脚本压缩工具,界面简单,没有修改参数的地方,只有一个压缩按钮,其自身没提供恢复被混淆的文件的功能,被混淆后的内容已经去掉了注释内容,支持拖入文件,只能混淆.js文件,不能混淆嵌入到其他文件里的js代码。
  http://www.sosuo8.com/article/show.asp?id=1382
  Javascrīpt Chaos Edition(JCE)-JCE Pro Obfuscator,要用命令才能混淆,而且好像只是将字符换成编码,代码的格式都没变,没怎么混淆。
  http://www.syntropy.se/?ct=downloads
  ESC 1.14-压缩工具,没找到安装文件。
  功能比较全的一个压缩程序,压缩分为0-4个级别,其中level4可以对变量进行替换。不过不能对使用回车结尾的语句自动添加分号。
  这款工具可自定义压缩级别和是否进行混淆,当然缺点也不是没有,压缩效果一般,而且要求每个JS语句必须以分号结尾,有大括号也不行。
  http://www.saltstorm.net/depo/esc/?pod=js
  X2JSCompactor-我没用过
  http://www.jb51.net/downtools/X2JSCompactor.rar
  Rob Seiler的packer-我没用过
  这款压缩混淆工具效果也不错,有三种版本,.Net,Perl,和WSH版本,Windows平台下WSH脚本比较适合,命令行操作。
  http://dean.edwards.name/download/
  在线混淆js代码
  http://www.bizstruct.cn/JavascrīptOnlineObfuscator/
  http://editor.lionsky.net/JSConfusionWebDemo/
  MemTronic's FREEWARE HTML/Javascrīpt Cruncher-Compressor v1.0k
  压缩效果好得不一般,混淆出来的代码完全不可读,压缩率可达50%,IE 5+ / NS 7.0 / Mozilla / Opera 7.0 中均可使用
  http://hometown.aol.de/_ht_a/memtronic/MemTronic_CruncherCompressor.html
  (5)Javascrīpt模块代码:
  1-2-3 Javascrīpt Library!
  http://www.wyka-warzecha.com/website/products/javascrīpts/123library/index.htm 很好的javascript编辑工具 spket
  一直在找支持Ext库的eclipse javascript插件。
  用过一段时间aptana,不是很稳定,觉得不爽。
  后来在Jack Slocum的blog中发现了spket,才发现这就是我要的。
  支持Ext的code complete并附带code api comments。
  spket官方网站在www.spket.com,目前最新版本是1.6.11
  下了个压缩包,很庆幸的发现居然没做混淆,呵呵,那就不客气的拿来用了。
  附件中是破解版。解压到eclipse目录中即可
  在spket中添加Ext库支持的步骤如下:
  Watch this Spket IDE Tutorial to see how to easily add Ext code assist (you can point it at the latest /src/ext.jsb to keep code assist up to date with the latest Ext version). The steps are basically:
  Window → Preferences → Spket → JavaScript Profiles → New
  Enter “ExtJS” and click OK
  Select “ExtJS” and click “Add Library”, then choose “ExtJS” from the dropdown
  Select “ExtJS” and click “Add File”, then choose the “ext.jsb” file in your “./ext-2.x/source” directory
  Set the new ExtJS profile as the default by selecting it an clicking the “Default” button on the right-hand side of the “JavaScript Profiles” dialog.
  Restart Aptana
  Create a new JS file and type: Ext. and you should get the Ext Code completion options.
   (四)基于对象的JavaScript语言
  
    JavaScript语言是基于对象的(Object-Based),而不是面向对象的(object-oriented)。之所以说它是一门基于对象的语言,主要是因为它没有提供象抽象、继承、重载等有关面向对象语言的许多功能。而是把其它语言所创建的复杂对象统一起来,从而形成一个非常强大的对象系统。
  虽然JavaScript语言是一门基于对象的,但它还是具有一些面向对象的基本特征。它可以根据需要创建自己的对象,从而进一步扩大JavaScript的应用范围,增强编写功能强大的Web文档。
   1.使用For...in语句,则根本不需要知道对象属性的个数,见下:
    Function showData(object)
    for(var prop in object)
    document.write(object[prop]);
    使用该函数时,在循环体中,For自动将的属性取出来,直到最后为此。   2.对象属性的引用:  
    使用点(.)运算符: university.Name=“广西”
    通过对象的下标实现引用: university[0]=“广西”
    通过字符串的形式实现 : university["Name"]=“广西”
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics