麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

javascript常用功能匯總

2024-05-06 16:22:44
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文給大家總結(jié)了12個(gè)javascript常用的基本功能,十分的實(shí)用,這里推薦給大家,需要的朋友可以參考下

1.javascript的數(shù)組API:

 

 
  1. //定義數(shù)組  
  2. var pageIds = new Array();  
  3. pageIds.push('A');  
  4. 數(shù)組長(zhǎng)度  
  5. pageIds.length;  
  6. //shift:刪除原數(shù)組第一項(xiàng),并返回刪除元素的值;如果數(shù)組為空則返回undefined  
  7. var a = [1,2,3,4,5];  
  8. var b = a.shift(); //a:[2,3,4,5] b:1  
  9. //unshift:將參數(shù)添加到原數(shù)組開(kāi)頭,并返回?cái)?shù)組的長(zhǎng)度  
  10. var a = [1,2,3,4,5];  
  11. var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7  
  12. //注:在IE6.0下測(cè)試返回值總為undefined,F(xiàn)F2.0下測(cè)試返回值為7,所以這個(gè)方法的返回值不可靠,需要用返回值時(shí)可用splice代替本方法來(lái)使用。  
  13. //pop:刪除原數(shù)組最后一項(xiàng),并返回刪除元素的值;如果數(shù)組為空則返回undefined  
  14. var a = [1,2,3,4,5];  
  15. var b = a.pop(); //a:[1,2,3,4] b:5  
  16. //push:將參數(shù)添加到原數(shù)組末尾,并返回?cái)?shù)組的長(zhǎng)度  
  17. var a = [1,2,3,4,5];  
  18. var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7  
  19. //concat:返回一個(gè)新數(shù)組,是將參數(shù)添加到原數(shù)組中構(gòu)成的  
  20. var a = [1,2,3,4,5];  
  21. var b = a.concat(6,7); //a:[1,2,3,4,5] b:[1,2,3,4,5,6,7]  
  22. //splice(start,deleteCount,val1,val2,):從start位置開(kāi)始刪除deleteCount項(xiàng),并從該位置起插入val1,val2,  
  23. var a = [1,2,3,4,5];  
  24. var b = a.splice(2,2,7,8,9); //a:[1,2,7,8,9,5] b:[3,4]  
  25. var b = a.splice(0,1); //同shift  
  26. a.splice(0,0,-2,-1); var b = a.length; //同unshift  
  27. var b = a.splice(a.length-1,1); //同pop  
  28. a.splice(a.length,0,6,7); var b = a.length; //同push  
  29. //reverse:將數(shù)組反序  
  30. var a = [1,2,3,4,5];  
  31. var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]  
  32. //sort(orderfunction):按指定的參數(shù)對(duì)數(shù)組進(jìn)行排序  
  33. var a = [1,2,3,4,5];  
  34. var b = a.sort(); //a:[1,2,3,4,5] b:[1,2,3,4,5]  
  35. //slice(start,end):返回從原數(shù)組中指定開(kāi)始下標(biāo)到結(jié)束下標(biāo)之間的項(xiàng)組成的新數(shù)組  
  36. var a = [1,2,3,4,5];  
  37. var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5]  
  38. //join(separator):將數(shù)組的元素組起一個(gè)字符串,以separator為分隔符,省略的話則用默認(rèn)用逗號(hào)為分隔符  
  39. var a = [1,2,3,4,5];  
  40. var b = a.join("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5"  

2.dom最常用API:

 

 
  1. //document方法:  
  2. getElementById(id) Node 返回指定結(jié)點(diǎn)的引用  
  3. getElementsByTagName(name) NodeList 返回文檔中所有匹配的元素的集合  
  4. createElement(name) Node Node  
  5. createTextNode(text) Node 創(chuàng)建一個(gè)純文本結(jié)點(diǎn)  
  6. ownerDocument Document 指向這個(gè)節(jié)點(diǎn)所屬的文檔  
  7. documentElement Node 返回html節(jié)點(diǎn)  
  8. document.body Node 返回body節(jié)點(diǎn)  
  9. //element方法:  
  10. getAttribute(attributeName) String 返回指定屬性的值  
  11. setAttribute(attributeName,value) String 給屬性賦值  
  12. removeAttribute(attributeName) String 移除指定屬性和它的值  
  13. getElementsByTagName(name) NodeList 返回結(jié)點(diǎn)內(nèi)所有匹配的元素的集合  
  14. //node方法:  
  15. appendChild(child) Node 給指定結(jié)點(diǎn)添加一個(gè)新的子結(jié)點(diǎn)  
  16. removeChild(child) Node 移除指定結(jié)點(diǎn)的子結(jié)點(diǎn)  
  17. replaceChild(newChild,oldChild) Node 替換指定結(jié)點(diǎn)的子結(jié)點(diǎn)  
  18. insertBefore(newChild,refChild) Node 在同一層級(jí)的結(jié)點(diǎn)前面插入新結(jié)點(diǎn)  
  19. hasChildNodes() Boolean 如果結(jié)點(diǎn)有子結(jié)點(diǎn)則返回true 
  20. //node屬性:  
  21. nodeName String 以字符串的格式存放結(jié)點(diǎn)的名稱  
  22. nodeType String 以整型數(shù)據(jù)格式存放結(jié)點(diǎn)的類型  
  23. nodeValue String 以可用的格式存放結(jié)點(diǎn)的值  
  24. parentNode Node 指向結(jié)點(diǎn)的父結(jié)點(diǎn)的引用  
  25. childNodes NodeList 指向子結(jié)點(diǎn)的引用的集合  
  26. firstChild Node 指向子結(jié)點(diǎn)結(jié)合中的第一個(gè)子結(jié)點(diǎn)的引用  
  27. lastChild Node 指向子結(jié)點(diǎn)結(jié)合中的最后一個(gè)子結(jié)點(diǎn)的引用  
  28. previousSibling Node 指向前一個(gè)兄弟節(jié)點(diǎn);如果這個(gè)節(jié)點(diǎn)就是兄弟節(jié)點(diǎn),那么該值為null 
  29. nextSibling Node 指向后一個(gè)兄弟節(jié)點(diǎn);如果這個(gè)節(jié)點(diǎn)就是兄弟節(jié)點(diǎn),那么該值為null 

3.網(wǎng)上搜藏的一個(gè)map對(duì)象:

 

 
  1. function HashMap()  
  2. {  
  3. /** Map 大小 **/ 
  4. var size = 0;  
  5. /** 對(duì)象 **/ 
  6. var entry = new Object();  
  7. /** 存 **/ 
  8. this.put = function (key , value)  
  9. {  
  10. if(!this.containsKey(key))  
  11. {  
  12. size ++ ;  
  13. }  
  14. entry[key] = value;  
  15. }  
  16. /** 取 **/ 
  17. this.get = function (key)  
  18. {  
  19. return this.containsKey(key) ? entry[key] : null;  
  20. }  
  21. /** 刪除 **/ 
  22. this.remove = function ( key )  
  23. {  
  24. ifthis.containsKey(key) && ( delete entry[key] ) )  
  25. {  
  26. size --;  
  27. }  
  28. }  
  29. /** 是否包含 Key **/ 
  30. this.containsKey = function ( key )  
  31. {  
  32. return (key in entry);  
  33. }  
  34. /** 是否包含 Value **/ 
  35. this.containsValue = function ( value )  
  36. {  
  37. for(var prop in entry)  
  38. {  
  39. if(entry[prop] == value)  
  40. {  
  41. return true;  
  42. }  
  43. }  
  44. return false;  
  45. }  
  46. /** 所有 Value **/ 
  47. this.values = function ()  
  48. {  
  49. var values = new Array();  
  50. for(var prop in entry)  
  51. {  
  52. values.push(entry[prop]);  
  53. }  
  54. return values;  
  55. }  
  56. /** 所有 Key **/ 
  57. this.keys = function ()  
  58. {  
  59. var keys = new Array();  
  60. for(var prop in entry)  
  61. {  
  62. keys.push(prop);  
  63. }  
  64. return keys;  
  65.  
  66. }  
  67. /** Map Size **/ 
  68. this.size = function ()  
  69. {  
  70. return size;  
  71. }  
  72. /* 清空 */ 
  73. this.clear = function ()  
  74. {  
  75. size = 0;  
  76. entry = new Object();  
  77. }  
  78. }  
  79. var map = new HashMap();  
  80. /*  
  81. map.put("A","1");  
  82. map.put("B","2");  
  83. map.put("A","5");  
  84. map.put("C","3");  
  85. map.put("A","4");  
  86. */ 
  87. /*  
  88. alert(map.containsKey("XX"));  
  89. alert(map.size());  
  90. alert(map.get("A"));  
  91. alert(map.get("XX"));  
  92. map.remove("A");  
  93. alert(map.size());  
  94. alert(map.get("A"));  
  95. */ 
  96. /** 同時(shí)也可以把對(duì)象作為 Key **/ 
  97. /*  
  98. var arrayKey = new Array("1","2","3","4");  
  99. var arrayValue = new Array("A","B","C","D");  
  100. map.put(arrayKey,arrayValue);  
  101. var value = map.get(arrayKey);  
  102. for(var i = 0 ; i < value.length ; i++)  
  103.  
  104. //alert(value[i]);  
  105.  
  106. */ 
  107. /** 把對(duì)象做為Key時(shí) ,自動(dòng)調(diào)用了該對(duì)象的 toString() 方法 其實(shí)最終還是以String對(duì)象為Key**/ 
  108. /** 如果是自定義對(duì)象 那自己得重寫(xiě) toString() 方法 否則 . 就是下面的結(jié)果 **/ 
  109. function MyObject(name)  
  110. {  
  111. this.name = name;  
  112. }  
  113. /**  
  114. function MyObject(name)  
  115.  
  116. this.name = name;  
  117. this.toString = function ()  
  118.  
  119. return this.name;  
  120.  
  121.  
  122. **/ 
  123. var object1 = new MyObject("小張");  
  124. var object2 = new MyObject("小名");  
  125. map.put(object1,"小張");  
  126. map.put(object2,"小名");  
  127. alert(map.get(object1));  
  128. alert(map.get(object2));  
  129. map.remove("xxxxx");  
  130. alert(map.size());  
  131. /** 運(yùn)行結(jié)果 小名 小名 size = 1 **/ 
  132. /** 如果改成復(fù)寫(xiě)toString()方法的對(duì)象 , 效果就完全不一樣了 **/ 

