{"id":136,"date":"2017-06-26T11:14:17","date_gmt":"2017-06-26T03:14:17","guid":{"rendered":"https:\/\/blog.lcsoul.cn\/?p=136"},"modified":"2017-06-26T11:14:17","modified_gmt":"2017-06-26T03:14:17","slug":"%e5%89%8d%e7%ab%af%e5%b8%b8%e7%94%a8js%e4%bb%a3%e7%a0%81","status":"publish","type":"post","link":"https:\/\/blog.lcsoul.top\/index.php\/2017\/06\/26\/%e5%89%8d%e7%ab%af%e5%b8%b8%e7%94%a8js%e4%bb%a3%e7%a0%81\/","title":{"rendered":"\u524d\u7aef\u5e38\u7528JS\u4ee3\u7801"},"content":{"rendered":"<p><!--more--><\/p>\n<h2>1\u3001\u8bbe\u7f6eCookie<\/h2>\n<p>setCookie(\u53c2\u6570\u540d, \u53c2\u6570, expiredays)<\/p>\n<pre class=\"prettyprint linenums\">function setCookie(c_name, value, expiredays) {\n    var exdate = new Date();\n    var times = exdate.getTime() + parseInt(expiredays * 24 * 60 * 60 * 1000)\n    exdate.setTime(times);\n    document.cookie = c_name + \"=\" + escape(value) +\n        ((expiredays == null) ? \"\" : \";expires=\" + exdate.toGMTString() + \"; path=\/\")\n}\n<\/pre>\n<h2>2\u3001\u8bfb\u53d6Cookie<\/h2>\n<p>getCookie(\u53c2\u6570\u540d)<\/p>\n<pre class=\"prettyprint linenums\">function getCookie(c_name) {\n    if (document.cookie.length &gt; 0) {\n        c_start = document.cookie.indexOf(c_name + \"=\")\n        if (c_start != -1) {\n            c_start = c_start + c_name.length + 1\n            c_end = document.cookie.indexOf(\";\", c_start)\n            if (c_end == -1) c_end = document.cookie.length\n            return unescape(document.cookie.substring(c_start, c_end))\n        }\n    }\n    return \"\"\n}\n<\/pre>\n<h2>3\u3001 \u622a\u53d6\u6700\u540e\u4e00\u4e2a\u659c\u6760\u524d\u9762\u7684\u5185\u5bb9<\/h2>\n<pre class=\"prettyprint linenums\">function setIntercept(obj) {\n    var index = obj.lastIndexOf(\"\\\/\");\n    obj = obj.substring(0, index + 1);\n    return obj;\n}\n<\/pre>\n<h2>4\u3001\u622a\u53d6?\u540e\u9762\u7684\u5185\u5bb9<\/h2>\n<pre class=\"prettyprint linenums\">function setIntercept0(obj) {\n    var index = obj.lastIndexOf(\"\\?\");\n    obj = obj.substring(index + 1, obj.length);\n    return obj;\n}\n<\/pre>\n<h2>5\u3001UUID<\/h2>\n<pre class=\"prettyprint linenums\">function uuid() {\n    var s = [];\n    var hexDigits = \"0123456789abcdef\";\n    for (var i = 0; i &lt; 36; i++) {\n        s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);\n    }\n    s[14] = \"4\"; \/\/ bits 12-15 of the time_hi_and_version field to 0010\n    s[19] = hexDigits.substr((s[19] &amp; 0x3) | 0x8, 1); \/\/ bits 6-7 of the clock_seq_hi_and_reserved to 01\n    s[8] = s[13] = s[18] = s[23] = \"-\";\n    var uuid = s.join(\"\");\n    return uuid;\n}\n<\/pre>\n<h2>6\u3001Base64\u52a0\u89e3\u5bc6<\/h2>\n<p>var b = new Base64();<br \/>\nb.encode(\u52a0\u5bc6\u6570\u636e)<br \/>\nb.decode(\u89e3\u5bc6\u6570\u636e)<\/p>\n<pre class=\"prettyprint linenums\">function Base64() {\n    _keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/=\";\n    this.encode = function(input) {\n        var output = \"\";\n        var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\n        var i = 0;\n        input = _utf8_encode(input);\n        while (i &lt; input.length) { chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); chr3 = input.charCodeAt(i++); enc1 = chr1 &gt;&gt; 2;\n            enc2 = ((chr1 &amp; 3) &lt;&lt; 4) | (chr2 &gt;&gt; 4);\n            enc3 = ((chr2 &amp; 15) &lt;&lt; 2) | (chr3 &gt;&gt; 6);\n            enc4 = chr3 &amp; 63;\n            if (isNaN(chr2)) {\n                enc3 = enc4 = 64;\n            } else if (isNaN(chr3)) {\n                enc4 = 64;\n            }\n            output = output +\n                _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +\n                _keyStr.charAt(enc3) + _keyStr.charAt(enc4);\n        }\n        return output;\n    }\n    this.decode = function(input) {\n        var output = \"\";\n        var chr1, chr2, chr3;\n        var enc1, enc2, enc3, enc4;\n        var i = 0;\n        input = input.replace(\/[^A-Za-z0-9\\+\\\/\\=]\/g, \"\");\n        while (i &lt; input.length) {\n            enc1 = _keyStr.indexOf(input.charAt(i++));\n            enc2 = _keyStr.indexOf(input.charAt(i++));\n            enc3 = _keyStr.indexOf(input.charAt(i++));\n            enc4 = _keyStr.indexOf(input.charAt(i++));\n            chr1 = (enc1 &lt;&lt; 2) | (enc2 &gt;&gt; 4);\n            chr2 = ((enc2 &amp; 15) &lt;&lt; 4) | (enc3 &gt;&gt; 2);\n            chr3 = ((enc3 &amp; 3) &lt;&lt; 6) | enc4;\n            output = output + String.fromCharCode(chr1);\n            if (enc3 != 64) {\n                output = output + String.fromCharCode(chr2);\n            }\n            if (enc4 != 64) {\n                output = output + String.fromCharCode(chr3);\n            }\n        }\n        output = _utf8_decode(output);\n        return output;\n    }\n    _utf8_encode = function(string) {\n        string = string.replace(\/\\r\\n\/g, \"\\n\");\n        var utftext = \"\";\n        for (var n = 0; n &lt; string.length; n++) {\n            var c = string.charCodeAt(n);\n            if (c &lt; 128) { utftext += String.fromCharCode(c); } else if ((c &gt; 127) &amp;&amp; (c &lt; 2048)) { utftext += String.fromCharCode((c &gt;&gt; 6) | 192);\n                utftext += String.fromCharCode((c &amp; 63) | 128);\n            } else {\n                utftext += String.fromCharCode((c &gt;&gt; 12) | 224);\n                utftext += String.fromCharCode(((c &gt;&gt; 6) &amp; 63) | 128);\n                utftext += String.fromCharCode((c &amp; 63) | 128);\n            }\n        }\n        return utftext;\n    }\n    _utf8_decode = function(utftext) {\n        var string = \"\";\n        var i = 0;\n        var c = c1 = c2 = 0;\n        while (i &lt; utftext.length) {\n            c = utftext.charCodeAt(i);\n            if (c &lt; 128) { string += String.fromCharCode(c); i++; } else if ((c &gt; 191) &amp;&amp; (c &lt; 224)) {\n                c2 = utftext.charCodeAt(i + 1);\n                string += String.fromCharCode(((c &amp; 31) &lt;&lt; 6) | (c2 &amp; 63));\n                i += 2;\n            } else {\n                c2 = utftext.charCodeAt(i + 1);\n                c3 = utftext.charCodeAt(i + 2);\n                string += String.fromCharCode(((c &amp; 15) &lt;&lt; 12) | ((c2 &amp; 63) &lt;&lt; 6) | (c3 &amp; 63));\n                i += 3;\n            }\n        }\n        return string;\n    }\n}\n<\/pre>\n<h2>7\u3001iframe \u5185\u5916\u4f20\u53c2<\/h2>\n<pre class=\"prettyprint linenums\">iframeName.textInput(\u4f20\u7684\u53c2\u6570);\niframeName\u662fiframe\u7684name\u5c5e\u6027\ntextInput()\u662fiframe\u5d4c\u5165\u9875\u7684\u51fd\u6570\u540d\ndocument.getElementById('iframe').contentWindow.playerParameter = '\u7236\u9875\u9762\u4f20\u503c';\nconsole.log(document.getElementById('iframe').contentWindow. playerParameter )\n<\/pre>\n<h2>8\u3001\u5fae\u4fe1\u7a97\u53e3\u5173\u95ed<\/h2>\n<pre class=\"prettyprint linenums\">WeixinJSBridge.invoke('closeWindow', {}, function(rs) {});\n<\/pre>\n<h2>9\u3001\u83b7\u53d6\u5f53\u524d\u65f6\u95f4\u6233<\/h2>\n<p>\u7b2c\u4e00\u79cd\u65b9\u6cd5\uff1a<\/p>\n<pre class=\"prettyprint linenums\">var timestamp = Date.parse(new Date());\n<\/pre>\n<p>\u7ed3\u679c\uff1a1280977330000<br \/>\n\u7b2c\u4e8c\u79cd\u65b9\u6cd5\uff1a<\/p>\n<pre class=\"prettyprint linenums\">var timestamp = (new Date()).valueOf();\n<\/pre>\n<p>\u7ed3\u679c\uff1a1280977330748<br \/>\n\u7b2c\u4e09\u79cd\u65b9\u6cd5\uff1a<\/p>\n<pre class=\"prettyprint linenums\">var timestamp=new Date().getTime()\uff1b\n<\/pre>\n<p>\u7ed3\u679c\uff1a1280977330748<br \/>\n\u4ee5\u4e0a\u4ee3\u7801\u5c06\u83b7\u53d6\u4ece 1970\u5e741\u67081\u65e5\u5348\u591c\u5f00\u59cb\u7684\u6beb\u79d2\u6570\u3002\u4e8c\u8005\u7684\u533a\u522b\u662f\uff0c\u7b2c\u4e00\u79cd\u65b9\u6cd5\u7684\u6beb\u79d2\u4f4d\u4e0a\u4e3a\u5168\u96f6\uff0c\u5373\u53ea\u662f\u7cbe\u786e\u5230\u79d2\u7684\u6beb\u79d2\u6570<br \/>\njQuery \u83b7\u53d6\u65f6\u95f4\u6233 $.now()<\/p>\n<pre class=\"prettyprint linenums\">var timestamp = $.now();\n<\/pre>\n<p>\u5f53\u524d\u65f6\u95f4\u65f6\u95f4\u6233<\/p>\n<pre class=\"prettyprint linenums\">Math.round(new Date().getTime()\/1000)\n<\/pre>\n<h2>10\u3001JS\u5f02\u6b65\u52a0\u8f7d<\/h2>\n<p>\u6709\u65f6\u5019\u52a0\u8f7dJS\u6587\u4ef6\u6162\uff0c\u53ef\u80fd\u9020\u6210\u7f51\u9875\u5931\u53bb\u54cd\u5e94\u3002\u89e3\u51b3\u529e\u6cd5\u6709\u4e24\u4e2a\uff0c\u4e00\u4e2a\u662f\u628a\u5b83\u653e\u5728\u7f51\u9875\u5e95\u90e8\u52a0\u8f7d\uff0c\u53e6\u4e00\u4e2a\u662f\u5199\u6210\u4e0b\u9762\u8fd9\u6837\uff1a<\/p>\n<pre class=\"prettyprint linenums\"><script src=\"\/js\/a.js\" defer=\"\" async=\"true\"><\/script>\n<\/pre>\n<p>async\u5c5e\u6027\u8868\u660e\u8fd9\u4e2a\u6587\u4ef6\u9700\u8981\u5f02\u6b65\u52a0\u8f7d\uff0c\u907f\u514d\u7f51\u9875\u5931\u53bb\u54cd\u5e94\u3002IE\u4e0d\u652f\u6301\u8fd9\u4e2a\u5c5e\u6027\uff0c\u53ea\u652f\u6301defer\uff0c\u6240\u4ee5\u628adefer\u4e5f\u5199\u4e0a\u3002<\/p>\n<h2>11\u3001\u6e05\u9664\u7a7a\u683c<\/h2>\n<pre class=\"prettyprint linenums\">String.prototype.trim = function() {\n    var reExtraSpace = \/^\\s*(.*?)\\s+$\/;\n    return this.replace(reExtraSpace, \"$1\")\n}\n<\/pre>\n<h2>12\u3001\u6e05\u9664\u5de6\u7a7a\u683c\/\u53f3\u7a7a\u683c<\/h2>\n<pre class=\"prettyprint linenums\">function ltrim(s){ return s.replace( \/^(\\s*| *)\/, \"\"); }\nfunction rtrim(s){ return s.replace( \/(\\s*| *)$\/, \"\"); }\n<\/pre>\n<h2>13\u3001\u5b57\u7b26\u4e32\u957f\u5ea6\u622a\u53d6<\/h2>\n<pre class=\"prettyprint linenums\">function cutstr(str, len) {\n\tvar temp,\n\t\ticount = 0,\n\t\tpatrn = \/[^\\x00-\\xff]\/\uff0c\n\t\tstrre = \"\";\n\tfor (var i = 0; i &lt; str.length; i++) {\n\t\tif (icount &lt; len - 1) {\n\t\t\ttemp = str.substr(i, 1);\n\t\t\t\tif (patrn.exec(temp) == null) {\n\t\t\t\t   icount = icount + 1\n\t\t\t} else {\n\t\t\t\ticount = icount + 2\n\t\t\t}\n\t\t\tstrre += temp\n\t\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn strre + \"...\"\n}\n<\/pre>\n<h2>14\u3001\u5224\u65ad\u662f\u5426\u4e3a\u6570\u5b57\u7c7b\u578b<\/h2>\n<pre class=\"prettyprint linenums\">function isDigit(value) {\n    var patrn = \/^[0-9]*$\/;\n    if (patrn.exec(value) == null || value == \"\") {\n        return false\n    } else {\n        return true\n    }\n}\n<\/pre>\n<h2>15\u3001\u52a0\u5165\u6536\u85cf\u5939<\/h2>\n<pre class=\"prettyprint linenums\">function AddFavorite(sURL, sTitle) {\n\ttry {\n\t\twindow.external.addFavorite(sURL, sTitle)\n\t} catch(e) {\n\t\ttry {\n\t\t\twindow.sidebar.addPanel(sTitle, sURL, \"\")\n\t\t} catch(e) {\n\t\t\talert(\"\u52a0\u5165\u6536\u85cf\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528Ctrl+D\u8fdb\u884c\u6dfb\u52a0\")\n\t\t}\n\t}\n}\n<\/pre>\n<h2>16\u3001\u8bbe\u4e3a\u9996\u9875<\/h2>\n<pre class=\"prettyprint linenums\">function setHomepage() {\n\tif (document.all) {\n\t\tdocument.body.style.behavior = 'url(#default#homepage)';\n\t\tdocument.body.setHomePage('http:\/\/w3cboy.com')\n\t} else if (window.sidebar) {\n\t\tif (window.netscape) {\n\t\t\ttry {\n\t\t\t\tnetscape.security.PrivilegeManager.enablePrivilege(\"UniversalXPConnect\")\n\t\t\t} catch(e) {\n\t\t\t\talert(\"\u8be5\u64cd\u4f5c\u88ab\u6d4f\u89c8\u5668\u62d2\u7edd\uff0c\u5982\u679c\u60f3\u542f\u7528\u8be5\u529f\u80fd\uff0c\u8bf7\u5728\u5730\u5740\u680f\u5185\u8f93\u5165 about:config,\u7136\u540e\u5c06\u9879 signed.applets.codebase_principal_support \u503c\u8be5\u4e3atrue\")\n\t\t\t\t}\n\t\t}\n\t\tvar prefs = Components.classes['@mozilla.org\/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);\n\t\tprefs.setCharPref('browser.startup.homepage', 'http:\/\/w3cboy.com')\n\t}\n}\n<\/pre>\n<h2>17\u3001\u52a0\u8f7d\u6837\u5f0f\u6587\u4ef6<\/h2>\n<pre class=\"prettyprint linenums\">function LoadStyle(url) {\n\ttry {\n\t\tdocument.createStyleSheet(url)\n\t} catch(e) {\n\t\tvar cssLink = document.createElement('link');\n\t\tcssLink.rel = 'stylesheet';\n\t\tcssLink.type = 'text\/css';\n\t\tcssLink.href = url;\n\t\tvar head = document.getElementsByTagName('head')[0];\n\t\thead.appendChild(cssLink)\n\t}\n}\n<\/pre>\n<h2>18\u3001\u68c0\u9a8cURL\u94fe\u63a5\u662f\u5426\u6709\u6548<\/h2>\n<pre class=\"prettyprint linenums\">function getUrlState(URL){\n\tvar xmlhttp = new ActiveXObject(\"microsoft.xmlhttp\");\n\txmlhttp.Open(\"GET\",URL, false);\n\ttry{\n\t\t\txmlhttp.Send();\n\t}catch(e){\n\t}finally{\n\t\tvar result = xmlhttp.responseText;\n\t\tif(result){\n\t\t\tif(xmlhttp.Status==200){\n\t\t\t\treturn(true);\n\t\t\t }else{\n\t\t\t\t   return(false);\n\t\t\t }\n\t\t }else{\n\t\t\t return(false);\n\t\t }\n\t}\n}\n<\/pre>\n<h2>19\u3001\u683c\u5f0f\u5316CSS\u6837\u5f0f\u4ee3\u7801<\/h2>\n<pre class=\"prettyprint linenums\">function formatCss(s){\/\/\u683c\u5f0f\u5316\u4ee3\u7801\n\ts = s.replace(\/\\s*([\\{\\}\\:\\;\\,])\\s*\/g, \"$1\");\n\ts = s.replace(\/;\\s*;\/g, \";\"); \/\/\u6e05\u9664\u8fde\u7eed\u5206\u53f7\n\ts = s.replace(\/\\,[\\s\\.\\#\\d]*{\/g, \"{\");\n\ts = s.replace(\/([^\\s])\\{([^\\s])\/g, \"$1 {\\n\\t$2\");\n\ts = s.replace(\/([^\\s])\\}([^\\n]*)\/g, \"$1\\n}\\n$2\");\n\ts = s.replace(\/([^\\s]);([^\\s\\}])\/g, \"$1;\\n\\t$2\");\n\treturn s;\n}\n<\/pre>\n<h2>20\u3001\u538b\u7f29CSS\u6837\u5f0f\u4ee3\u7801<\/h2>\n<pre class=\"prettyprint linenums\">function compressCss (s) {\/\/\u538b\u7f29\u4ee3\u7801\n\ts = s.replace(\/\\\/\\*(.|\\n)*?\\*\\\/\/g, \"\"); \/\/\u5220\u9664\u6ce8\u91ca\n\ts = s.replace(\/\\s*([\\{\\}\\:\\;\\,])\\s*\/g, \"$1\");\n\ts = s.replace(\/\\,[\\s\\.\\#\\d]*\\{\/g, \"{\"); \/\/\u5bb9\u9519\u5904\u7406\n\ts = s.replace(\/;\\s*;\/g, \";\"); \/\/\u6e05\u9664\u8fde\u7eed\u5206\u53f7\n\ts = s.match(\/^\\s*(\\S+(\\s+\\S+)*)\\s*$\/); \/\/\u53bb\u6389\u9996\u5c3e\u7a7a\u767d\n\treturn (s == null) ? \"\" : s[1];\n}\n<\/pre>\n<h2>21\u3001\u5224\u65ad\u662f\u5426\u79fb\u52a8\u8bbe\u5907<\/h2>\n<pre class=\"prettyprint linenums\">function isMobile(){\n\tif (typeof this._isMobile === 'boolean'){\n\t\treturn this._isMobile;\n\t}\n\tvar screenWidth = this.getScreenWidth();\n\tvar fixViewPortsExperiment = rendererModel.runningExperiments.FixViewport ||rendererModel.runningExperiments.fixviewport;\n\tvar fixViewPortsExperimentRunning = fixViewPortsExperiment &amp;&amp; (fixViewPortsExperiment.toLowerCase() === \"new\");\n\tif(!fixViewPortsExperiment){\n\t\tif(!this.isAppleMobileDevice()){\n\t\t\tscreenWidth = screenWidth\/window.devicePixelRatio;\n\t\t}\n\t}\n\tvar isMobileScreenSize = screenWidth &lt; 600;\n\tvar isMobileUserAgent = false;\n\tthis._isMobile = isMobileScreenSize &amp;&amp; this.isTouchScreen();\n\treturn this._isMobile;\n}\n<\/pre>\n<h2>22\u3001\u5224\u65ad\u662f\u5426\u79fb\u52a8\u8bbe\u5907\u8bbf\u95ee<\/h2>\n<pre class=\"prettyprint linenums\">function isMobileUserAgent(){\n    return (\/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile\/i.test(window.navigator.userAgent.toLowerCase()));\n}\n<\/pre>\n<h2>23\u3001\u5224\u65ad\u662f\u5426\u82f9\u679c\u79fb\u52a8\u8bbe\u5907\u8bbf\u95ee<\/h2>\n<pre class=\"prettyprint linenums\">function isAppleMobileDevice(){\n    return (\/iphone|ipod|ipad|Macintosh\/i.test(navigator.userAgent.toLowerCase()));\n}\n<\/pre>\n<h2>24\u3001\u5224\u65ad\u662f\u5426\u5b89\u5353\u79fb\u52a8\u8bbe\u5907\u8bbf\u95ee<\/h2>\n<pre class=\"prettyprint linenums\">function isAndroidMobileDevice(){\n    return (\/android\/i.test(navigator.userAgent.toLowerCase()));\n}\n<\/pre>\n<h2>25\u3001\u83b7\u53d6\u79fb\u52a8\u8bbe\u5907\u521d\u59cb\u5316\u5927\u5c0f<\/h2>\n<pre class=\"prettyprint linenums\">function getInitZoom(){\n\tif(!this._initZoom){\n\t\tvar screenWidth = Math.min(screen.height, screen.width);\n\t\tif(this.isAndroidMobileDevice() &amp;&amp; !this.isNewChromeOnAndroid()){\n\t\t\tscreenWidth = screenWidth\/window.devicePixelRatio;\n\t\t}\n\t\t\tthis._initZoom = screenWidth \/document.body.offsetWidth;\n\t\t}\n\treturn this._initZoom;\n}\n<\/pre>\n<h2>26\u3001\u83b7\u53d6\u79fb\u52a8\u8bbe\u5907\u5c4f\u5e55\u5bbd\u5ea6<\/h2>\n<pre class=\"prettyprint linenums\">function getScreenWidth(){\n\tvar smallerSide = Math.min(screen.width, screen.height);\n\tvar fixViewPortsExperiment = rendererModel.runningExperiments.FixViewport || rendererModel.runningExperiments.fixviewport;\n\tvar fixViewPortsExperimentRunning = fixViewPortsExperiment &amp;&amp; (fixViewPortsExperiment.toLowerCase() === \"new\");\n\tif(fixViewPortsExperiment){\n\t\tif(this.isAndroidMobileDevice() &amp;&amp; !this.isNewChromeOnAndroid()){\n\t\t\tsmallerSide = smallerSide\/window.devicePixelRatio;\n\t\t}\n\t}\n\treturn smallerSide;\n}\n<\/pre>\n<h2>27\u3001\u5b8c\u7f8e\u5224\u65ad\u662f\u5426\u4e3a\u7f51\u5740<\/h2>\n<pre class=\"prettyprint linenums\">function IsURL(strUrl) {\n    var regular = \/^\\b(((https?|ftp):\\\/\\\/)?[-a-z0-9]+(\\.[-a-z0-9]+)*\\.(?:com|edu|gov|int|mil|net|org|biz|info|name|museum|asia|coop|aero|[a-z][a-z]|((25[0-5])|(2[0-4]\\d)|(1\\d\\d)|([1-9]\\d)|\\d))\\b(\\\/[-a-z0-9_:\\@&amp;?=+,.!\\\/~%\\$]*)?)$\/i\n    if (regular.test(strUrl)) {\n        return true;\n    }else {\n        return false;\n    }\n}\n<\/pre>\n<h2>28\u3001\u83b7\u53d6\u9875\u9762\u9ad8\u5ea6<\/h2>\n<pre class=\"prettyprint linenums\">function getPageHeight(){\n    var g = document, a = g.body, f = g.documentElement, d = g.compatMode == \"BackCompat\"\n                    ? a\n                    : g.documentElement;\n    return Math.max(f.scrollHeight, a.scrollHeight, d.clientHeight);\n}\n<\/pre>\n<h2>29\u3001\u83b7\u53d6\u9875\u9762\u53ef\u89c6\u5bbd\u5ea6<\/h2>\n<pre class=\"prettyprint linenums\">function getPageViewWidth(){\n    var d = document, a = d.compatMode == \"BackCompat\"\n                    ? d.body\n                    : d.documentElement;\n    return a.clientWidth;\n}\n<\/pre>\n<h2>30\u3001\u83b7\u53d6\u9875\u9762\u5bbd\u5ea6<\/h2>\n<pre class=\"prettyprint linenums\">function getPageWidth(){\n    var g = document, a = g.body, f = g.documentElement, d = g.compatMode == \"BackCompat\"\n                    ? a\n                    : g.documentElement;\n    return Math.max(f.scrollWidth, a.scrollWidth, d.clientWidth);\n}\n<\/pre>\n<h2>31\u3001\u83b7\u53d6\u9875\u9762scrollTop<\/h2>\n<pre class=\"prettyprint linenums\">function getPageScrollTop(){\n    var a = document;\n    return a.documentElement.scrollTop || a.body.scrollTop;\n}\n<\/pre>\n<h2>32\u3001\u83b7\u53d6\u9875\u9762\u53ef\u89c6\u9ad8\u5ea6<\/h2>\n<pre class=\"prettyprint linenums\">function getPageViewHeight() {\n    var d = document, a = d.compatMode == \"BackCompat\"\n                    ? d.body\n                    : d.documentElement;\n    return a.clientHeight;\n}\n<\/pre>\n<h2>33\u3001\u53bb\u6389url\u524d\u7f00<\/h2>\n<pre class=\"prettyprint linenums\">function removeUrlPrefix(a){\n    a=a.replace(\/\uff1a\/g,\":\").replace(\/\uff0e\/g,\".\").replace(\/\uff0f\/g,\"\/\");\n    while(trim(a).toLowerCase().indexOf(\"http:\/\/\")==0){\n        a=trim(a.replace(\/http:\\\/\\\/\/i,\"\"));\n    }\n    return a;\n}\n<\/pre>\n<h2>34\u3001\u5168\u89d2\u534a\u89d2\u8f6c\u6362<\/h2>\n<pre class=\"prettyprint linenums\">\/\/iCase: 0\u5168\u5230\u534a\uff0c1\u534a\u5230\u5168\uff0c\u5176\u4ed6\u4e0d\u8f6c\u5316\nfunction chgCase(sStr,iCase){\n\tif(typeof sStr != \"string\" || sStr.length &lt;= 0 || !(iCase === 0 || iCase == 1)){ return sStr; } var i,oRs=[],iCode; if(iCase){\/*\u534a-&gt;\u5168*\/\n\t\tfor(i=0; i&lt;sStr.length;i+=1){\n\t\t\tiCode = sStr.charCodeAt(i);\n\t\t\tif(iCode == 32){\n\t\t\t\tiCode = 12288;\n\t\t\t}else if(iCode &lt; 127){ iCode += 65248; } oRs.push(String.fromCharCode(iCode)); } }else{\/*\u5168-&gt;\u534a*\/\n\t\tfor(i=0; i&lt;sStr.length;i+=1){ iCode = sStr.charCodeAt(i); if(iCode == 12288){ iCode = 32; }else if(iCode &gt; 65280 &amp;&amp; iCode &lt; 65375){\n\t\t\t\tiCode -= 65248;\n\t\t\t}\n\t\t\t\toRs.push(String.fromCharCode(iCode));\n\t\t }\n\t}\n\treturn oRs.join(\"\");\n}\n<\/pre>\n<h2>35\u3001\u65e5\u671f\u683c\u5f0f\u5316\u51fd\u6570+\u8c03\u7528\u65b9\u6cd5<\/h2>\n<pre class=\"prettyprint linenums\">Date.prototype.format = function(format){\n\tvar o = {\n\t\t\"M+\" : this.getMonth()+1, \/\/month\n\t\t\"d+\" : this.getDate(),\t\/\/day\n\t\t\"h+\" : this.getHours(),   \/\/hour\n\t\t\"m+\" : this.getMinutes(), \/\/minute\n\t\t\"s+\" : this.getSeconds(), \/\/second\n\t\t\"q+\" : Math.floor((this.getMonth()+3)\/3),  \/\/quarter\n\t\t\"S\" : this.getMilliseconds() \/\/millisecond\n\t};\n\tif(\/(y+)\/.test(format)) format=format.replace(RegExp.$1,\n(this.getFullYear()+\"\").substr(4 - RegExp.$1.length));\n\tfor(var k in o){\n\t\tif(new RegExp(\"(\"+ k +\")\").test(format))\n\t\t\tformat = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] :(\"00\"+ o[k]).substr((\"\"+ o[k]).length));\n\t}\n\treturn format;\n}\nalert(new Date().format(\"yyyy-MM-dd hh:mm:ss\"));\n<\/pre>\n<h2>36\u3001\u65f6\u95f4\u4e2a\u6027\u5316\u8f93\u51fa\u529f\u80fd<\/h2>\n<pre class=\"prettyprint linenums\">\/*\n1\u3001&lt; 60s, \u663e\u793a\u4e3a\u201c\u521a\u521a\u201d 2\u3001&gt;= 1min &amp;&amp; &lt; 60 min, \u663e\u793a\u4e0e\u5f53\u524d\u65f6\u95f4\u5dee\u201cXX\u5206\u949f\u524d\u201d 3\u3001&gt;= 60min &amp;&amp; &lt; 1day, \u663e\u793a\u4e0e\u5f53\u524d\u65f6\u95f4\u5dee\u201c\u4eca\u5929 XX:XX\u201d 4\u3001&gt;= 1day &amp;&amp; &lt; 1year, \u663e\u793a\u65e5\u671f\u201cXX\u6708XX\u65e5 XX:XX\u201d 5\u3001&gt;= 1year, \u663e\u793a\u5177\u4f53\u65e5\u671f\u201cXXXX\u5e74XX\u6708XX\u65e5 XX:XX\u201d\n*\/\nfunction timeFormat(time){\n\tvar date = new Date(time),\n\t\tcurDate = new Date(),\n\t\tyear = date.getFullYear(),\n\t\tmonth = date.getMonth() + 10,\n\t\tday = date.getDate(),\n\t\thour = date.getHours(),\n\t\tminute = date.getMinutes(),\n\t\tcurYear = curDate.getFullYear(),\n\t\tcurHour = curDate.getHours(),\n\t\ttimeStr;\n\tif(year &lt; curYear){ timeStr = year +'\u5e74'+ month +'\u6708'+ day +'\u65e5 '+ hour +':'+ minute; }else{ var pastTime = curDate - date, pastH = pastTime\/3600000; if(pastH &gt; curHour){\n\t\t\t  timeStr = month +'\u6708'+ day +'\u65e5 '+ hour +':'+ minute;\n\t\t}else if(pastH &gt;= 1){\n\t\t\t  timeStr = '\u4eca\u5929 ' + hour +':'+ minute +'\u5206';\n\t\t}else{\n\t\t\t  var pastM = curDate.getMinutes() - minute;\n\t\t\t  if(pastM &gt; 1){\n\t\t\t\ttimeStr = pastM +'\u5206\u949f\u524d';\n\t\t\t  }else{\n\t\t\t\ttimeStr = '\u521a\u521a';\n\t\t\t  }\n\t\t}\n\t}\n\treturn timeStr;\n}\n<\/pre>\n<h2>37\u3001\u89e3\u51b3offsetX\u517c\u5bb9\u6027\u95ee\u9898<\/h2>\n<pre class=\"prettyprint linenums\">\/\/ \u9488\u5bf9\u706b\u72d0\u4e0d\u652f\u6301offsetX\/Y\nfunction getOffset(e){\n\tvar target = e.target, \/\/ \u5f53\u524d\u89e6\u53d1\u7684\u76ee\u6807\u5bf9\u8c61\n\t\t  eventCoord,\n\t\t  pageCoord,\n\t\t  offsetCoord;\n\t\/\/ \u8ba1\u7b97\u5f53\u524d\u89e6\u53d1\u5143\u7d20\u5230\u6587\u6863\u7684\u8ddd\u79bb\n\tpageCoord = getPageCoord(target);\n\t\/\/ \u8ba1\u7b97\u5149\u6807\u5230\u6587\u6863\u7684\u8ddd\u79bb\n\teventCoord = {\n\t\tX : window.pageXOffset + e.clientX,\n\t\tY : window.pageYOffset + e.clientY\n\t};\n\t\/\/ \u76f8\u51cf\u83b7\u53d6\u5149\u6807\u5230\u7b2c\u4e00\u4e2a\u5b9a\u4f4d\u7684\u7236\u5143\u7d20\u7684\u5750\u6807\n\toffsetCoord = {\n\t\tX : eventCoord.X - pageCoord.X,\n\t\tY : eventCoord.Y - pageCoord.Y\n\t};\n\treturn offsetCoord;\n}\nfunction getPageCoord(element){\n\tvar coord = { X : 0, Y : 0 };\n\t\/\/ \u8ba1\u7b97\u4ece\u5f53\u524d\u89e6\u53d1\u5143\u7d20\u5230\u6839\u8282\u70b9\u4e3a\u6b62\uff0c\n\t\/\/ \u5404\u7ea7 offsetParent \u5143\u7d20\u7684 offsetLeft \u6216 offsetTop \u503c\u4e4b\u548c\n\twhile (element){\n\t\tcoord.X += element.offsetLeft;\n\t\tcoord.Y += element.offsetTop;\n\t\telement = element.offsetParent;\n\t}\n\treturn coord;\n}\n<\/pre>\n<h2>38\u3001\u8fd4\u56de\u9876\u90e8\u7684\u901a\u7528\u65b9\u6cd5<\/h2>\n<pre class=\"prettyprint linenums\">function backTop(btnId) {\n\tvar btn = document.getElementById(btnId);\n\tvar d = document.documentElement;\n\tvar b = document.body;\n\twindow.onscroll = set;\n\tbtn.style.display = \"none\";\n\tbtn.onclick = function() {\n\t\tbtn.style.display = \"none\";\n\t\twindow.onscroll = null;\n\t\tthis.timer = setInterval(function() {\n\t\t\td.scrollTop -= Math.ceil((d.scrollTop + b.scrollTop) * 0.1);\n\t\t\tb.scrollTop -= Math.ceil((d.scrollTop + b.scrollTop) * 0.1);\n\t\t\tif ((d.scrollTop + b.scrollTop) == 0) clearInterval(btn.timer, window.onscroll = set);\n\t\t\t}, 10);\n\t};\n\tfunction set() {\n\t\tbtn.style.display = (d.scrollTop + b.scrollTop &gt; 100) ? 'block': \"none\"\n\t}\n};\nbackTop('goTop');\n<\/pre>\n<h2>39\u3001\u63d0\u53d6\u9875\u9762\u4ee3\u7801\u4e2d\u6240\u6709\u7f51\u5740<\/h2>\n<pre class=\"prettyprint linenums\">var aa = document.documentElement.outerHTML.match(\/(url\\(|src=|href=)[\\\"\\']*([^\\\"\\'\\(\\)\\&lt;\\&gt;\\[\\] ]+)[\\\"\\'\\)]*|(http:\\\/\\\/[\\w\\-\\.]+[^\\\"\\'\\(\\)\\&lt;\\&gt;\\[\\] ]+)\/ig).join(\"\\r\\n\").replace(\/^(src=|href=|url\\()[\\\"\\']*|[\\\"\\'\\&gt;\\) ]*$\/igm,\"\");\nalert(aa);\n<\/pre>\n<h2>40\u3001\u6e05\u9664\u76f8\u540c\u7684\u6570\u7ec4<\/h2>\n<pre class=\"prettyprint linenums\">String.prototype.unique=function(){\n\tvar x=this.split(\/[\\r\\n]+\/);\n\tvar y='';\n\tfor(var i=0;i&lt;x.length;i++){\n\t\tif(!new RegExp(\"^\"+x.replace(\/([^\\w])\/ig,\"\\\\$1\")+\"$\",\"igm\").test(y)){\n\t\t\ty+=x+\"\\r\\n\"\n\t\t}\n\t}\n\treturn y\n};\n<\/pre>\n<h2>41\u3001\u6309\u5b57\u6bcd\u6392\u5e8f\uff0c\u5bf9\u6bcf\u884c\u8fdb\u884c\u6570\u7ec4\u6392\u5e8f<\/h2>\n<pre class=\"prettyprint linenums\">function SetSort(){\n    var text=K1.value.split(\/[\\r\\n]\/).sort().join(\"\\r\\n\");\/\/\u987a\u5e8f\n    var test=K1.value.split(\/[\\r\\n]\/).sort().reverse().join(\"\\r\\n\");\/\/\u53cd\u5e8f\n    K1.value=K1.value!=text?text:test;\n}\n<\/pre>\n<h2>42\u3001\u5b57\u7b26\u4e32\u53cd\u5e8f(\u5012\u5e8f)<\/h2>\n<pre class=\"prettyprint linenums\">function IsReverse(text){\n    return text.split('').reverse().join('');\n}\n<\/pre>\n<h2>43\u3001\u6e05\u9664html\u4ee3\u7801\u4e2d\u7684\u811a\u672c<\/h2>\n<pre class=\"prettyprint linenums\">function clear_script(){\n\tK1.value=K1.value.replace(\/&lt;script.*?&gt;[\\s\\S]*?&lt;\\\/script&gt;|\\s+on[a-zA-Z]{3,16}\\s?=\\s?\"[\\s\\S]*?\"|\\s+on[a-zA-Z]{3,16}\\s?=\\s?'[\\s\\S]*?'|\\s+on[a-zA-Z]{3,16}\\s?=[^ &gt;]+\/ig,\"\");\n}\n\u52a8\u6001\u6267\u884cJavaScript\u811a\u672c\nfunction javascript(){\n\ttry{\n\t  eval(K1.value);\n\t}catch(e){\n\t  alert(e.message);\n\t}\n}\n<\/pre>\n<h2>44\u3001\u91d1\u989d\u5927\u5199\u8f6c\u6362\u51fd\u6570<\/h2>\n<pre class=\"prettyprint linenums\">function transform(tranvalue) {\n\ttry {\n\t\tvar i = 1;\n\t\tvar dw2 = new Array(\"\", \"\u4e07\", \"\u4ebf\"); \/\/\u5927\u5355\u4f4d\n\t\tvar dw1 = new Array(\"\u62fe\", \"\u4f70\", \"\u4edf\"); \/\/\u5c0f\u5355\u4f4d\n\t\tvar dw = new Array(\"\u96f6\", \"\u58f9\", \"\u8d30\", \"\u53c1\", \"\u8086\", \"\u4f0d\", \"\u9646\", \"\u67d2\", \"\u634c\", \"\u7396\"); \/\/\u6574\u6570\u90e8\u5206\u7528\n\t\t\/\/\u4ee5\u4e0b\u662f\u5c0f\u5199\u8f6c\u6362\u6210\u5927\u5199\u663e\u793a\u5728\u5408\u8ba1\u5927\u5199\u7684\u6587\u672c\u6846\u4e2d\n\t\t\/\/\u5206\u79bb\u6574\u6570\u4e0e\u5c0f\u6570\n\t\tvar source = splits(tranvalue);\n\t\tvar num = source[0];\n\t\tvar dig = source[1];\n\t\t\/\/\u8f6c\u6362\u6574\u6570\u90e8\u5206\n\t\tvar k1 = 0; \/\/\u8ba1\u5c0f\u5355\u4f4d\n\t\tvar k2 = 0; \/\/\u8ba1\u5927\u5355\u4f4d\n\t\tvar sum = 0;\n\t\tvar str = \"\";\n\t\tvar len = source[0].length; \/\/\u6574\u6570\u7684\u957f\u5ea6\n\t\tfor (i = 1; i &lt;= len; i++) { var n = source[0].charAt(len - i); \/\/\u53d6\u5f97\u67d0\u4e2a\u4f4d\u6570\u4e0a\u7684\u6570\u5b57 var bn = 0; if (len - i - 1 &gt;= 0) {\n\t\t\t\tbn = source[0].charAt(len - i - 1); \/\/\u53d6\u5f97\u67d0\u4e2a\u4f4d\u6570\u524d\u4e00\u4f4d\u4e0a\u7684\u6570\u5b57\n\t\t\t  }\n\t\t\t  sum = sum + Number(n);\n\t\t\t  if (sum != 0) {\n\t\t\t\tstr = dw[Number(n)].concat(str); \/\/\u53d6\u5f97\u8be5\u6570\u5b57\u5bf9\u5e94\u7684\u5927\u5199\u6570\u5b57\uff0c\u5e76\u63d2\u5165\u5230str\u5b57\u7b26\u4e32\u7684\u524d\u9762\n\t\t\t\tif (n == '0') sum = 0;\n\t\t\t  }\n\t\t\t  if (len - i - 1 &gt;= 0) { \/\/\u5728\u6570\u5b57\u8303\u56f4\u5185\n\t\t\t\tif (k1 != 3) { \/\/\u52a0\u5c0f\u5355\u4f4d\n\t\t\t\t\t  if (bn != 0) {\n\t\t\t\t\t\tstr = dw1[k1].concat(str);\n\t\t\t\t\t  }\n\t\t\t\t\t  k1++;\n\t\t\t\t} else { \/\/\u4e0d\u52a0\u5c0f\u5355\u4f4d\uff0c\u52a0\u5927\u5355\u4f4d\n\t\t\t\t\t  k1 = 0;\n\t\t\t\t\t  var temp = str.charAt(0);\n\t\t\t\t\t  if (temp == \"\u4e07\" || temp == \"\u4ebf\") \/\/\u82e5\u5927\u5355\u4f4d\u524d\u6ca1\u6709\u6570\u5b57\u5219\u820d\u53bb\u5927\u5355\u4f4d\n\t\t\t\t\t  str = str.substr(1, str.length - 1);\n\t\t\t\t\t  str = dw2[k2].concat(str);\n\t\t\t\t\t  sum = 0;\n\t\t\t\t}\n\t\t\t  }\n\t\t\t  if (k1 == 3){ \/\/\u5c0f\u5355\u4f4d\u5230\u5343\u5219\u5927\u5355\u4f4d\u8fdb\u4e00\n\t\t\t\tk2++;\n\t\t\t  }\n\t\t}\n\t\t\/\/\u8f6c\u6362\u5c0f\u6570\u90e8\u5206\n\t\tvar strdig = \"\";\n\t\tif (dig != \"\") {\n\t\t\t  var n = dig.charAt(0);\n\t\t\t  if (n != 0) {\n\t\t\t\tstrdig += dw[Number(n)] + \"\u89d2\"; \/\/\u52a0\u6570\u5b57\n\t\t\t  }\n\t\t\t  var n = dig.charAt(1);\n\t\t\t  if (n != 0) {\n\t\t\t\tstrdig += dw[Number(n)] + \"\u5206\"; \/\/\u52a0\u6570\u5b57\n\t\t\t  }\n\t\t}\n\t\tstr += \"\u5143\" + strdig;\n\t} catch(e) {\n\t\treturn \"0\u5143\";\n\t}\n\treturn str;\n}\n\/\/\u62c6\u5206\u6574\u6570\u4e0e\u5c0f\u6570\nfunction splits(tranvalue) {\n\tvar value = new Array('', '');\n\ttemp = tranvalue.split(\".\");\n\tfor (var i = 0; i &lt; temp.length; i++) {\n\t\tvalue = temp;\n\t}\n\treturn value;\n}\n<\/pre>\n<h2>45\u3001js\u963b\u6b62\u5192\u6ce1\u4e8b\u4ef6<\/h2>\n<pre class=\"prettyprint linenums\">function stopPropagation(e) {\n    e = e || window.event;\n    if(e.stopPropagation) { \/\/W3C\u963b\u6b62\u5192\u6ce1\u65b9\u6cd5\n        e.stopPropagation();\n    } else {\n        e.cancelBubble = true; \/\/IE\u963b\u6b62\u5192\u6ce1\u65b9\u6cd5\n    }\n}\n<\/pre>\n<h2>46\u3001\u5224\u65ad\u67d0\u503c\u77e5\u5426\u5728\u6570\u7ec4\u4e2d<\/h2>\n<pre class=\"prettyprint linenums\">Array.prototype.isContainsValue=function(value) {\n    for(var i in this){\n        if(this[i]==value){\n            return true;\n        }\n    }\n    return false;\n};\n<\/pre>\n<h2>47\u3001\u6839\u636e\u4e00\u4e2a\u503c\u5220\u9664\u67d0\u5143\u7d20<\/h2>\n<pre class=\"prettyprint linenums\">Array.prototype.delByValue=function(value) {\n    for(var i = 0;i&lt;this.length;i++){\n        if(this[i] == value){\n            this.del(i);\n        }\n    }\n};\n<\/pre>\n<h2>48\u3001\u6839\u636e\u4e0b\u6807\u5220\u9664\u67d0\u5143\u7d20<\/h2>\n<pre class=\"prettyprint linenums\">Array.prototype.del=function(n) {\n    if(n&lt;0) return this;\n    else\n        return this.slice(0,n).concat(this.slice(n+1,this.length));\n};\n<\/pre>\n<h2>49\u3001\u68c0\u67e5\u5bc6\u7801\u5f3a\u5ea6<\/h2>\n<pre class=\"prettyprint linenums\">$('#pass').keyup(function (e)\n{\n    var strongRegex = new RegExp(\"^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$\", \"g\");\n    var mediumRegex = new RegExp(\"^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$\", \"g\");\n    var enoughRegex = new RegExp(\"(?=.{6,}).*\", \"g\");\n    if (false == enoughRegex.test($(this).val()))\n    {\n        $('#passstrength').html('More Characters');\n    }\n    else if (strongRegex.test($(this).val()))\n    {\n        $('#passstrength').className = 'ok';\n        $('#passstrength').html('\u5f3a!');\n    }\n    else if (mediumRegex.test($(this).val()))\n    {\n        $('#passstrength').className = 'alert';\n        $('#passstrength').html('\u4e2d!');\n    }\n    else\n    {\n        $('#passstrength').className = 'error';\n        $('#passstrength').html('\u5f31!');\n    }\n    return true;\n}\n);\n<\/pre>\n<h2>50\u3001js\u53bb\u9664\u5b57\u7b26\u4e32\u4e2d\u7279\u6b8a\u7b26\u53f7<\/h2>\n<pre class=\"prettyprint linenums\">var a = 'dsfhhdifhg%dfg#dfhgfh'\nvar b = a.replace(\/[&amp;\\|\\\\\\*^%$#@\\-]\/g,\"\");\nconsole.log(b)\n\u8f93\u51fa b = 'dsfhhdifhgdfgdfhgfh'\n<\/pre>\n<h2>\u79d2\u8f6c\u6210\u65f6\u5206\u79d2\u683c\u5f0f<\/h2>\n<pre class=\"prettyprint linenums\">function musicTimeFormat(value) {\n    var theTime = parseInt(value); \/\/ \u79d2\n    var theTime1 = 0; \/\/ \u5206\n    var theTime2 = 0; \/\/ \u5c0f\u65f6\n    \/\/ alert(theTime);\n    if (theTime &gt; 60) {\n        theTime1 = parseInt(theTime \/ 60);\n        theTime = parseInt(theTime % 60);\n        if (theTime1 &gt; 60) {\n            theTime2 = parseInt(theTime1 \/ 60);\n            theTime1 = parseInt(theTime1 % 60);\n        }\n    }\n    var result = \"\" + parseInt(theTime) + \"\u79d2\";\n    if (theTime1 &gt; 0) {\n        result = \"\" + parseInt(theTime1) + \"\u5206\" + result;\n    }\n    if (theTime2 &gt; 0) {\n        result = \"\" + parseInt(theTime2) + \"\u5c0f\u65f6\" + result;\n    }\n    return result;\n}\n<\/pre>\n<h2>51\u3001\u6570\u7ec4\u53bb\u91cd<\/h2>\n<pre class=\"prettyprint linenums\">\u65b9\u6cd5\u4e00\uff1a\nArray.prototype.distinct = function(){\n var arr = this,\n  result = [],\n  i,\n  j,\n  len = arr.length;\n for(i = 0; i &lt; len; i++){\n  for(j = i + 1; j &lt; len; j++){\n   if(arr[i] === arr[j]){\n    j = ++i;\n   }\n  }\n  result.push(arr[i]);\n }\n return result;\n}\nvar arra = [1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,3,2,3,3,2,2,1,23,1,23,2,3,2,3,2,3];\narra.distinct();    \/\/\u8fd4\u56de[1, 23, 2, 3]\n\u65b9\u6cd5\u4e8c\uff1a\nArray.prototype.distinct = function (){\n var arr = this,\n  i,\n  obj = {},\n  result = [],\n  len = arr.length;\n for(i = 0; i&lt; arr.length; i++){\n  if(!obj[arr[i]]){ \/\/\u5982\u679c\u80fd\u67e5\u627e\u5230\uff0c\u8bc1\u660e\u6570\u7ec4\u5143\u7d20\u91cd\u590d\u4e86\n   obj[arr[i]] = 1;\n   result.push(arr[i]);\n  }\n }\n return result;\n};\nvar a = [1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,3,2,3,3,2,2,1,23,1,23,2,3,2,3,2,3];\nvar b = a.distinct();\nconsole.log(b.toString()); \/\/1,2,3,23\n\u65b9\u6cd5\u4e09\uff1a\nArray.prototype.distinct = function (){\n var arr = this,\n  result = [],\n  len = arr.length;\n arr.forEach(function(v, i ,arr){  \/\/\u8fd9\u91cc\u5229\u7528map\uff0cfilter\u65b9\u6cd5\u4e5f\u53ef\u4ee5\u5b9e\u73b0\n  var bool = arr.indexOf(v,i+1);  \/\/\u4ece\u4f20\u5165\u53c2\u6570\u7684\u4e0b\u4e00\u4e2a\u7d22\u5f15\u503c\u5f00\u59cb\u5bfb\u627e\u662f\u5426\u5b58\u5728\u91cd\u590d\n  if(bool === -1){\n   result.push(v);\n  }\n })\n return result;\n};\nvar a = [1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,3,2,3,3,2,2,1,23,1,23,2,3,2,3,2,3];\nvar b = a.distinct();\nconsole.log(b.toString()); \/\/1,23,2,3\n\u65b9\u6cd5\u56db\uff1a\nfunction arrRmRepeat(arr) {\n    var newArr = [];\n    for (var i = 0; i &lt; arr.length; i++) {\n    \tif (newArr.indexOf(arr[i]) == -1) {\n    \t\t\tnewArr.push(arr[i])\n    \t}\n    }\n    return newArr;\n}\n\u65b9\u6cd5\u4e94\uff1a\nfunction arrRmRepeat(arr) {\n    return [...new Set(arr)];\n}\n<\/pre>\n<h2>52\u3001\u5408\u5e76\u6570\u7ec4\u5e76\u53bb\u91cd<\/h2>\n<pre class=\"prettyprint linenums\">\u65b9\u6cd5\u4e00\uff1a\nfunction concatArr(arr1, arr2){\n  var arr = arr1.concat(arr2);\n  arr = unique1(arr);\/\/\u518d\u5f15\u7528\u4e0a\u9762\u7684\u4efb\u610f\u4e00\u4e2a\u53bb\u91cd\u65b9\u6cd5\n  return arr;\n}\n\u65b9\u6cd5\u4e8c\uff1a\n var a = [1, 2, 3];\n var b = [4, 5, 6];\n Array.prototype.push.apply(a, b);\/\/a=[1,2,3,4,5,6]\n \/\/\u7b49\u6548\u4e8e:a.push.apply(a, b);\n \/\/\u4e5f\u7b49\u6548\u4e8e[].push.apply(a, b);\n function concatArray(arr1,arr2){\n   Array.prototype.push.apply(arr1, arr2);\n   arr1 = unique1(arr1);\n   return arr1;\n }\n<\/pre>\n<h2>53\u3001\u6570\u7ec4\u5347\u964d\u5e8f<\/h2>\n<pre class=\"prettyprint linenums\">\u5347\u5e8f\uff1a\narray.sort(function (x,y) {\n            return x-y;\n        });\n\u964d\u5e8f\uff1a\narray.sort(function (x,y) {\n            return y-x;\n        });\n<\/pre>\n<h2>54\u3001JSON\u6392\u5e8f<\/h2>\n<pre class=\"prettyprint linenums\">\u6309\u7167id\u6392\u5e8f\njson.sort( function(x,t){\n          return x.id-t.id\n }  )\n<\/pre>\n<h2>55<\/h2>\n<pre class=\"prettyprint linenums\">&nbsp;<\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":true,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[24,32,44,91,157,160,161,208],"class_list":["post-136","post","type-post","status-publish","format-standard","hentry","category-codeshare","tag-base64","tag-cookie","tag-iframe","tag-uuid","tag-157","tag-160","tag-url","tag-208"],"_links":{"self":[{"href":"https:\/\/blog.lcsoul.top\/index.php\/wp-json\/wp\/v2\/posts\/136","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.lcsoul.top\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.lcsoul.top\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.lcsoul.top\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.lcsoul.top\/index.php\/wp-json\/wp\/v2\/comments?post=136"}],"version-history":[{"count":0,"href":"https:\/\/blog.lcsoul.top\/index.php\/wp-json\/wp\/v2\/posts\/136\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.lcsoul.top\/index.php\/wp-json\/wp\/v2\/media?parent=136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.lcsoul.top\/index.php\/wp-json\/wp\/v2\/categories?post=136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.lcsoul.top\/index.php\/wp-json\/wp\/v2\/tags?post=136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}