18个常用的JavaScript代码

[javascript]  view plain  copy
  1. 一、取URL中的参数  
  2. function getParameterByName(name) { var match = RegExp('[?&]' + name + '=([^&]*)') .exec(window.location.search); return match && decodeURIComponent(match[1].replace(/\+/g, ' '));}  
  3.   
  4. 二、正则分组  
  5. var testStr="<div><img src='/a.jpg' alt='' /><span>test</span><img src='/b.jpg' alt='' /><span>TTest</span><img src='/c.png' alt='' /></div>";var reg=/<img\ssrc='(.*?)'\s+alt=''\s*\/>/g;var match=reg.exec(testStr),results=[];while(match != null){ results.push(match[1]); match=reg.exec(testStr);}console.log(results);/* Array ["/a.jpg", "/b.jpg", "/c.png"]*/  
  6.   
  7. 三、为什么parseInt(1/0,19)的结果为18  
  8.   
  9.   1/0的结果是Infinity,所以parseInt(1/0,19)等同于parseInt("Infinity",19),而在19进制中:  
  10. 19进制 10进制-------------------- 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 a 10 b 11 c 12 d 13 e 14 f 15 g 16 h 17 i 18  
  11.   
  12.   i表示18,所以parseInt(1/0,19)的结果为18。  
  13.   
  14. 四、jQuery中获取设置checkbox选中状态  
  15.   
  16.   由于在jQuery1.6以后.attr("checked")的返回结果是 checked,所以一般用下面两种方法获取选中状态:  
  17. $("#checkboxID").is(":checked");//jQuery 1.6 + $("#checkboxID").prop("checked");  
  18.   
  19.   选中checkbox:  
  20. //jQuery 1.6+ $("#checkboxID").prop("checked", true);$("#checkboxID").prop("checked", false);//jQuery 1.5 and below $('#checkboxID').attr('checked','checked')$('#checkboxID').removeAttr('checked')  
  21.   
  22. 五、jQuery中判断一个元素是否存在  
  23. if ($(selector).length)  
  24.   
  25. 六、用JavaScript对URL进行编码  
  26. var myUrl = "http://example.com/index.html?param=1&anotherParam=2";var myOtherUrl = "http://example.com/index.html?url=" + encodeURIComponent(myUrl);  
  27.   
  28. 七、jQuery中event.preventDefault() 与 return false 的区别  
  29. //Demo1 event.preventDefault() $('a').click(function (e) { // custom handling here e.preventDefault();});//Demo2 return false $('a').click(function () { // custom handling here return false;};  
  30.   
  31.   jQuery中return false相当于同时调用e.preventDefault 和 e.stopPropagation。  
  32.   
  33.   要注意的是,在原生js中,return false仅仅相当于调用了e.preventDefault。  
  34.   
  35. 八、JavaScript检查一个字符串是否为空最简单的方法  
  36. if (strValue) { //do something }  
  37.   
  38. 九、用JavaScript添加和删除class  
  39. //Add Class document.getElementById("MyElement").className += " MyClass";//Remove Class document.getElementById("MyElement").className = document.getElementById("MyElement").className.replace(/(?:^|\s)MyClass(?!\S)/,'');  
  40.   
  41. 十、在jQuery中取消一个ajax请求  
  42. var xhr = $.ajax({ type: "POST", url: "test.php", data: "name=test", success: function(msg){ alert( msg ); }});//取消请求 xhr.abort()  
  43.   
  44.   要注意的是,在ajax请求未响应之前可以用xhr.abort()取消,但如果请求已经到达了服务器端,这样做的结果仅仅是让浏览器不再监听这个请求的响应,但服务器端仍然会进行处理。  
  45.   
  46. 十一、JavaScript删除数组中的项 delete vs splice  
  47. var myArray=["a","b","c"];delete myArray[0];for(var i=0,j=myArray.length;i<j;i++){ console.log(myArray[i]); /* undefined b c */ }var myArray2=["a","b","c"];myArray2.splice(0,1);for(var i=0,j=myArray2.length;i<j;i++){ console.log(myArray2[i]); /* b c */ }  
  48.   
  49.   上面的代码已经说明区别了,一个是设置为undefined,一个是真正的删除了。  
  50.   
  51. 十二、JavaScript中16进制与10进制相互转换  
  52. var sHex=(255).toString(16);//ff var iNum=parseInt("ff",16);//255  
  53.   
  54. 十三、JavaScript多行字符串  
  55.   
  56.   如何在JavaScript中方便地写一个多行字符串呢,有三种方案,你自己选吧:  
  57. //one var testHtml="a"+"b"+"c";//two var testHtml2="a\b\c";//three var testHtml3=["a","b","c"].join("");  
  58.   
  59. 十四、JavaScript中!!操作符是什么  
  60. console.log(!!10);//true console.log(!!0);//false console.log(!!"abc");//true console.log(!!"");//false  
  61.   
  62.   简单地说就是把右侧的值转为bool值  
  63.   
  64. 十五、JavaScript实现endsWith  
  65. String.prototype.endsWith = function(suffix) { return this.indexOf(suffix, this.length - suffix.length) !== -1;};//or function endsWith(str, suffix) { return str.indexOf(suffix, str.length - suffix.length) !== -1;}  
  66.   
  67. 十六、JavaScript中克隆对象  
  68. function clone(obj) { // Handle the 3 simple types, and null or undefined if (null == obj || "object" != typeof obj) return obj; // Handle Date if (obj instanceof Date) { var copy = new Date(); copy.setTime(obj.getTime()); return copy; } // Handle Array if (obj instanceof Array) { var copy = []; for (var i = 0, var len = obj.length; i < len; ++i) { copy[i] = clone(obj[i]); } return copy; } // Handle Object if (obj instanceof Object) { var copy = {}; for (var attr in obj) { if (obj.hasOwnProperty(attr)) copy[attr] = clone(obj[attr]); } return copy; } throw new Error("Unable to copy obj! Its type isn't supported.");}  
  69.   
  70. 十七、JavaScript字符与ASCII码间的转换  
  71. console.log("\n".charCodeAt(0));//10 console.log(String.fromCharCode(65));//A  
  72.   
  73. 十八、JavaScript中浮点数的相等判断不能用 ==  
  74. console.log(0.1+0.2 == 0.3);//false console.log(Math.abs(0.1+0.2 - 0.3) < 0.000001);//true  

猜你喜欢

转载自blog.csdn.net/c_hmnzs/article/details/54409791