4.常用的數(shù)字函數(shù)

 

 
  1. //·數(shù)字型(Number)  
  2. //1.聲明  
  3. var i = 1;  
  4. var i = new Number(1);  
  5. //2.字符串與數(shù)字間的轉(zhuǎn)換  
  6. var i = 1;  
  7. var str = i.toString(); //結(jié)果: "1"  
  8. var str = new String(i); //結(jié)果: "1"  
  9. i = parseInt(str); //結(jié)果: 1  
  10. i = parseFloat(str); //結(jié)果: 1.0  
  11. //注意: parseInt,parseFloat會(huì)把一個(gè)類似于"32G"的字符串,強(qiáng)制轉(zhuǎn)換成32  
  12. //3.判斷是否為有效的數(shù)字  
  13. var i = 123; var str = "string";  
  14. iftypeof i == "number" ){ } //true  
  15. //某些方法(如:parseInt,parseFloat)會(huì)返回一個(gè)特殊的值NaN(Not a Number)  
  16. //請(qǐng)注意第2點(diǎn)中的[注意],此方法不完全適合判斷一個(gè)字符串是否是數(shù)字型!!  
  17. i = parseInt(str);  
  18. if( isNaN(i) ){ }  
  19. //4.數(shù)字型比較  
  20. //此知識(shí)與[字符串比較]相同  
  21. ///5.小數(shù)轉(zhuǎn)整數(shù)  
  22. var f = 1.5;  
  23. var i = Math.round(f); //結(jié)果:2 (四舍五入)  
  24. var i = Math.ceil(f); //結(jié)果:2 (返回大于f的最小整數(shù))  
  25. var i = Math.floor(f); //結(jié)果:1 (返回小于f的最大整數(shù))  
  26. //6.格式化顯示數(shù)字  
  27. var i = 3.14159;  
  28. //格式化為兩位小數(shù)的浮點(diǎn)數(shù)  
  29. var str = i.toFixed(2); //結(jié)果: "3.14"  
  30. //格式化為五位數(shù)字的浮點(diǎn)數(shù)(從左到右五位數(shù)字,不夠補(bǔ)零)  
  31. var str = i.toPrecision(5); //結(jié)果: "3.1415"  
  32. //7.X進(jìn)制數(shù)字的轉(zhuǎn)換  
  33. //不是很懂 -.-  
  34. var i = parseInt("0x1f",16);  
  35. var i = parseInt(i,10);  
  36. var i = parseInt("11010011",2);  
  37. //8.隨機(jī)數(shù)  
  38. //返回0-1之間的任意小數(shù)  
  39. var rnd = Math.random();  
  40. //返回0-n之間的任意整數(shù)(不包括n)  
  41. var rnd = Math.floor(Math.random() * n)  

