javascript基础知识集锦

上传人:xgs****56 文档编号:10132641 上传时间:2020-04-10 格式:DOCX 页数:29 大小:71.12KB
返回 下载 相关 举报
javascript基础知识集锦_第1页
第1页 / 共29页
javascript基础知识集锦_第2页
第2页 / 共29页
javascript基础知识集锦_第3页
第3页 / 共29页
点击查看更多>>
资源描述
目录Js基础知识集锦(一)1Javascript文件上传时检测文件大小27js遍历json数组28Js基础知识集锦(一)主要知识点:js数组,数字函数,字符串函数,表单验证,hashMap,堆栈,日期函数,call函数 等。next:js正则表达式,闭包,apply,callee,事件相关函数,Cookie等 1.javascript的数组APIJs代码 1. /定义数组 2. varpageIds=newArray(); 3. pageIds.push(A); 4. 5. 数组长度 6. pageIds.length; 7. 8. /shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined 9. vara=1,2,3,4,5; 10. varb=a.shift();/a:2,3,4,5b:1 11. 12. /unshift:将参数添加到原数组开头,并返回数组的长度 13. vara=1,2,3,4,5; 14. varb=a.unshift(-2,-1);/a:-2,-1,1,2,3,4,5b:7 15. /注:在IE6.0下测试返回值总为undefined,FF2.0下测试返回值为7,所以这个方法的返回值不可靠,需要用返回值时可用splice代替本方法来使用。 16. 17. /pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined 18. vara=1,2,3,4,5; 19. varb=a.pop();/a:1,2,3,4b:5 20. 21. /push:将参数添加到原数组末尾,并返回数组的长度 22. vara=1,2,3,4,5; 23. varb=a.push(6,7);/a:1,2,3,4,5,6,7b:7 24. 25. /concat:返回一个新数组,是将参数添加到原数组中构成的 26. vara=1,2,3,4,5; 27. varb=a.concat(6,7);/a:1,2,3,4,5b:1,2,3,4,5,6,7 28. 29. /splice(start,deleteCount,val1,val2,):从start位置开始删除deleteCount项,并从该位置起插入val1,val2, 30. vara=1,2,3,4,5; 31. varb=a.splice(2,2,7,8,9);/a:1,2,7,8,9,5b:3,4 32. varb=a.splice(0,1);/同shift 33. a.splice(0,0,-2,-1);varb=a.length;/同unshift 34. varb=a.splice(a.length-1,1);/同pop 35. a.splice(a.length,0,6,7);varb=a.length;/同push 36. 37. /reverse:将数组反序 38. vara=1,2,3,4,5; 39. varb=a.reverse();/a:5,4,3,2,1b:5,4,3,2,1 40. 41. /sort(orderfunction):按指定的参数对数组进行排序 42. vara=1,2,3,4,5; 43. varb=a.sort();/a:1,2,3,4,5b:1,2,3,4,5 44. 45. /slice(start,end):返回从原数组中指定开始下标到结束下标之间的项组成的新数组 46. vara=1,2,3,4,5; 47. varb=a.slice(2,5);/a:1,2,3,4,5b:3,4,5 48. 49. /join(separator):将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符 50. vara=1,2,3,4,5; 51. varb=a.join(|);/a:1,2,3,4,5b:1|2|3|4|5/定义数组 var pageIds = new Array(); pageIds.push(A); 数组长度 pageIds.length;/shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined var a = 1,2,3,4,5; var b = a.shift(); /a:2,3,4,5 b:1 /unshift:将参数添加到原数组开头,并返回数组的长度 var a = 1,2,3,4,5; var b = a.unshift(-2,-1); /a:-2,-1,1,2,3,4,5 b:7 /注:在IE6.0下测试返回值总为undefined,FF2.0下测试返回值为7,所以这个方法的返回值不可靠,需要用返回值时可用splice代替本方法来使用。 /pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined var a = 1,2,3,4,5; var b = a.pop(); /a:1,2,3,4 b:5 /push:将参数添加到原数组末尾,并返回数组的长度 var a = 1,2,3,4,5; var b = a.push(6,7); /a:1,2,3,4,5,6,7 b:7 /concat:返回一个新数组,是将参数添加到原数组中构成的 var a = 1,2,3,4,5; var b = a.concat(6,7); /a:1,2,3,4,5 b:1,2,3,4,5,6,7 /splice(start,deleteCount,val1,val2,):从start位置开始删除deleteCount项,并从该位置起插入val1,val2, var a = 1,2,3,4,5; var b = a.splice(2,2,7,8,9); /a:1,2,7,8,9,5 b:3,4 var b = a.splice(0,1); /同shift a.splice(0,0,-2,-1); var b = a.length; /同unshift var b = a.splice(a.length-1,1); /同pop a.splice(a.length,0,6,7); var b = a.length; /同push /reverse:将数组反序 var a = 1,2,3,4,5; var b = a.reverse(); /a:5,4,3,2,1 b:5,4,3,2,1 /sort(orderfunction):按指定的参数对数组进行排序 var a = 1,2,3,4,5; var b = a.sort(); /a:1,2,3,4,5 b:1,2,3,4,5 /slice(start,end):返回从原数组中指定开始下标到结束下标之间的项组成的新数组 var a = 1,2,3,4,5; var b = a.slice(2,5); /a:1,2,3,4,5 b:3,4,5 /join(separator):将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符 var a = 1,2,3,4,5; var b = a.join(|); /a:1,2,3,4,5 b:1|2|3|4|5 2.dom最常用APIJs代码 1. document方法: 2. getElementById(id)Node返回指定结点的引用 3. getElementsByTagName(name)NodeList返回文档中所有匹配的元素的集合 4. createElement(name)NodeNode 5. createTextNode(text)Node创建一个纯文本结点 6. ownerDocumentDocument指向这个节点所属的文档 7. documentElementNode返回html节点 8. document.bodyNode返回body节点 9. 10. element方法: 11. getAttribute(attributeName)String返回指定属性的值 12. setAttribute(attributeName,value)String给属性赋值 13. removeAttribute(attributeName)String移除指定属性和它的值 14. getElementsByTagName(name)NodeList返回结点内所有匹配的元素的集合 15. 16. node方法: 17. appendChild(child)Node给指定结点添加一个新的子结点 18. removeChild(child)Node移除指定结点的子结点 19. replaceChild(newChild,oldChild)Node替换指定结点的子结点 20. insertBefore(newChild,refChild)Node在同一层级的结点前面插入新结点 21. hasChildNodes()Boolean如果结点有子结点则返回true 22. 23. node属性: 24. nodeNameString以字符串的格式存放结点的名称 25. nodeTypeString以整型数据格式存放结点的类型 26. nodeValueString以可用的格式存放结点的值 27. parentNodeNode指向结点的父结点的引用 28. childNodesNodeList指向子结点的引用的集合 29. firstChildNode指向子结点结合中的第一个子结点的引用 30. lastChildNode指向子结点结合中的最后一个子结点的引用 31. previousSiblingNode指向前一个兄弟节点;如果这个节点就是兄弟节点,那么该值为null 32. nextSiblingNode指向后一个兄弟节点;如果这个节点就是兄弟节点,那么该值为nulldocument方法: getElementById(id) Node 返回指定结点的引用 getElementsByTagName(name) NodeList 返回文档中所有匹配的元素的集合 createElement(name) Node Node createTextNode(text) Node 创建一个纯文本结点 ownerDocument Document 指向这个节点所属的文档 documentElement Node 返回html节点 document.body Node 返回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属性: nodeName String 以字符串的格式存放结点的名称 nodeType String 以整型数据格式存放结点的类型 nodeValue String 以可用的格式存放结点的值 parentNode Node 指向结点的父结点的引用 childNodes NodeList 指向子结点的引用的集合 firstChild Node 指向子结点结合中的第一个子结点的引用 lastChild Node 指向子结点结合中的最后一个子结点的引用 previousSibling Node 指向前一个兄弟节点;如果这个节点就是兄弟节点,那么该值为null nextSibling Node 指向后一个兄弟节点;如果这个节点就是兄弟节点,那么该值为null 3.网上搜藏的一个map对象:Js代码 1. functionHashMap() 2. 3. /*Map大小*/ 4. varsize=0; 5. /*对象*/ 6. varentry=newObject(); 7. 8. /*存*/ 9. this.put=function(key,value) 10. 11. if(!this.containsKey(key) 12. 13. size+; 14. 15. entrykey=value; 16. 17. 18. /*取*/ 19. this.get=function(key) 20. 21. returnthis.containsKey(key)?entrykey:null; 22. 23. 24. /*删除*/ 25. this.remove=function(key) 26. 27. if(this.containsKey(key)&(deleteentrykey) 28. 29. size-; 30. 31. 32. 33. /*是否包含Key*/ 34. this.containsKey=function(key) 35. 36. return(keyinentry); 37. 38. 39. /*是否包含Value*/ 40. this.containsValue=function(value) 41. 42. for(varpropinentry) 43. 44. if(entryprop=value) 45. 46. returntrue; 47. 48. 49. returnfalse; 50. 51. 52. /*所有Value*/ 53. this.values=function() 54. 55. varvalues=newArray(); 56. for(varpropinentry) 57. 58. values.push(entryprop); 59. 60. returnvalues; 61. 62. 63. /*所有Key*/ 64. this.keys=function() 65. 66. varkeys=newArray(); 67. for(varpropinentry) 68. 69. keys.push(prop); 70. 71. returnkeys; 72. 73. 74. /*MapSize*/ 75. this.size=function() 76. 77. returnsize; 78. 79. 80. /*清空*/ 81. this.clear=function() 82. 83. size=0; 84. entry=newObject(); 85. 86. 87. 88. varmap=newHashMap(); 89. 90. /* 91. map.put(A,1); 92. map.put(B,2); 93. map.put(A,5); 94. map.put(C,3); 95. map.put(A,4); 96. */ 97. /* 98. alert(map.containsKey(XX); 99. alert(map.size(); 100. alert(map.get(A); 101. alert(map.get(XX); 102. map.remove(A); 103. alert(map.size(); 104. alert(map.get(A); 105. */ 106. 107. /*同时也可以把对象作为Key*/ 108. /* 109. vararrayKey=newArray(1,2,3,4); 110. vararrayValue=newArray(A,B,C,D); 111. map.put(arrayKey,arrayValue); 112. varvalue=map.get(arrayKey); 113. for(vari=0;ivalue.length;i+) 114. 115. /alert(valuei); 116. 117. */ 118. /*把对象做为Key时,自动调用了该对象的toString()方法其实最终还是以String对象为Key*/ 119. 120. /*如果是自定义对象那自己得重写toString()方法否则.就是下面的结果*/ 121. 122. functionMyObject(name) 123. 124. this.name=name; 125. 126. 127. /* 128. functionMyObject(name) 129. 130. this.name=name; 131. 132. this.toString=function() 133. 134. returnthis.name; 135. 136. 137. */ 138. varobject1=newMyObject(小张); 139. varobject2=newMyObject(小名); 140. 141. map.put(object1,小张); 142. map.put(object2,小名); 143. alert(map.get(object1); 144. alert(map.get(object2); 145. map.remove(xxxxx); 146. alert(map.size(); 147. 148. /*运行结果小名小名size=1*/ 149. 150. /*如果改成复写toString()方法的对象,效果就完全不一样了*/ 151. 152. function HashMap() /* Map 大小 */ var size = 0; /* 对象 */ var entry = new Object(); /* 存 */ this.put = function (key , value) if(!this.containsKey(key) size + ; entrykey = value; /* 取 */ this.get = function (key) return this.containsKey(key) ? entrykey : null; /* 删除 */ this.remove = function ( key ) if( this.containsKey(key) & ( delete entrykey ) ) size -; /* 是否包含 Key */ this.containsKey = function ( key ) return (key in entry); /* 是否包含 Value */ this.containsValue = function ( value ) for(var prop in entry) if(entryprop = value) return true; return false; /* 所有 Value */ this.values = function () var values = new Array(); for(var prop in entry) values.push(entryprop); return values; /* 所有 Key */ this.keys = function () var keys = new Array(); for(var prop in entry) keys.push(prop); return keys; /* Map Size */ this.size = function () return size; /* 清空 */ this.clear = function () size = 0; entry = new Object(); var map = new HashMap(); /* map.put(A,1); map.put(B,2); map.put(A,5); map.put(C,3); map.put(A,4); */ /* alert(map.containsKey(XX); alert(map.size(); alert(map.get(A); alert(map.get(XX); map.remove(A); alert(map.size(); alert(map.get(A); */ /* 同时也可以把对象作为 Key */ /* var arrayKey = new Array(1,2,3,4); var arrayValue = new Array(A,B,C,D); map.put(arrayKey,arrayValue); var value = map.get(arrayKey); for(var i = 0 ; i value.length ; i+) /alert(valuei); */ /* 把对象做为Key时 ,自动调用了该对象的 toString() 方法 其实最终还是以String对象为Key*/ /* 如果是自定义对象 那自己得重写 toString() 方法 否则 . 就是下面的结果 */ function MyObject(name) this.name = name; /* function MyObject(name) this.name = name; this.toString = function () return this.name; */ var object1 = new MyObject(小张); var object2 = new MyObject(小名); map.put(object1,小张); map.put(object2,小名); alert(map.get(object1); alert(map.get(object2); map.remove(xxxxx); alert(map.size(); /* 运行结果 小名 小名 size = 1 */ /* 如果改成复写toString()方法的对象 , 效果就完全不一样了 */ 4.常用的数字函数:Js代码 1. 数字型(Number) 2. 1.声明 3. vari=1; 4. vari=newNumber(1); 5. 6. 2.字符串与数字间的转换 7. vari=1; 8. varstr=i.toString();/结果:1 9. varstr=newString(i);/结果:1 10. i=parseInt(str);/结果:1 11. i=parseFloat(str);/结果:1.0 12. 13. /注意:parseInt,parseFloat会把一个类似于32G的字符串,强制转换成32 14. 15. 3.判断是否为有效的数字 16. vari=123;varstr=string; 17. if(typeofi=number)/true 18. 19. /某些方法(如:parseInt,parseFloat)会返回一个特殊的值NaN(NotaNumber) 20. /请注意第2点中的注意,此方法不完全适合判断一个字符串是否是数字型! 21. i=parseInt(str); 22. if(isNaN(i) 23. 24. 4.数字型比较 25. /此知识与字符串比较相同 26. 27. 5.小数转整数 28. varf=1.5; 29. vari=Math.round(f);/结果:2(四舍五入) 30. vari=Math.ceil(f);/结果:2(返回大于f的最小整数) 31. vari=Math.floor(f);/结果:1(返回小于f的最大整数) 32. 33. 6.格式化显示数字 34. vari=3.14159; 35. 36. /格式化为两位小数的浮点数 37. varstr=i.toFixed(2);/结果:3.14 38. 39. /格式化为五位数字的浮点数(从左到右五位数字,不够补零) 40. varstr=i.toPrecision(5);/结果:3.1415 41. 42. 7.X进制数字的转换 43. /不是很懂-.- 44. vari=parseInt(0x1f,16); 45. vari=parseInt(i,10); 46. vari=parseInt(11010011,2); 47. 48. 8.随机数 49. /返回0-1之间的任意小数 50. varrnd=Math.random(); 51. /返回0-n之间的任意整数(不包括n) 52. varrnd=Math.floor(Math.random()*n)数字型(Number) 1.声明 var i = 1; var i = new Number(1); 2.字符串与数字间的转换 var i = 1; var str = i.toString(); /结果: 1 var str = new String(i); /结果: 1 i = parseInt(str); /结果: 1 i = parseFloat(str); /结果: 1.0 /注意: parseInt,parseFloat会把一个类似于32G的字符串,强制转换成32 3.判断是否为有效的数字 var i = 123; var str = string; if( typeof i = number ) /true /某些方法(如:parseInt,parseFloat)会返回一个特殊的值NaN(Not a Number) /请注意第2点中的注意,此方法不完全适合判断一个字符串是否是数字型! i = parseInt(str); if( isNaN(i) ) 4.数字型比较 /此知识与字符串比较相同 5.小数转整数 var f = 1.5; var i = Math.round(f); /结果:2 (四舍五入) var i = Math.ceil(f); /结果:2 (返回大于f的最小整数) var i = Math.floor(f); /结果:1 (返回小于f的最大整数) 6.格式化显示数字 var i = 3.14159; /格式化为两位小数的浮点数 var str = i.toFixed(2); /结果: 3.14 /格式化为五位数字的浮点数(从左到右五位数字,不够补零) var str = i.toPrecision(5); /结果: 3.1415 7.X进制数字的转换 /不是很懂 -.- var i = parseInt(0x1f,16); var i = parseInt(i,10); var i = parseInt(11010011,2); 8.随机数 /返回0-1之间的任意小数 var rnd = Math.random(); /返回0-n之间的任意整数(不包括n) var rnd = Math.floor(Math.random() * n) 5.网上搜藏的js堆栈:Js代码 1. functionstack() 2. if(this.top=undefined) 3. /初始化堆栈的顶部指针和数据存放域 4. this.top=0; 5. this.unit=newArray(); 6. 7. this.push=function(pushvalue) 8. /定义压入堆栈的方法 9. this.unitthis.top=pushvalue; 10. this.top+=1; 11. 12. this.readAllElements=function() 13. /定义读取所有数据的方法 14. if(this.top=0) 15. alert(当前栈空,无法读取数据); 16. return(); 17. 18. varcount=0; 19. varoutStr=; 20. 21. for(count=0;countthis.top;count+) 22. outStr+=this.unitcount+,; 23. 24. return(outStr); 25. 26. this.pop=function() 27. /定义弹出堆栈的方法 28. if(this.top=0) 29. alert(当前栈空,无法弹出数据); 30. return(); 31. 32. varpopTo=this.unitthis.top-1; 33. this.top-; 34. return(popTo); 35. /*从堆栈弹出数据,顶部指针减一,不过这里没有做到资源的释放,也 36. 就是说数据仍然存在于this.unit的数组中,只不过无法访问罢了。目前 37. 我也没想到好的办法解决。*/38. 39. function stack() if(this.top=undefined) /初始化堆栈的顶部指针和数据存放域 this.top=0; this.unit=new Array(); this.push=function(pushvalue) /定义压入堆栈的方法 this.unitthis.top=pushvalue; this.top+=1; this.readAllElements=function() /定义读取所有数据的方法 if(this.top=0) alert(当前栈空,无法读取数据); return(); var count=0; var outStr=; for(count=0;countthis.top;count+) outStr+=this.unitcount+,; return(outStr); this.pop=function() /定义弹出堆栈的方法 if(this.top=0) alert(当前栈空,无法弹出数据); return(); var popTo=this.unitthis.top-1; this.top-; return(popTo); /* 从堆栈弹出数据,顶部指针减一,不过这里没有做到资源的释放,也 就是说数据仍然存在于this.unit的数组中,只不过无法访问罢了。目前 我也没想到好的办法解决。*/ 6.最常用的JavaScript日期函数:Js代码 1. 日期型(Date) 2. 1.声明 3. varmyDate=newDate();/系统当前时间 4. varmyDate=newDate(yyyy,mm,dd,hh,mm,ss); 5. varmyDate=newDate(yyyy,mm,dd); 6. varmyDate=newDate(monthNamedd,yyyyhh:mm:ss); 7. varmyDate=newDate(monthNamedd,yyyy); 8. varmyDate=newDate(epochMilliseconds); 9. 10. 2.获取时间的某部份 11. varmyDate=newDate(); 12. myDate.getYear();/获取当前年份(2位) 13. myDat
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!