您的位置:首页 > Web前端 > JavaScript

javascript高级程序设计总结之二

2011-12-07 21:31 344 查看
函数的用法: 参数不是必须的,只是提供便利!

function sayHi(){

alert("Hello " + arguments[0] + "," + arguments[1]);

}

sayHi("kinger", "How are you?"); //Hello kinger,How are you?

var colors = new Array(3);

var names = new Array("Greg","blue");

var colors = ["red", "blue", "green"];

数组的length属性不是只读的,是可以修改的。

var colors = ["red", "blue", "green"]; //length为3

colors[colors.length] = "black"; //位置3添加black

colors[colors.length] = "brown"; //位置4添加brown

栈方法:push() 和pop()

队列方法: push() 和 shift()

重排序:

reverse()和sort()

sort方法可以接受一个比较函数为参数。sort方法比较的是字符串,默认为

var values = [0, 1, 5, 10, 15];

values.sort();

alert(values); //0, 1, 10,15,5

比较函数:

function compare(value1, value2){

if( value1 < value2){

return -1;

}else if(value1 > value2){

return 1;

} else{

return 0;

}

}

简写可以写成:

function compare(value1, value2){

return value1-value2;

} //这是升序排序

如果第一个参数应该位于第二个之前则返回一个负数

如果第一个参数应该位于第二个之后则返回一个正数

var values = [0, 1, 5, 10, 15];

values.sort(compare);

alert(values); //0, 1, 5, 10, 15

数组中的操作方法有:concat()、slice()、splice()

RegExp类型:

正则表达式的表示方法:

1、 var pattern1 = /[bc]at/i;

2. var pattern2 = new RegExp("[bc]at", "i");

函数声明和函数表达式的区别,解析器会率先读取函数声明

alert(sum(10, 10)); //20

//alert(sum2(10, 10)); //出错

function sum(num1 ,num2){ //函数声明

return num1 + num2;

}

var sum2 = function(num1, num2){ //函数表达式

return num1 + num2;

}

函数内部再调用函数

var data = [{name: "lonpo", age: 28}, {name: "kinger", age: 29}]; //两个对象

function createComparisonFunction(propertyName){

return function(object1, object2){

var value1 = object1[propertyName]; //object1是什么?

var value2 = object2[propertyName]; //object2是什么?

if(value1 < value2){

return -1;

}else if(value1 > value2){

return 1;

} else{

return 0;

}

};

}

data.sort(createComparisonFunction("name"));

alert(data[0].name); //kinger 按照name排序 于是是kinger、lonpo

data.sort(createComparisonFunction("age"));

alert(data[0].name); //lonpo 按照age排序 28、29

可以理解为下面这种情况:

//var data = [{name: "lonpo", age: 28}, {name: "kinger", age: 29}]; //两个对象

var data = [{name: "lonpo", age: 28}, {name: "kinger", age: 29}, {name: "zipoo",age:21},{ name:"abc", age:40}];

//alert(data[0]);

//alert(data[1]);

function createComparisonFunction(propertyName){

return function compare(value1, value2){

var v1 = value1[propertyName];

var v2 = value2[propertyName];

if(v1 < v2){

return -1;

}else if(v1 > v2){

return 1;

} else{

return 0;

}

}

}

data.sort(createComparisonFunction("name"));

alert(data[0].name); //kinger 按照name排序 于是是kinger、lonpo

data.sort(createComparisonFunction("age"));

alert(data[0].name); //lonpo 按照age排序 28、29

基本包装类型和基本类型

var s1 = "some text";

var s2 = s1.substring();

// 当执行第二步的时候,后台自动完成了下列步骤:

1、创建String类型的一个实例

2、在实例上调用指定的方法

3、销毁这个实例

string类型的各大方法还是有很大区别的 slice()、substr()、substring()

/*

* substring(beginIndex, endIndex);

* slice(beginIndex, endIndex);

* substr(beginIndex, numOfChar);

* 如果两个参数是负数的话,就截然不同。

* slice()方法会将传入的参数与字符串的长度相加

* substr()方法会将第一个负的参数加上字符串的长度,第二个负参数转换成0

* substring()方法会将所有负的参数都转换为0

*/

RegExp与String的模式匹配的区别:

var text = “cat, bat, sat, fat”;

var pattern = /.at/;

//与pattern.exec(text)相同

var matches = text.match(pattern);

RegExp正则表达式的方法有:

RegExp对象的exec(), pattern.exec(text);

pattern.test(text); 测试是否成功匹配,返回boolean

字符串的模式匹配:

match()方法:var matches = text.match(pattern);

search方法:

replace方法:

================

字符实体:

比如小于号 (<) 用于定义 HTML 标签的开始。如果我们希望浏览器正确地显示这些字符,我们必须在 HTML 源码中插入字符实体。

字符实体有三部分:一个和号 (&),一个实体名称,或者 # 和一个实体编号,以及一个分号 (;)。

如:< 等于< 或者<

空格

空格是 HTML 中最普通的字符实体。

通常情况下,HTML 会裁掉文档中的空格。假如你在文档中连续输入 10 个空格,那么 HTML 会去掉其中的9个。如果使用  ,就可以在文档中增加空格。

最常用的字符实体

显示结果 描述 实体名称 实体编号

空格    

< 小于号 < <

> 大于号 > >

& 和号 & &

" 引号 " "

' 撇号 ' (IE不支持) '

' 单引号:''' (single quote) '

其他一些常用的字符实体

显示结果 描述 实体名称 实体编号

¢ 分 ¢ ¢

£ 镑 £ £

¥ 日圆 ¥ ¥

§ 节 § §

© 版权 © ©

® 注册商标 ® ®

× 乘号 × ×

÷ 除号 ÷ ÷

global对象

URI编码方法:

encodeURI()和encodeURIComponent()方法。

encodeURI不会对URI规范中的保留字元的特殊字符进行转义。

encodeURIComponent()方法对所有的非标准字符进行转义。

举个例子:
http://openhome.cc/addBookmar.do?url=http://openhome.cc
对整个URI使用encodeURI(),而只对URI后面的字符串使用encodeURIComponent()

于是就变成了http://openhome.cc/addBookmar.do?url=http%3A%2F%2Fopenhome.cc

在URI的規範中定義了一些保留字元(Reserved character),像是「:」、「/」、「?」、「&」、「=」、「@」、「%」等字元

各种特殊字符的URI编码:

字符 URL编码值

space %20

" %22

# %23

% %25

& %26

( %28

) %29

+ %2B

, %2C

/ %2F

: %3A

; %3B

< %3C

= %3D

> %3E

? %3F

@ %4o

/ %5C

| %7C

URL中一些字符的特殊含义,基本编码规则如下:

1、空格换成加号(+)

2、正斜杠(/)分隔目录和子目录

3、问号(?)分隔URL和查询

4、百分号(%)制定特殊字符

5、#号指定书签

6、&号分隔参数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息