5.網(wǎng)上搜藏的js堆棧:

 

 
  1. function stack(){  
  2. if(this.top==undefined){  
  3. //初始化堆棧的頂部指針和數(shù)據(jù)存放域  
  4. this.top=0;  
  5. this.unit=new Array();  
  6. }  
  7. this.push=function(pushvalue){  
  8. //定義壓入堆棧的方法  
  9. this.unit[this.top]=pushvalue;  
  10. this.top+=1;  
  11. }  
  12. this.readAllElements=function(){  
  13. //定義讀取所有數(shù)據(jù)的方法  
  14. if(this.top==0){  
  15. alert("當(dāng)前棧空,無(wú)法讀取數(shù)據(jù)");  
  16. return("");  
  17. }  
  18. var count=0;  
  19. var outStr="";  
  20. for(count=0;count<this.top;count++){  
  21. outStr+=this.unit[count]+",";  
  22. }  
  23. return(outStr);  
  24. }  
  25. this.pop=function(){  
  26. //定義彈出堆棧的方法  
  27. if(this.top==0){  
  28. alert("當(dāng)前棧空,無(wú)法彈出數(shù)據(jù)");  
  29. return("");  
  30. }  
  31. var popTo=this.unit[this.top-1];  
  32. this.top--;  
  33. return(popTo);  
  34. /* 從堆棧彈出數(shù)據(jù),頂部指針減一,不過(guò)這里沒(méi)有做到資源的釋放,也  
  35. 就是說(shuō)數(shù)據(jù)仍然存在于this.unit的數(shù)組中,只不過(guò)無(wú)法訪問(wèn)罷了。目前  
  36. 我也沒(méi)想到好的辦法解決。*/ 
  37. }  
  38. }  

