单体模式
优点:把代码组织得一致并隔离,更容易阅读和维护,提高稳定性;用于优化,提升性能
缺点:可导致强耦合
5.1 单体的基本结构
var Singleton = {
attribute1 : true,
attribute2 : 10,
method1 : function(){},
method2 : function(){}
};
严格按定义来说,C1不是一个单体,因为它不是一个可实例化的类
对象字面量只是创意单体的方式之一.
并非所有的对象字面量都是单体,只用来模仿关联数组及容纳数据的就不是单体.
5.2 划分命名空间
var MyNamespace = {}
MyNamespace.common = {};
5.3 用作特定网页专用代码的包装器的单体
GiantCorp.RegPage = {
FORM_ID : 'reg-form',
//method
handSubmit : function(e){
e.preventDefault();
//...
GiantCorp.RegPage.sendRegistration();
},
init : function(){
GiantCorp.RegPage.formEl = $(GiantCorp.RegPage.FORM_ID);
addEvent(GiantCorp.RegPage.formEl,'submit',GiantCorp.RegPage.handSubmit);
}
};
addLoadEvent(GiantCorp.RegPage.init);
//以上代码将属性及方法都统一到一个单体中,并通过init来绑定事件,最后在页面上调用init即可实现特定页面 ......
javascript中存在几种对URL字符串进行编码的方法:escape(),encodeURI(),以及encodeURIComponent()。这几种编码所起的作用各不相同。
escape() 方法:
采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。
不会被此方法编码的字符: @ * / +
解码函数unescape()
encodeURI() 方法:
把URI字符串采用UTF-8编码格式转化成escape格式的字符串。
不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + '
解码函数decodeURI()
encodeURIComponent() 方法:
把URI
字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 /
等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。
不会被此方法编码的字符:! * ( ) '
解码函数decodeURIComponent()
因
此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的char ......
javascript:基础知识
1 创建脚本块
1: <script language=”javascript”>
2: javascript code goes here
3: </script>
2 隐藏脚本代码
1: <script language=”javascript”>
2: <!--
3: document.write(“Hello”);
4: // -->
5: </script>
在不支持javascript的浏览器中将不执行相关代码
3 浏览器不支持的时候显示
1: <noscript>
2: Hello to the non-javascript browser.
3: </noscript>
4 链接外部脚本文件
1: <script language=”javascript” src="/”filename.js"”></script>
5 注释脚本
1: // This is a comment
2: document.write(“Hello”); // This is a comment
3: /*
4: All of this
5: is a comment
6: */
6 输出到浏览器
1: document.write(“<strong>Hello</strong>”);
7 定义变量
1: var myVariable = “some value”;
8 字符串相加
1: var myString = “String1” + “String2”;
9 字符串搜索
1: <script language=”java ......
options数组
该数组是select对象的一个属性,即选择框中的所有选项(<OPTION>)的一个列表。
属性
defaultSelected 选项列表中的缺省选项
index 选项列表中某选项的索引位置
length 选项列表中的选项数(<OPTIONS>)
name 选项列表的名字(NAME特性)
selected 表示选项列表中某选项<OPTION>是否被选中的一个布尔类型值
selectedIndex 选项列表中已选中的<OPTION>的索引(位置)
text 选项列表中<OPTION>标记后的文本
value 选项列表中的VALUE=特性
Array 数组
1. var array = new Array(12,23......);//创建数组,初始化数组值为:12,13....
2. var array = new Array(12);//创建数组,数组大小为12
3. var array = new Array();//创建数组
for (var i = 0; i < length; i++) {
aCity[i] = new Array();//创建二维数组
}
for (var i = 0; i < length; i++) {
for (var j = 0; j < length; j++) {
& ......
1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)><td>no</table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false" 不准粘贴
4. oncopy="return false;" oncut="return false;" 防止复制
5. <link rel="Shortcut Icon" href="favicon.ico"> IE地址栏前换成自己的图标
6. <link rel="Bookmark" href="favicon.ico"> 可以在收藏夹中显示出你的图标
7. <input style="ime-mode:disabled"> 关闭输入法
8. 永远都会带着框架
<script language="JavaScript"><!--
if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页
// --></script>
9. 防止被人frame
<SCRIPT LANGUAGE=JAVASCRIPT><!--
if (top.location != self.location)top.location=self.location;
// --></SCRIPT>
10. 网页将不能被另存为
<noscript><*** src="/*.html>";</***></noscript>
11. <input type=button value="/查看网页源 ......
//第一种构造方法: new Object()
var a = new Object();
a.x = 1, a.y = 2;
//第二种构造方法: 对象直接量
var b = {x:1,y:b};
//第三种构造方法: 定义类型
function Point(x,y)
{
this.x = x;
this.y = y;
}
var p = new Point(1,2); ......