javascript高级程序设计总结之二

函数的用法: 参数不是必须的,只是提供便利!
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、&号分隔参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值