6.最常用的JavaScript日期函數(shù):

 

 
  1. //·日期型(Date)  
  2. //1.聲明  
  3. var myDate = new Date(); //系統(tǒng)當(dāng)前時(shí)間  
  4. var myDate = new Date(yyyy, mm, dd, hh, mm, ss);  
  5. var myDate = new Date(yyyy, mm, dd);  
  6. var myDate = new Date("monthName dd, yyyy hh:mm:ss");  
  7. var myDate = new Date("monthName dd, yyyy");  
  8. var myDate = new Date(epochMilliseconds);  
  9. //2.獲取時(shí)間的某部份  
  10. var myDate = new Date();  
  11. myDate.getYear(); //獲取當(dāng)前年份(2位)  
  12. myDate.getFullYear(); //獲取完整的年份(4位,1970-????)  
  13. myDate.getMonth(); //獲取當(dāng)前月份(0-11,0代表1月)  
  14. myDate.getDate(); //獲取當(dāng)前日(1-31)  
  15. myDate.getDay(); //獲取當(dāng)前星期X(0-6,0代表星期天)  
  16. myDate.getTime(); //獲取當(dāng)前時(shí)間(從1970.1.1開(kāi)始的毫秒數(shù)) 時(shí)間戳!!  
  17. myDate.getHours(); //獲取當(dāng)前小時(shí)數(shù)(0-23)  
  18. myDate.getMinutes(); //獲取當(dāng)前分鐘數(shù)(0-59)  
  19. myDate.getSeconds(); //獲取當(dāng)前秒數(shù)(0-59)  
  20. myDate.getMilliseconds(); //獲取當(dāng)前毫秒數(shù)(0-999)  
  21. myDate.toLocaleDateString(); //獲取當(dāng)前日期  
  22. myDate.toLocaleTimeString(); //獲取當(dāng)前時(shí)間  
  23. myDate.toLocaleString( ); //獲取日期與時(shí)間  
  24. //3.計(jì)算之前或未來(lái)的時(shí)間  
  25. var myDate = new Date();  
  26. myDate.setDate(myDate.getDate() + 10); //當(dāng)前時(shí)間加10天  
  27. //類似的方法都基本相同,以set開(kāi)頭,具體參考第2點(diǎn)  
  28. //4.計(jì)算兩個(gè)日期的偏移量  
  29. var i = daysBetween(beginDate,endDate); //返回天數(shù)  
  30. var i = beginDate.getTimezoneOffset(endDate); //返回分鐘數(shù)  
  31. //5.檢查有效日期  
  32. //checkDate() 只允許"mm-dd-yyyy"或"mm/dd/yyyy"兩種格式的日期  
  33. if( checkDate("2006-01-01") ){ }  
  34. //正則表達(dá)式(自己寫(xiě)的檢查 yyyy-mm-dd, yy-mm-dd, yyyy/mm/dd, yy/mm/dd 四種)  
  35. var r = /^(/d{2}|/d{4})[//-]/d{1,2}[//-]/d{1,2}$/;  
  36. if( r.test( myString ) ){ }  

7.最常用字符串函數(shù)API:

 

 
  1. //·字符串(String)  
  2. //1.聲明  
  3. var myString = new String("Every good boy does fine.");  
  4. var myString = "Every good boy does fine.";  
  5. //2.字符串連接  
  6. var myString = "Every " + "good boy " + "does fine.";  
  7. var myString = "Every "; myString += "good boy does fine.";  
  8. //3.截取字符串  
  9. //截取第 6 位開(kāi)始的字符  
  10. var myString = "Every good boy does fine.";  
  11. var section = myString.substring(6); //結(jié)果: "good boy does fine."  
  12. //截取第 0 位開(kāi)始至第 10 位為止的字符  
  13. var myString = "Every good boy does fine.";  
  14. var section = myString.substring(0,10); //結(jié)果: "Every good"  
  15. //截取從第 11 位到倒數(shù)第 6 位為止的字符  
  16. var myString = "Every good boy does fine.";  
  17. var section = myString.slice(11,-6); //結(jié)果: "boy does"  
  18. //從第 6 位開(kāi)始截取長(zhǎng)度為 4 的字符  
  19. var myString = "Every good boy does fine.";  
  20. var section = myString.substr(6,4); //結(jié)果: "good"  
  21. //4.轉(zhuǎn)換大小寫(xiě)  
  22. var myString = "Hello";  
  23. var lcString = myString.toLowerCase(); //結(jié)果: "hello"  
  24. var ucString = myString.toUpperCase(); //結(jié)果: "HELLO"  
  25. //5.字符串比較  
  26. var aString = "Hello!";  
  27. var bString = new String("Hello!");  
  28. if( aString == "Hello!" ){ } //結(jié)果: true  
  29. if( aString == bString ){ } //結(jié)果: true  
  30. if( aString === bString ){ } //結(jié)果: false (兩個(gè)對(duì)象不同,盡管它們的值相同)  
  31. //6.檢索字符串  
  32. var myString = "hello everybody.";  
  33. // 如果檢索不到會(huì)返回-1,檢索到的話返回在該串中的起始位置  
  34. if( myString.indexOf("every") > -1 ){ } //結(jié)果: true  
  35. ////7.查找替換字符串  
  36. var myString = "I is your father.";  
  37. var result = myString.replace("is","am"); //結(jié)果: "I am your father."  
  38. //8.特殊字符:  
  39. ///b : 后退符 /t : 水平制表符  
  40. ///n : 換行符 /v : 垂直制表符  
  41. ///f : 分頁(yè)符 /r : 回車符  
  42. ///" : 雙引號(hào) /' : 單引號(hào)  
  43. //// : 反斜桿  
  44. //9.將字符轉(zhuǎn)換成Unicode編碼  
  45. var myString = "hello";  
  46. var code = myString.charCodeAt(3); //返回"l"的Unicode編碼(整型)  
  47. var char = String.fromCharCode(66); //返回Unicode為66的字符  
  48. //10.將字符串轉(zhuǎn)換成URL編碼  
  49. var myString = "hello all";  
  50. var code = encodeURI(myString); //結(jié)果: "hello%20all"  
  51. var str = decodeURI(code); //結(jié)果: "hello all"  
  52. //相應(yīng)的還有: encodeURIComponent() decodeURIComponent()  

8.數(shù)學(xué)函數(shù):

 

 
  1. ·Math對(duì)象  
  2. 1. Math.abs(num) : 返回num的絕對(duì)值  
  3. 2. Math.acos(num) : 返回num的反余弦值  
  4. 3. Math.asin(num) : 返回num的反正弦值  
  5. 4. Math.atan(num) : 返回num的反正切值  
  6. 5. Math.atan2(y,x) : 返回y除以x的商的反正切值  
  7. 6. Math.ceil(num) : 返回大于num的最小整數(shù)  
  8. 7. Math.cos(num) : 返回num的余弦值  
  9. 8. Math.exp(x) : 返回以自然數(shù)為底,x次冪的數(shù)  
  10. 9. Math.floor(num) : 返回小于num的最大整數(shù)  
  11. 10.Math.log(num) : 返回num的自然對(duì)數(shù)  
  12. 11.Math.max(num1,num2) : 返回num1和num2中較大的一個(gè)  
  13. 12.Math.min(num1,num2) : 返回num1和num2中較小的一個(gè)  
  14. 13.Math.pow(x,y) : 返回x的y次方的值  
  15. 14.Math.random() : 返回0到1之間的一個(gè)隨機(jī)數(shù)  
  16. 15.Math.round(num) : 返回num四舍五入后的值  
  17. 16.Math.sin(num) : 返回num的正弦值  
  18. 17.Math.sqrt(num) : 返回num的平方根  
  19. 18.Math.tan(num) : 返回num的正切值  
  20. 19.Math.E : 自然數(shù)(2.718281828459045)  
  21. 20.Math.LN2 : 2的自然對(duì)數(shù)(0.6931471805599453)  
  22. 21.Math.LN10 : 10的自然對(duì)數(shù)(2.302585092994046)  
  23. 22.Math.LOG2E : log 2 為底的自然數(shù)(1.4426950408889634)  
  24. 23.Math.LOG10E : log 10 為底的自然數(shù)(0.4342944819032518)  
  25. 24.Math.PI : π(3.141592653589793)  
  26. 25.Math.SQRT1_2 : 1/2的平方根(0.7071067811865476)  
  27. 26.Math.SQRT2 : 2的平方根(1.4142135623730951)  

9.瀏覽器特征函數(shù):

 

 
  1. //1.瀏覽器名稱  
  2. //IE : "Microsoft Internet Explorer"  
  3. //NS : "Netscape"  
  4. var browserName = navigator.appName;  
  5. //2.瀏覽器版本  
  6. var browserVersion = navigator.appVersion;  
  7. //3.客戶端操作系統(tǒng)  
  8. var isWin = ( navigator.userAgent.indexOf("Win") != -1 );  
  9. var isMac = ( navigator.userAgent.indexOf("Mac") != -1 );  
  10. var isUnix = ( navigator.userAgent.indexOf("X11") != -1 );  
  11. //4.判斷是否支持某對(duì)象,方法,屬性  
  12. //當(dāng)一個(gè)對(duì)象,方法,屬性未定義時(shí)會(huì)返回undefined或null等,這些特殊值都是false  
  13. if( document.images ){ }  
  14. if( document.getElementById ){ }  
  15. //5.檢查瀏覽器當(dāng)前語(yǔ)言  
  16. if( navigator.userLanguage ){ var l = navigator.userLanguage.toUpperCase(); }  
  17. //6.檢查瀏覽器是否支持Cookies  
  18. if( navigator.cookieEnabled ){ }  

10.JavaScript面向?qū)ο蟮姆椒▽?shí)現(xiàn)繼承:call方法

 

 
  1. // 動(dòng)物類 animal  
  2. function animal(bSex){  
  3. this.sex = bSex  
  4. this.getSex = function(){  
  5. return this.sex  
  6. }  
  7. }  
  8. // 類靜態(tài)變量 (如果你不修改它的話~~)  
  9. animal.SEX_G = new Object(); // 雌性  
  10. animal.SEX_B = new Object(); // 雄性  
  11. // 動(dòng)物子類 鳥(niǎo)  
  12. function bird(bSex){  
  13. animal.call(this, bSex);  
  14. this.fly = function(iSpeed){  
  15. alert("飛行時(shí)速高達(dá) " + iSpeed);  
  16. }  
  17. }  
  18. // 動(dòng)物子類 魚(yú)  
  19. function fish(bSex){  
  20. animal.call(this, bSex);  
  21. this.swim = function(iSpeed){  
  22. alert("游動(dòng)時(shí)速高達(dá) " + iSpeed)  
  23. }  
  24. }  
  25. // 魚(yú) 鳥(niǎo) 雜交品種。。。  
  26. function crossBF(bSex){  
  27. bird.call(this, bSex);  
  28. fish.call(this, bSex);  
  29. }  
  30. var oPet = new crossBF(animal.SEX_G); // 雌性 魚(yú)鳥(niǎo)  
  31. alert(oPet.getSex() == animal.SEX_G ? "雌性" : "雄性");  
  32. oPet.fly(124)  
  33. oPet.swim(254)  

