javascript基础知识大全 便于大家学习也便于我自己查看Word下载.docx
《javascript基础知识大全 便于大家学习也便于我自己查看Word下载.docx》由会员分享,可在线阅读,更多相关《javascript基础知识大全 便于大家学习也便于我自己查看Word下载.docx(35页珍藏版)》请在冰豆网上搜索。
[3,4]
varb=a.splice(0,1);
//同shift
a.splice(0,0,-2,-1);
varb=a.length;
//同unshift
varb=a.splice(a.length-1,1);
//同pop
a.splice(a.length,0,6,7);
//同push
//reverse:
将数组反序
varb=a.reverse();
[5,4,3,2,1]b:
[5,4,3,2,1]
//sort(orderfunction):
按指定的参数对数组进行排序
varb=a.sort();
[1,2,3,4,5]
//slice(start,end):
返回从原数组中指定开始下标到结束下标之间的项组成的新数组
varb=a.slice(2,5);
[3,4,5]
//join(separator):
将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符
varb=a.join("
|"
"
1|2|3|4|5"
2.dom最常用API
document方法:
getElementById(id)Node返回指定结点的引用
getElementsByTagName(name)NodeList返回文档中所有匹配的元素的集合
createElement(name)NodeNode
createTextNode(text)Node创建一个纯文本结点
ownerDocumentDocument指向这个节点所属的文档
documentElementNode返回html节点
document.bodyNode返回body节点
element方法:
getAttribute(attributeName)String返回指定属性的值
setAttribute(attributeName,value)String给属性赋值
removeAttribute(attributeName)String移除指定属性和它的值
getElementsByTagName(name)NodeList返回结点内所有匹配的元素的集合
node方法:
appendChild(child)Node给指定结点添加一个新的子结点
removeChild(child)Node移除指定结点的子结点
replaceChild(newChild,oldChild)Node替换指定结点的子结点
insertBefore(newChild,refChild)Node在同一层级的结点前面插入新结点
hasChildNodes()Boolean如果结点有子结点则返回true
node属性:
nodeNameString以字符串的格式存放结点的名称
nodeTypeString以整型数据格式存放结点的类型
nodeValueString以可用的格式存放结点的值
parentNodeNode指向结点的父结点的引用
childNodesNodeList指向子结点的引用的集合
firstChildNode指向子结点结合中的第一个子结点的引用
lastChildNode指向子结点结合中的最后一个子结点的引用
previousSiblingNode指向前一个兄弟节点;
如果这个节点就是兄弟节点,那么该值为null
nextSiblingNode指向后一个兄弟节点;
3.网上搜藏的一个map对象:
functionHashMap()
{
/**Map大小**/
varsize=0;
/**对象**/
varentry=newObject();
/**存**/
this.put=function(key,value)
if(!
this.containsKey(key))
size++;
}
entry[key]=value;
/**取**/
this.get=function(key)
returnthis.containsKey(key)?
entry[key]:
null;
/**删除**/
this.remove=function(key)
if(this.containsKey(key)&
&
(deleteentry[key]))
size--;
/**是否包含Key**/
this.containsKey=function(key)
return(keyinentry);
/**是否包含Value**/
this.containsValue=function(value)
for(varpropinentry)
if(entry[prop]==value)
returntrue;
returnfalse;
/**所有Value**/
this.values=function()
varvalues=newArray();
values.push(entry[prop]);
returnvalues;
/**所有Key**/
this.keys=function()
varkeys=newArray();
keys.push(prop);
returnkeys;
/**MapSize**/
this.size=function()
returnsize;
/*清空*/
this.clear=function()
size=0;
entry=newObject();
varmap=newHashMap();
/*
map.put("
A"
"
1"
B"
2"
5"
C"
3"
4"
*/
alert(map.containsKey("
XX"
));
alert(map.size());
alert(map.get("
map.remove("
/**同时也可以把对象作为Key**/
vararrayKey=newArray("
vararrayValue=newArray("
D"
map.put(arrayKey,arrayValue);
varvalue=map.get(arrayKey);
for(vari=0;
i<
value.length;
i++)
//alert(value[i]);
/**把对象做为Key时,自动调用了该对象的toString()方法其实最终还是以String对象为Key**/
/**如果是自定义对象那自己得重写toString()方法否则.就是下面的结果**/
functionMyObject(name)
this.name=name;
/**
this.toString=function()
returnthis.name;
**/
varobject1=newMyObject("
小张"
varobject2=newMyObject("
小名"
map.put(object1,"
map.put(object2,"
alert(map.get(object1));
alert(map.get(object2));
xxxxx"
/**运行结果小名小名size=1**/
/**如果改成复写toString()方法的对象,效果就完全不一样了**/
<
/script>
4.常用的数字函数:
·
数字型(Number)
1.声明
vari=1;
vari=newNumber
(1);
2.字符串与数字间的转换
varstr=i.toString();
//结果:
"
varstr=newString(i);
i=parseInt(str);
1
i=parseFloat(str);
1.0
//注意:
parseInt,parseFloat会把一个类似于"
32G"
的字符串,强制转换成32
3.判断是否为有效的数字
vari=123;
varstr="
string"
;
if(typeofi=="
number"
){}//true
//某些方法(如:
parseInt,parseFloat)会返回一个特殊的值NaN(NotaNumber)
//请注意第2点中的[注意],此方法不完全适合判断一个字符串是否是数字型!
!
if(isNaN(i)){}
4.数字型比较
//此知识与[字符串比较]相同
5.小数转整数
varf=1.5;
vari=Math.round(f);
2(四舍五入)
vari=Math.ceil(f);
2(返回大于f的最小整数)
vari=Math.floor(f);
1(返回小于f的最大整数)
6.格式化显示数字
vari=3.14159;
//格式化为两位小数的浮点数
varstr=i.toFixed
(2);
3.14"
//格式化为五位数字的浮点数(从左到右五位数字,不够补零)
varstr=i.toPrecision(5);
3.1415"
7.X进制数字的转换
//不是很懂-.-
vari=parseInt("
0x1f"
16);
vari=parseInt(i,10);
11010011"
2);
8.随机数
//返回0-1之间的任意小数
varrnd=Math.random();
//返回0-n之间的任意整数(不包括n)
varrnd=Math.floor(Math.random()*n)
5.网上搜藏的js堆栈:
functionstack(){
if(this.top==undefined){
//初始化堆栈的顶部指针和数据存放域
this.top=0;
this.unit=newArray();
this.push=function(pushvalue){
//定义压入堆栈的方法
this.unit[this.top]=pushvalue;
this.top+=1;
this.readAllElements=function(){
//定义读取所有数据的方法
if(this.top==0){
alert("
当前栈空,无法读取数据"
return("
varcount=0;
varoutStr="
for(count=0;
count<
this.top;
count++){
outStr+=this.unit[count]+"
return(outStr);
this.pop=function(){
//定义弹出堆栈的方法
当前栈空,无法弹出数据"
varpopTo=this.unit[this.top-1];
this.top--;
return(popTo);
/*从堆栈弹出数据,顶部指针减一,不过这里没有做到资源的释放,也
就是说数据仍然存在于this.unit的数组中,只不过无法访问罢了。
目前
我也没想到好的办法解决。
6.最常用的JavaScript日期函数:
日期型(Date)
varmyDate=newDate();
//系统当前时间
varmyDate=newDate(yyyy,mm,dd,hh,mm,ss);
varmyDate=newDate(yyyy,mm,dd);
varmyDate=newDate("
monthNamedd,yyyyhh:
mm:
ss"
monthNamedd,yyyy"
varmyDate=newDate(epochMilliseconds);
2.获取时间的某部份
myDate.getYear();
//获取当前年份(2位)
myDate.getFullYear();
//获取完整的年份(4位,1970-)
myDate.getMonth();
//获取当前月份(0-11,0代表1月)
myDate.getDate();
//获取当前日(1-31)
myDate.getDay();
//获取当前星期X(0-6,0代表星期天)
myDate.getTime();
//获取当前时间(从1970.1.1开始的毫秒数)时间戳!
!
myDate.getHours();
//获取当前小时数(0-23)
myDate.getMinutes();
//获取当前分钟数(0-59)
myDate.getSeconds();
//获取当前秒数(0-59)
myDate.getMilliseconds();
//获取当前毫秒数(0-999)
myDate.toLocaleDateString();
//获取当前日期
myDate.toLocaleTimeString();
//获取当前时间
myDate.toLocaleString();
//获取日期与时间
3.计算之前或未来的时间
myDate.setDate(myDate.getDate()+10);
//当前时间加10天
//类似的方法都基本相同,以set开头,具体参考第2点
4.计算两个日期的偏移量
vari=daysBetween(beginDate,endDate);
//返回天数
vari=beginDate.getTimezoneOffset(endDate);
//返回分钟数
5.检查有效日期
//checkDate()只允许"
mm-dd-yyyy"
或"
mm/dd/yyyy"
两种格式的日期
if(checkDate("
2006-01-01"
)){}
//正则表达式(自己写的检查yyyy-mm-dd,yy-mm-dd,yyyy/mm/dd,yy/mm/dd四种)
varr=/^(\d{2}|\d{4})[\/-]\d{1,2}[\/-]\d{1,2}$/;
if(r.test(myString)){}
7.最常用字符串函数API:
字符串(String)
varmyString=newString("
Everygoodboydoesfine."
varmyString="
2.字符串连接
Every"
+"
goodboy"
doesfine."
myString+="
goodboydoesfine."
3.截取字符串
//截取第6位开始的字符
varsection=myString.substring(6);
//截取第0位开始至第10位为止的字符
varsection=myString.substring(0,10);
Everygood"
//截取从第11位到倒数第6位为止的字符
varsection=myString.slice(11,-6);
boydoes"
//从第6位开始截取长度为4的字符
varsection=myString.substr(6,4);
good"
4.转换大小写
Hello"
varlcString=myString.toLowerCase();
hello"
varucString=myString.toUpperCase();
HELLO"
5.字符串比较
varaString="
Hello!
varbString=newString("
if(aString=="
){}//结果:
true
if(aString==bString){}//结果:
if(aString===bString){}//结果:
false(两个对象不同,尽管它们的值相同)
6.检索字符串
helloeverybody."
//如果检索不到会返回-1,检索到的话返回在该串中的起始位置
if(myString.indexOf("
every"
)>
-1){}//结果:
7.查找替换字符串
Iisyourfather."
varresult=myString.replace("
is"
am"
Iamyourfather."
8.特殊字符:
\b:
后退符\t:
水平制表符
\n:
换行符\v:
垂直制表符
\f:
分页符\r:
回车符
\"
:
双引号\'
单引号
\\:
反斜杆
9.将字符转换成Unicode编码
varcode=myString.charCodeAt(3);
//返回"
l"
的Unicode编码(整型)
varchar=String.fromCharCode(66);
//返回Unicode为66的字符
10.将字符串转换成