[JavaScript] JavaScript Web Note

记些 JavaScript 有的没有, 一直没空整理的一块...


※ JS 压缩混淆工具
※ HTML 编码
※ 网网相连
※ 阮一峰
※ keakon的涂鸦馆
※ 杂七杂八

◆ Dottoro Web Reference

◆ JavaScript.info JavaScript Tutorial

◆ MSDN -- 高级 JavaScript

http://processingjs.org/
http://sizzlejs.com/


※ JS 压缩混淆编码工具

◎ Google Closure Compiler

◎ YUI Compressor http://yui.github.io/yuicompressor/

◎ Compressor

◎ UglifyJS https://github.com/mishoo/UglifyJS

☀ 黑大 http://www.darkthread.net/minijquerylab/

◎ David .Net -- Ajax Minifier : 自动压缩目录下所有 js、css 语法分享 2010-4-18

◎ jb51 -- JavaScript 格式化整理工具

◎ jb51 -- javascript pack加密压缩工具

◎ jb51 -- JS Minifier压缩

◎ jb51 -- JS混淆工具

◎ 追梦青年-专注C#与.NET -- js简单解密 2014-5-15


※ HTML 编码

escape(String args),unescape(String args)
会处理#符为%23, 空白符转换为+, 中文字处理为 UniCode
encodeURI(String args),decodeURI(String args)
不会处理#符, 空白符转换为%20, 中文字处理为 UTF-8
encodeURIComponent(String args),decodeURIComponent(String args)
会处理#符为%23, 空白符转换为%20, 中文字处理为 UTF-8

HttpUtility.HtmlEncode 空白符转换为空白, # 不处理 用于 POST
HttpUtility.UrlEncode 空白符转换为+, # 为 %23
HttpUtility.UrlPathEncode 空白符转换为%20, # 不处理  用于 GET  

◎ MSDN -- JS1121:取代 (VS2008)

1.使用 encodeURI 方法取代 escape 方法。
2.使用 getFullYear 方法取代 getYear 方法。
3.使用 setFullYear 方法取代 setYear 方法。
4.使用 substring 方法取代 substr 方法。
5.使用 toUTCString 方法取代 toGMTString 方法。
6.使用 decodeURI 方法取代 unescape 方法。


※ 网网相连

◎ 追梦青年-专注C#与.NET -- 转:JS获取浏览器高度和宽度 2014-7-22 ★★★★★

◎ Gea-Suan -- 用统计方法反推 JavaScript 压缩程序的变量名称 2014-6-6

◎ Raymond Camden -- Working With Intl  2014-5-13 ★★★★★

☀ 黑大 -- 杜绝 ASP.NET 网站 JavaScript 注解外露 2014-4-19 ★★★★★

◎ iThome -- JavaScript 之父接掌 Mozilla 首席执行官,宫力升任全球营运长  2014-3-25

◎ Smashing -- Understanding JavaScript’s Function.prototype.bind 2014-1-23

♫♫ 保哥 --  前端工程研究:关于 JavaScript 中对象的 valueOf 方法  2013-7-12

◎ Anthony colangelo -- The Design of Code: Organizing JavaScript 2013-5-21 ★★★★★

[TODO]

◎ 天涯海角 -- JavaScript string 字符串类型的扩展方法 2012-11-28 ★★★★
    endsWith startsWith IsNullEmptyOrSpace InStr InStrRev isIP isLongDate isLongDate existChinese isFileName toHtmlEncode

◎ F2ES.COM -- 小述今年淘宝UED的前端招聘题目  2012-9-6

◎ Johnny.Net -- JavaScript 字符串处理性能分析 2012-9-2

◎ 当麻许 -- [C#] 透过 JavaScript 取得该使用者的IP位置之谜  2012-8-24 ★★★

◎ GBin1.com -- 超棒的javascript移动触摸设备开发类库 - QUOjs  2012-6-11

◎ Mr.Zheng JS画螺旋散点动画 2012-4-23 €

◎ Mr.Zheng JS绘制心型线,进程也懂浪漫 2012-4-22 €

◎ Gordon L. Hemptonc - The Top 10 Javascript MVC Frameworks Reviewed  2012-1-13

10. Ember.js
Ember.js (formerly Amber.js SproutCore 2.0) is one of the newest contenders.
It is an attempt to extricate the core features from SproutCore 2.0 into a more compact modular framework suited for the web.

Pros: Extremely rich templating system with composed views and UI bindings.
Cons: Relatively new. Documentation leaves lots to be desired.

◎ Useless Pickles - Real-Time 3D in Javascript

◎ Peter_Olson How to write a simple interpreter in JavaScript 2012-4-15

◎ 无良心笔记 -- Javascript OOP Design Pattern ★★★★

◎ 汪周刊总部 -- javascript实用程序大全 2009-10-16

◎ 汪周刊总部 -- Javascript刷新页面的几种方法 2009-10-16

☀ John Resig -- Pure JavaScript HTML Parser 2008-5-5

◎ 软件真谛 -- 悟透JavaScript 2008-2-25 ★★★★
    JavaScript中没有“类”,类已化于无形,与对象融为一体。正是由于放下了“类”这个概念,JavaScript的对象才有了其他编程语言所没有的活力。
    任何一个函数都可以为其动态地添加或去除属性,这些属性可以是简单类型,可以是对象,也可以是其他函数。


※ 阮一峰

◎ 阮一峰 -- 《ECMAScript 6入门》上线了 2014-4-30

◎ 阮一峰 -- undefined 与 null的区别 2014-3-28

◎ 阮一峰 -- JavaScript与有限状态机 2013-9-2

◎ 阮一峰 -- jQuery最佳实践 2011-8-4


※ keakon的涂鸦馆

◎ 找到个生成随机颜色的JavaScript代码 2010-10-23
   function randomColor() {
       var rand = Math.floor(Math.random() * 0xFFFFFF).toString(16);
       for (; rand.length < 6;) {
           rand = '0' + rand;
       }
       return '#' + rand;
   }

◎ 用Cufón将自定义字体转成JavaScript 2009-11-20

◎ Google的开源JavaScript开发工具:Closure Tools 2009-11-6

◎ 用JavaScript获取选中的文字 2009-6-20
   function getSelectText() {
       return document.selection && document.selection.createRange().text || window.getSelection && window.getSelection() || document.getSelection && document.getSelection() || '';
   }

◎ 为jQuery扩展wait方法 2009-5-29

◎ jQuery的ContextMenu插件评比+改造 2009-5-24

◎ 用JSONP调用Picasa API 2009-5-1

◎ 列出JavaScript对象的各个成员 2009-1-6 ★★★★★ 
   function showComponents(obj) {
       for(var component in eval(obj)){ //如果传的是字符串类型的对象名,eval就会转换成实际对象,否则可以无视
           document.write(component + " = " + eval(obj)[component] + "
");
       }
   }
   //测试下列出window对象的所有组件
   showComponents(window);
   document.write("------------------
");
   showComponents("window");


※ 杂七杂八

// JOO
 function MyClass () {
   var PrivateVariable; // private member

    this.privilegedMethod = function () { // private member
   // ...
   }
}

 MyClass.staticMethod = function () {}; // static method

 MyClass.prototype.publicMethod = function () {
   // 'this' refer to the object instance, only access 'privileged' and 'public' members
}

 var myObj = new MyClass();
myObj.publicMethod();
MyClass.staticMethod();



~ THE END ~