11.用面向?qū)ο蟮木幊谭绞綄?xiě)JavaScript:

 

 
  1. MyTool = new function(){  
  2. /**  
  3. * 返回非空字符串,如果有默認(rèn)值就返回默認(rèn)字符串.  
  4. */ 
  5. this.notNull = function(str,defaultStr){  
  6. if(typeof(str)=="undefined"||str==null||str==''){  
  7. if(defaultStr)  
  8. return defaultStr;  
  9. else 
  10. return '';  
  11. }  
  12. else{  
  13. return str;  
  14. }  
  15. }  
  16. }  
  17. rootId = MyTool.notNull(rootId,'001000');  

12.常用的js方法,

包括表單校驗(yàn)的一些方法,下拉菜單常用的方法等等:

 

 
  1. /**  
  2. * 對(duì)JSON對(duì)象轉(zhuǎn)換為字符串.  
  3. * @param {json對(duì)象} json  
  4. * @return {json字符串}  
  5. */ 
  6. function jsonObj2Str(json) {  
  7. var str = "{";  
  8. for (prop in json) {  
  9. str += prop + ":" + json[prop] + ",";  
  10. }  
  11. str = str.substr(0, str.length - 1);  
  12. str += "}";  
  13. return str;  
  14. }  
  15. /**  
  16. * 將json字符串轉(zhuǎn)換為json對(duì)象.  
  17. * @param {json字符串} jsonstr  
  18. * @return {json對(duì)象}  
  19. */ 
  20. function jsonStr2Obj(jsonstr) {  
  21. return eval("("+jsonstr+")");  
  22. }  
  23. /**  
  24. * 得到一個(gè)元素的left坐標(biāo)值.  
  25. * @param {dom對(duì)象} obj  
  26. * @return {位置值}  
  27. */ 
  28. function getLeft(obj){  
  29. var offset=e.offsetLeft;  
  30. if(e.offsetParent!=null) offset+=getLeft(e.offsetParent);  
  31. return offset;  
  32. }  
  33. /**  
  34. * 得到一個(gè)元素的絕對(duì)位置的top坐標(biāo)值.  
  35. * @param {dom對(duì)象} obj  
  36. * @return {位置值}  
  37. */ 
  38. function getTop(obj){  
  39. var offset=e.offsetTop;  
  40. if(e.offsetParent!=null) offset+=getTop(e.offsetParent);  
  41. return offset;  
  42. }  
  43. /**  
  44. * 刪除一個(gè)字符串的左右空格.  
  45. * @param {原始字符串} str  
  46. * @return {刪除空格之后的字符串}  
  47. */ 
  48. function trim(str)  
  49. {  
  50. return str.replace(/(^/s*)|(/s*$)/g,"");  
  51. }  
  52. /**  
  53. * 根據(jù)id取出一個(gè)元素.  
  54. * @param {元素id值} str  
  55. * @return {dom對(duì)象}  
  56. */ 
  57. function $(str) {  
  58. return document.getElementById(str);  
  59. }  
  60. /**  
  61. * 按name獲取一個(gè)對(duì)象.  
  62. * @param {元素name值} str  
  63. * @return {根據(jù)name返回的第一個(gè)對(duì)象}  
  64. */ 
  65. function $byName(str) {  
  66. var arr = document.getElementsByName(str);  
  67. if (arr)  
  68. return arr[0];  
  69. else 
  70. return null;  
  71. }  
  72. /***************以下方法和表單驗(yàn)證相關(guān)*************************************************/ 
  73. /**  
  74. * 返回非空字符串,如果有默認(rèn)值就返回默認(rèn)字符串.  
  75. * @param {要進(jìn)行轉(zhuǎn)換的原字符串} str  
  76. * @param {默認(rèn)值} defaultStr  
  77. * @return {返回結(jié)果}  
  78. */ 
  79. function notNull(str, defaultStr) {  
  80. if (typeof(str) == "undefined" || str == null || str == '') {  
  81. if (defaultStr)  
  82. return defaultStr;  
  83. else 
  84. return '';  
  85. else {  
  86. return str;  
  87. }  
  88. }  
  89. /**  
  90. * 比較兩個(gè)日期大小.  
  91. * @param {較小日期的文本框id} smallDate  
  92. * @param {較大日期的文本框id} bigDate  
  93. * @param {出錯(cuò)的提示信息} msg  
  94. */ 
  95. function compareTwoDate(smallDate, bigDate, msg) {  
  96. var v1 = $(smallDate).value;  
  97. var v2 = $(bigDate).value;  
  98. if (v1 >= v2) {  
  99. alert(msg);  
  100. v2.focus();  
  101. return false;  
  102. }  
  103. return true;  
  104. }  
  105. /**  
  106. * 比較兩個(gè)金額大小的方法.  
  107. * @param {較小的金額} smallNum  
  108. * @param {較大的金額} bigNum  
  109. * @param {出錯(cuò)提示信息} msg  
  110. * @return {Boolean}  
  111. */ 
  112. function compareTwoNum(smallNum, bigNum, msg) {  
  113. var v1 = $(smallNum).value;  
  114. var v2 = $(bigNum).value;  
  115. if (parseFloat(v1) >= parseFloat(v2)) {  
  116. alert(msg);  
  117. v2.focus();  
  118. return false;  
  119. }  
  120. return true;  
  121. }  
  122. /**  
  123. * 檢查文本框的長(zhǎng)度是否超出指定長(zhǎng)度.  
  124. * @param {文本id} textId  
  125. * @param {文本框的最大長(zhǎng)度} len  
  126. * @param {文本框描述內(nèi)容} msg  
  127. * @return {有錯(cuò)就返回false,否則返回true}  
  128. */ 
  129. function checkLength(textId, len, msg) {  
  130. obj = $(textId);  
  131. str = obj.value;  
  132. str = str.replace(/[^/x00-/xff]/g, "**");  
  133. realLen = str.length;  
  134. if (realLen > len) {  
  135. alert("[" + msg + "]" + "長(zhǎng)度最大為" + len + "位," + "請(qǐng)重新輸入!/n注意:一個(gè)漢字占2位。");  
  136. obj.focus();  
  137. return false;  
  138. else 
  139. return true;  
  140. }  
  141. /**  
  142. * 判斷某個(gè)文本框不可以為空.  
  143. * @param {文本框id} textId  
  144. * @param {文本框描述內(nèi)容} msg  
  145. * @return {有錯(cuò)就返回false,否則返回true}  
  146. */ 
  147. function checkIfEmpty(textId, msg) {  
  148. var textObj = $(textId);  
  149. var textValue = textObj.value;  
  150. if (trim(textValue) == '') {  
  151. alert('[' + msg + ']不得為空!');  
  152. textObj.focus();  
  153. return false;  
  154. else {  
  155. return true;  
  156. }  
  157. }  
  158. /**  
  159. * 判斷指定文本框內(nèi)容必須為郵件.  
  160. * @param {文本框id} textId  
  161. * @param {文本框描述} msg  
  162. * @return {如果是郵件內(nèi)容就返回true否則返回false}  
  163. */ 
  164. function checkIsMail(textId, msg) {  
  165. var obj = $(textId);  
  166. if (!_isEmail(obj.value)) {  
  167. alert('[' + msg + ']不是合法的郵件地址!');  
  168. obj.focus();  
  169. return false;  
  170. else 
  171. return true;  
  172. }  
  173. /**  
  174. * 驗(yàn)證是不是郵件.  
  175. * @param {要驗(yàn)證的字符串} strEmail  
  176. * @return {Boolean}  
  177. */ 
  178. function _isEmail(strEmail) {  
  179. //接下來(lái)的驗(yàn)證是否有兩個(gè)以上的‘.'號(hào),有的話就是錯(cuò)的!  
  180. var first = strEmail.indexOf('.');  
  181. if (strEmail.indexOf('@')== -1) {  
  182. return false;  
  183. }  
  184. var tempStr = strEmail.substring(first + 1);  
  185. if (tempStr.indexOf('.') != -1) {  
  186. return false;  
  187. }  
  188. if (strEmail  
  189. .search(/^/w+((-/w+)|(/./w+))*/@[A-Za-z0-9]+((/.|-)[A-Za-z0-9]+)*/.[A-Za-z0-9]+$/) != -1) {  
  190. return true;  
  191. else  
  192. return false;  
  193. }  
  194. /**  
  195. * 判斷某個(gè)文本框是否數(shù)字.  
  196. * @param {文本框id} textId  
  197. * @param {文本框描述內(nèi)容} msg  
  198. * @return {Boolean}  
  199. */  
  200. function checkIsNum(textId, msg) {  
  201. obj = $(textId);  
  202. if (isNaN(obj.value)) {  
  203. alert('[' + msg + ']必須為數(shù)字。');  
  204. obj.focus();  
  205. return false;  
  206. else  
  207. return true;  
  208. }  
  209. /**  
  210. * 判斷某個(gè)文本框是否含有非法字符.  
  211. * @param {文本框的id} textId  
  212. * @param {文本框描述內(nèi)容} msg  
  213. * @return {有錯(cuò)就返回false否則返回true}  
  214. */  
  215. function checkIsValid(textId, msg) {  
  216. obj = $(textId);  
  217. if (!_isValidString(obj.value, '[' + msg + ']不得含有非法字符。')) {  
  218. obj.focus();  
  219. return false;  
  220. }  
  221. return true;  
  222. }  
  223. /**  
  224. * 判斷是不是合法字符串.  
  225. * @param {要進(jìn)行判斷的字符串} szStr  
  226. * @param {文本描述} errMsg  
  227. * @return {合法則返回true否則返回false}  
  228. */  
  229. function _isValidString(szStr,errMsg) {  
  230. voidChar = "'/"><`~!@#$%^&/(/)()!¥……??“”‘'*";  
  231. for (var i = 0; i < voidChar.length; i++) {  
  232. aChar = voidChar.substring(i, i + 1);  
  233. if (szStr.indexOf(aChar) > -1){  
  234. alert(errMsg)  
  235. return false;  
  236. }  
  237. }  
  238. return true;  
  239. }  
  240. /*************** 以下方法和下拉菜單相關(guān)*************************************************/ 
  241. /**  
  242. * 控制下拉菜單不可以為-1(未選擇情況value=-1)  
  243. * @param {下拉菜單id} selectId  
  244. * @param {下拉菜單描述內(nèi)容} msg  
  245. * @param {下拉菜單的空值對(duì)應(yīng)的value,默認(rèn)為-1} nullValue  
  246. * @return {Boolean}  
  247. */ 
  248. function checkChooseSelect(selectId, msg ,nullValue) {  
  249. var obj = $(selectId);  
  250. if (obj.value == notNull(nullValue,'-1')) {  
  251. alert('[' + msg + ']必選!');  
  252. obj.focus();  
  253. return false;  
  254. else  
  255. return true;  
  256. }  
  257. /**  
  258. * 得到下拉菜單的顯示的文字.  
  259. * @param {下拉菜單dom對(duì)象} selectObj  
  260. * @return {返回下拉菜單的顯示的"文本"}  
  261. */  
  262. function getSelectText(selectObj) {  
  263. return selectObj.options[selectObj.selectedIndex].text;  
  264. }  
  265. /**  
  266. * 得到下拉菜單的顯示的值.  
  267. * @param {下拉菜單dom對(duì)象} selectObj  
  268. * @return {得到下拉菜單的顯示的"值"}  
  269. */  
  270. function getSelectValue(selectObj) {  
  271. return selectObj.options[selectObj.selectedIndex].value;  
  272. }  
  273. /**  
  274. * 設(shè)置下拉菜單的選擇狀態(tài)到指定的值.  
  275. * @param {下拉菜單對(duì)象} obj  
  276. * @param {要選擇的值} value  
  277. */  
  278. function setSelectValue(obj, value) {  
  279. /*for (i = obj.options.length - 1; i >= 0; i--) {  
  280. if (obj.options[i].value == value) {  
  281. obj.options[i].selected = true;  
  282. return;  
  283.  
  284.  
  285. */  
  286. obj.value= value;  
  287. }  
  288. /**  
  289. * 根據(jù)鍵值串的內(nèi)容進(jìn)行下拉菜單的動(dòng)態(tài)組裝  
  290. * @param {要進(jìn)行下拉菜單組裝的dom對(duì)象} obj  
  291. * @param {鍵值對(duì)用,和;分割,例如'1,男;2,女;3,未知'} valAndText  
  292. */  
  293. function setSelectContent(obj,valAndText){  
  294. if(trim(valAndText)==''){  
  295. alert('沒(méi)有要進(jìn)行組裝下拉菜單的數(shù)據(jù)!');  
  296. return false;  
  297. }  
  298. clearSelect(obj);  
  299. var keyandvalues = valAndText.split(';');  
  300. for(var i=0;i<keyandvalues.length;i++){  
  301. var arr = keyandvalues[i].split(',');  
  302. if(arr){  
  303. var value =arr[0];  
  304. var text =arr[1];  
  305. var objOption = new Option(text,value);  
  306. obj.add(objOption);  
  307. }  
  308. }  
  309. }  
  310. /**  
  311. * 清空下拉菜單里面的內(nèi)容.  
  312. * @param {下拉菜單對(duì)象} obj  
  313. */  
  314. function clearSelect(obj) {  
  315. for (var i=obj.options.length; i >0; i--) {  
  316. obj.remove(0);  
  317. }  
  318. }  
  319. /*************** 以下方法和多選框相關(guān)*************************************************/  
  320. /**  
  321. * 返回選中的checks的id組成的字符串,逗號(hào)隔開(kāi).  
  322. * @param {checks數(shù)組} checks  
  323. * @return 選擇的id組成的字符串  
  324. */  
  325. function getCheckedIds(checks){  
  326. var selectedValue = '';  
  327. var len = checks.length;  
  328. for(var index=0; index<len; index++) {  
  329. if(checks[index].checked==true) {  
  330. selectedValue += checks[index].value+",";  
  331. }  
  332. }  
  333. if(selectedValue.length>0)  
  334. return selectedValue.substring(0,selectedValue.length-1);  
  335. return selectedValue;  
  336. }  

下面的代碼放到html標(biāo)簽里,并在head里調(diào)用上面的js:

 

 
  1. <HEAD> 
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  3. <!--<<<<<<<<<<<調(diào)用上面的js>>>>>>>>>--> 
  4. </HEAD> 
  5. <SCRIPT LANGUAGE="JavaScript">  
  6. <!--  
  7. /**  
  8. * 表單驗(yàn)證的示例js方法.  
  9. */ 
  10. function check(){  
  11. if(checkIfEmpty('a','非空校驗(yàn)')  
  12. &&checkIsMail('b','郵箱校驗(yàn)')  
  13. &&checkIsNum('c','數(shù)字校驗(yàn)')  
  14. &&checkIsValid('d','合法性校驗(yàn)')  
  15. &&compareTwoDate('e','f','小日期與大日期關(guān)系錯(cuò)誤!')  
  16. &&checkLength('g',5,'長(zhǎng)度校驗(yàn)')  
  17. &&checkChooseSelect('h','下拉菜單非空','-1')  
  18. &&compareTwoNum('k','l','大小數(shù)目關(guān)系不正確!')){  
  19. alert('校驗(yàn)通過(guò)!');  
  20. return true;  
  21. }else{  
  22. return false;  
  23. }  
  24. }  
  25. /**  
  26. * 取下拉菜單的值和文本的示例js方法.  
  27. */ 
  28. function getSelect(){  
  29. var sss = $('h');  
  30. alert('下拉菜單選擇的文本是:'+getSelectText(sss)+'/n' 
  31. +'下拉菜單選擇的值是:'+getSelectValue(sss));  
  32. }  
  33. /**  
  34. * 根據(jù)鍵值字符串設(shè)置下拉菜單的顯示內(nèi)容.  
  35. */ 
  36. function setSelect(){  
  37. var sss = $('i').value;  
  38. setSelectContent($('h'),sss);  
  39. }  
  40. /**  
  41. * 返回多選框數(shù)組選擇狀態(tài)的id的字符串,結(jié)果以逗號(hào)隔開(kāi).  
  42. */ 
  43. function getMulti(){  
  44. alert('多選選擇的id是:'+getCheckedIds(document.getElementsByName('j')));  
  45. }  
  46. //-->  
  47. </SCRIPT> 
  48. <BODY> 
  49. <table> 
  50. <tr> 
  51. <td> 非空: 
  52. <input id='a'></td> 
  53. <td> checkIfEmpty('a','非空校驗(yàn)') </td> 
  54. </tr> 
  55. <tr> 
  56. <td> 郵箱: 
  57. <input id='b' value='[email protected]'></td> 
  58. <td> checkIsMail('b','郵箱校驗(yàn)') </td> 
  59. </tr> 
  60. <tr> 
  61. <td> 數(shù)字: 
  62. <input id='c' value='aaaa'></td> 
  63. <td> checkIsNum('c','數(shù)字校驗(yàn)') </td> 
  64. </tr> 
  65. <tr> 
  66. <td> 合法字符: 
  67. <input id='d' value='@$@$#$#!%%#'></td> 
  68. <td> checkIsValid('d','合法性校驗(yàn)') </td> 
  69. </tr> 
  70. <tr> 
  71. <td> 小的日期: 
  72. <input id='e' value='2010-1-1'
  73. 大的日期: 
  74. <input id='f' value='2011-1-1'></td> 
  75. <td> compareTwoDate('e','f','小日期與大日期關(guān)系錯(cuò)誤!') </td> 
  76. </tr> 
  77. <tr> 
  78. <td> 小的數(shù): 
  79. <input id='k' value='12.3'
  80. 大的數(shù): 
  81. <input id='l' value='4564'></td> 
  82. <td> compareTwoNum('k','l','大小數(shù)目關(guān)系不正確!') </td> 
  83. </tr> 
  84. <tr> 
  85. <td> 字符長(zhǎng)度校驗(yàn)(<5): 
  86. <input id='g'></td> 
  87. <td> checkLength('g',5,'長(zhǎng)度校驗(yàn)') </td> 
  88. </tr> 
  89. <tr> 
  90. <td> 下拉菜單非空校驗(yàn): 
  91. <select id='h'
  92. <option value='-1'> 請(qǐng)選擇 </option> 
  93. <option value='1'> 立項(xiàng) </option> 
  94. <option value='2'> 可研 </option> 
  95. </select></td> 
  96. <td> checkChooseSelect('h','下拉菜單非空','-1') </td> 
  97. </tr> 
  98. <tr> 
  99. <td colspan='2'><button onclick='check()'> 測(cè)試表單校驗(yàn)方法 </button></td> 
  100. </tr> 
  101. <tr> 
  102. <td><button onclick='getSelect()'> 得到下拉菜單的值 </button></td> 
  103. <td> getSelectText(sss)和getSelectValue(sss) </td> 
  104. </tr> 
  105. <tr> 
  106. <td> 輸入下拉菜單的鍵值字符串(如右所示) 
  107. <input id='i' value='1,男;2,女;3,未知'
  108. <button onclick='setSelect()'> 設(shè)置下拉菜單的值 </button></td> 
  109. <td> setSelectContent($('h'),sss) </td> 
  110. </tr> 
  111. <tr> 
  112. <td><input type='checkbox' name='j' value='aaa1'
  113. <input type='checkbox' name='j' value='aaa2'
  114. <input type='checkbox' name='j' value='aaa3'
  115. <input type='checkbox' name='j' value='aaa4'
  116. <button onclick='getMulti()'> 得到多選選擇的id </button></td> 
  117. <td> getCheckedIds(document.getElementsByName('j')) </td> 
  118. </tr> 
  119. </table> 
  120. </BODY> 

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 国产人成免费爽爽爽视频 | 青青草国产在线视频 | 激情视频日韩 | 国产亚洲综合一区二区 | 中文字幕免费看 | 国产精品一区在线看 | 羞羞的视频在线观看 | av电影网在线观看 | 孕妇体内谢精满日本电影 | 538任你躁在线精品视频网站 | 欧美爱爱一区二区 | h网站在线观看 | 一级α片免费看 | 国产精品爱久久久久久久 | 精品久久久久久久久久久久久久 | 成人aaaaa片毛片按摩 | 美国人成人在线视频 | 亚洲精品一二三区 | 精品国产一区二区三区久久久蜜月 | 国内精品久久久久久久星辰影视 | 国产精品1区,2区,3区 | 免费在线观看一级片 | 国产日韩三区 | 九九热国产在线 | 日本xxxx色视频在线观看免费, | 黄视频网址 | 国产日产精品久久久久快鸭 | 国产二区三区在线播放 | 在线亚洲播放 | 国产精品久久久久久久久久10秀 | 亚洲免费毛片基地 | 久久久久久免费 | 青草av.久久免费一区 | 香蕉黄色网 | 免费国产在线视频 | 在线成人av观看 | 久久久精品视频免费看 | 国产成人自拍视频在线观看 | 中文字幕22页 | 玖草在线资源 | 最新毛片在线观看 |