Time of Update: 2018-12-08
複製代碼 代碼如下:($=[$=[]][(__=!$+$)[_=-~-~-~$]+({}+$)[_/_]+ ($$=($_=!''+$)[_/_]+$_[+$])])()[__[_/_]+__ [_+~$]+$_[_]+$$](_/_) 注意,上面這段看起來很混亂的代碼並不是自動換行,而是三行(當然,你寫在同一行也沒有錯)。編寫一個頁面運行一下(據說 IE 下不行),你就會發現這段代碼的功能等同於 alert(1) 為什麼會這樣呢?我們來把這段代碼拆開來分析。 $=[] // $
Time of Update: 2018-12-08
昨天用jQuery外掛程式aeImageResize,發現它更有優勢:每張圖片載入完後,會馬上進行等比縮放。 這歸於圖片對象Image的載入事件onload的功勞。 查看外掛程式的源碼,發現它也依賴圖片對象的complete屬性和onload事件,並且特別把IE6區分對待,到底IE6在圖片載入對象上,與其它瀏覽器有什麼不同呢? 看下文: 通過js操縱DOM很多情況下都是為了實現和當前頁html元素的非同步載入,我談談對Image對象的一些認識。 看個例子: 複製代碼
Time of Update: 2018-12-08
函數如下: 複製代碼 代碼如下:foreach = function (obj, insp){ if(obj== null && obj.constructor != Array){ return []; } //obj是要處理的數組,obj==null 表示對象尚未存在;obj.constructor != Array 表示對象obj的屬性的建構函式不是數組; //constructor屬性始終指向建立當前對象的建構函式。兩個條件均滿足,則返回空數組[];
Time of Update: 2018-12-08
複製代碼 代碼如下://靈感來自 //http://www.cnblogs.com/jkisjk/archive/2011/01/28/array_quickly_sortby.html var hasDuplicate = false; var sortBy = function(nodes){ var result = [], array = [], n = nodes.length, i = n, node; while(node = nodes[--n]){ (array[n] =
Time of Update: 2018-12-08
1.下面列出了一些判讀數實值型別的Regex 複製代碼 代碼如下:"^\\d+$" //非負整數(正整數 + 0) "^[0-9]*[1-9][0-9]*$" //正整數 "^((-\\d+)|(0+))$" //非正整數(負整數 + 0) "^-[0-9]*[1-9][0-9]*$" //負整數 "^-?\\d+$" //整數 "^\\d+(\\.\\d+)?$" //非負浮點數(正浮點數 + 0) "^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*
Time of Update: 2018-12-08
1.避免使用eval或者Function建構函式 2.避免使用with 3.不要在效能要求關鍵的函數中使用try-catch-finally 4.避免使用全域變數 5.避免在效能要求關鍵的函數中使用for-in 6.使用字串累加計算風格 7.原操作會比函數調用快 8.設定setTimeout() 和 setInterval() 時傳遞函數名而不是字串 9.避免在對象中使用不需要的DOM引用 10.最清晰的目標速度,最小化範圍鏈 11.試著在指令碼中少使用注釋,避免使用長變數名
Time of Update: 2018-12-08
先看個例子: 複製代碼 代碼如下:var Class = { create : function () { return function () { this.initialize.apply(this, arguments); } } } var A = Class.create(); A.prototype = { initialize:function(){ //todo } test:"abc" } var a = new A(); 這是很多jser構建類和執行個體化對象的過程,
Time of Update: 2018-12-08
文章目錄 傳回值說明傳回值說明傳回值說明文法傳回值 直接量文法 /pattern/attributes 建立 RegExp 對象的文法: 複製代碼 代碼如下:var obj=new RegExp(pattern,attributes); 案例1: 複製代碼 代碼如下:var pattern=/a/; document.write(pattern.exec("asdas")); 案例2: 複製代碼 代碼如下:var obj=new
Time of Update: 2018-12-08
1. 把數字轉換成字串,應用"" + 1,雖然看起來比較醜一點,但事實上這個效率是最高的,效能上來說:("" + ) > String() > .toString() > new String(),盡量使用編譯時間就能使用的內部操作要比運行時使用的使用者操作要快。String()屬於內建函式,所以速度很快,而.toString()要查詢原型中的函數,所以速度遜色一些,new String()用於返回一個精確的副本。 2.
Time of Update: 2018-12-08
複製代碼 代碼如下:var picarry = {}; var lnkarry = {}; var ttlarry = {}; function FixCode(str){ return str.replace("'","="); } var t=document.getElementById("pictable"); var rl=t.rows.length; var baseu= document.URL.replace(/(http.*\/)(.*)/, "$1");
Time of Update: 2018-12-08
常用的Regex如下: 複製代碼 代碼如下:"^-?[1-9]\\d*$", //整數 "^[1-9]\\d*$", //正整數 "^-[1-9]\\d*$", //負整數 "^([+-]?)\\d*\\.?\\d+$", //數字 "^[1-9]\\d*|0$", //正數(正整數 + 0) "^-[1-9]\\d*|0$", //負數(負整數 + 0) "^([+-]?)\\d*\\.\\d+$", //浮點數 "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$", //
Time of Update: 2018-12-08
複製代碼 代碼如下:/** * 折半尋找字元在數組中的位置(有序列表) * @param array 被檢索的數組 * @param x 要尋找的字元 * @type int * @returns 字元在數組中的位置,沒找到返回-1 */ function binarySearch(array,x){ var lowPoint=1; var higPoint=array.length; var returnValue=-1; var midPoint; var found=false;
Time of Update: 2018-12-08
1。 //使用變數的屬性 <script type="text/javascript"> var txt="Hello World!" document.write(txt.length) </script> 2。 //把字串中的所有字母都被轉化為大寫字母。 <script type="text/javascript"> var str="Hello world!" document.write(str.toUpperCase())
Time of Update: 2018-12-08
caller : functionName.caller 返回調用者。 看看下面的函數,大家可以複製到VS中執行下 複製代碼 代碼如下:function caller() { if (caller.caller) { alert(caller.caller.toString()); } else { alert("函數直接執行"); } } function handleCaller() { caller(); } handleCaller(); caller();
Time of Update: 2018-12-08
功能如下: 1.排序功能:單擊行表頭或列表頭則進行正序排序;若再次單擊,則進行逆序; 2.修改功能:雙擊某個儲存格,則可進行輸入操作,當輸入框失去焦點時,則新資料被儲存; 3.隨機功能:每次重新整理頁面,表格中的資料都不一樣; : 完整源碼如下: 二維排序表格列1列2列3列4列5列6行1行2行3行4行5說明: 1.排序功能:單擊行表頭或列表頭則進行正序排序;若再次單擊,則進行逆序; 2.修改功能:雙擊某個儲存格,則可進行輸入操作,當輸入框失去焦點時,則新資料被儲存;
Time of Update: 2018-12-08
OOP 語言使我們有能力自訂對象和變數類型。 物件導向編程 JavaScript 是物件導向的程式設計語言 (OOP)。OOP 語言使我們有能力定義自己的對象和變數類型。對象擁有屬性和方法。 屬性 屬性指與對象有關的值。 舉例: 複製代碼 代碼如下:<script type="text/javascript"> var txt="Hello World!" document.write(txt.length) //使用字串對象的長度屬性來計算字串中的字元數目,輸出為:12 </
Time of Update: 2018-12-08
一、類型轉換的方法和應該注意的問題:1.轉換為布爾型:(1)用兩次非運算(!):!!5 ==> true(2)用布爾型的建構函式:new Boolean(5) == > true值轉換為布爾類型為false:0,+0,-0,NaN,""(Null 字元串),undefined,null除上面的值其他值在轉換以後為true,需要特別提到的是:"0",new Object(),function(){}2.轉換為字串類型:(1)加上Null 字元串"":123 + "" = "123"(2
Time of Update: 2018-12-08
來看一個簡易的 Javascript 調試包:jscript.debug.js,包含兩個函數,第一個用來遍曆對象的各個屬性;第二個是一個通用的 Debug 函數(其實 說‘對象'比較‘精確些',呵呵),用來規定各種錯誤層級及其各種提示、錯誤資訊的格式化顯示,還是《Javascript 實戰》上面的經典例子,先看源碼: 複製代碼 代碼如下:/** * jscript.debug package * This package contains utility functions for
Time of Update: 2018-12-08
複製代碼 代碼如下:/* * 函數名稱: DateUtil * 作 者: yithcn * 功能說明: 日期函數 * 使用說明: * 建立日期: 2010.10.14 */ var DateUtil = {}; DateUtil.base = 60 * 60 * 24 * 1000; DateUtil.Add = function(num, sDate) { num = num || 0; sDate = sDate || new Date(); var base = this.base *
Time of Update: 2018-12-08
這篇文章來回答javascript通用迴圈遍曆方法forEach中最後提到的關於偽數組的問題。 什麼是偽數組 能通過Array.prototype.slice轉換為真正的數組的帶有length屬性的對象。 這種對象有很多,比較特別的是arguments對象,還有像調用getElementsByTagName,document.childNodes之類的,它們都返回NodeList對象都屬於偽數組。