6.8
阿新 • • 發佈:2017-06-09
center inner 之前 dev .proto mouse 程序 success 例子
1、數組和函數
concat 將參數列表連接到原數組後面形成一個新的數組並返回,原有數組不受影響。 var arr = ["a","b","c"]; var arr1 = arr.concat("d","e"); //arr1 = ["a","b","c","d","e"] join 以指定的字符作為分割符,將數組轉換為字符串,當指定字符為逗號時,其作用和 toString() 相同。 var str1 = arr.join(","); //str1 = "a,b,c" pop 通俗的講,就是彈出數組的最後一個元素。結合下面的 push 方法,使得將數組作為棧來使用成為可能。pop 方法返回數組最後一個元素的值,並將 length 屬性減 1,即返回後立即丟失最後一個元素。 var item1 = arr.pop(); //item1 = "c" push 將參數添加到數組的結尾。 arr.push("d","e"); alert(arr); //arr = ["a","b","c","d","e"] reverse 將數組中的元素反轉排列,這個操作是在原有數組上經行操作,同時也返回數組本身。 arr.reverse(); alert(arr); //arr = ["c"."b","a"] shift 移去數組的第一個元素,並返回這個元素的值。這個方法的性質和 pop 方法很類似,pop 方法是移去最後一個元素。 var item1 = arr.shift(); //item1 = "a" unshift 將參數列表插入到數組的開頭。其性質和 push 方法類型,但 push 方法是將元素添加到數組的結尾。 arr.unshift("d","e"); alert(arr); //arr = ["d","e","a","b","c"] slice 返回數組對象的一個子集,索引從開始(包括開始位置元素),到結束(不包括結束位置元素), 原有數組不受影響。當 開始或者結束為負數時,則使用他們加上數組長度後的值。如果結束小於等 於開始,將返回空數組。 var item1 = arr.slice(1,2); //item1 = "b" var item2 = arr.slice(-2,-1); //item2 = "b" splice 從數組對象中移除指定長度的元素,並替換為新的元素(相當於執行替換操作)。如果沒有指定新 的元素,則相當於執行刪除操作。返回被刪除元素組成的數組。 var arr1 = arr.splice(1,2,"d","e"); //arr1 = ["b","c"] alert(arr);//["a","d","e"] var arr2 = arr.splice(1,2); //arr2 = ["d","e"] alert(arr); //arr = ["a"] 2、二維碼的插件是什麽 1、首先在頁面中加入jquery庫文件和qrcode插件。 <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.qrcode.min.js"></script> 2、在頁面中需要顯示二維碼的地方加入以下代碼: <div id="code"></div> 3、調用qrcode插件。 qrcode支持canvas和table兩種方式進行圖片渲染,默認使用canvas方式,效率最高,當然要瀏覽器支持html5。 直接調用如下: $(‘#code‘).qrcode("http://www.helloweba.com"); //任意字符串 您也可以通過以下方式調用: $("#code").qrcode({ render: "table", //table方式 width: 200, //寬度 height:200, //高度 text: "www.helloweba.com" //任意內容 }); 3、禁止鼠標點擊的使用方法 平時我們兼容什麽東西總是在調整低版本IE的兼容性,但是這回不是因為低版本瀏覽器不給力。而是因為 火狐給力過頭了,完全不顧其它瀏覽器的感受標新立異了。除了火狐之外,所有的瀏覽器都可以使用 MouseWheel事件來處理鼠標滾輪的響應。但是火狐卻偏偏不支持MouseWheel,而使用無厘頭的 DOMMouseScroll,這玩意兒除了火狐以外其它瀏覽器都不兼容。也就是說,對於鼠標滾輪事件的處理, 火狐只能使用DOMMouseScroll。而非火狐則只能使用MouseWheel。 這兩種事件實現的原理不同,他們處理的數據也不同。 <!DOCTYPE html> <style> span {font:14px/20px 微軟雅黑;} #counter { width:50px;height:20px; border:1px solid #CCC; background:#F9F9F9; font:14px/20px Consolas; text-align:center; margin:10px; } </style> <span>使用鼠標滾輪調整數值大小</span><br/> <div id="counter">0</div> <script> //判斷瀏覽器 var isIE=navigator.userAgent.match(/MSIE (\d)/i); isIE=isIE?isIE[1]:undefined; var isFF=/FireFox/i.test(navigator.userAgent); //獲取元素 var counter=document.getElementById("counter"); //鼠標滾輪事件 if(isIE<9) //傳統瀏覽器使用MouseWheel事件 counter.attachEvent("onmousewheel",function(){ //計算鼠標滾輪滾動的距離 //一格3行,每行40像素,所以除以120 var v=event.wheelDelta/120; counter.innerHTML=counter.innerHTML*1+v; //阻止瀏覽器默認方法 return false; }); else if(!isFF) //除火狐外的現代瀏覽器也使用MouseWheel事件 counter.addEventListener("mousewheel",function(e){ //計算鼠標滾輪滾動的距離 var v=e.wheelDelta/120; counter.innerHTML=counter.innerHTML*1+v; //阻止瀏覽器默認方法 e.preventDefault(); },false); else //奇葩的火狐使用DOMMouseScroll事件 counter.addEventListener("DOMMouseScroll",function(e){ //計算鼠標滾輪滾動的距離 //一格是3行,但是要註意,這裏和像素不同的是它是負值 var v=-e.detail/3; counter.innerHTML=counter.innerHTML*1+v; //阻止瀏覽器默認方法 e.preventDefault(); },false); </script> 4、數組裏怎樣插入和取出內容 首先定義一個數組 var arr=[2,4,5,3,5,3,0];//這裏以整形數組為例 確定數組的長度arr.length; 利用循環語句遍歷數組 var arr=[2,4,5,3,5,3,0]; var arrvalue;//用於存放取出的數組的值 for(var i=0;i<arr.length;i++){ arrvalue=arr[i];//數組的索引是從0開始的 console.log(arrvalue);//把取出的值打印在控制臺上 } 5、遞歸 程序調用自身的編程技巧稱為遞歸( recursion)遞歸,就是在運行的過程中調用自己。 遞歸算法是一種直接或者間接地調用自身的算法。在計算機編寫程序中,遞歸算法對解決一大類問題是十分有效的,它往往使算法的描述簡潔而且易於理解。 遞歸算法解決問題的特點: (1) 遞歸就是在過程或函數裏調用自身。 (2) 在使用遞歸策略時,必須有一個明確的遞歸結束條件,稱為遞歸出口。 (3) 遞歸算法解題通常顯得很簡潔,但遞歸算法解題的運行效率較低。所以一般不提倡用遞歸算法設計程序。 (4) 在遞歸調用的過程當中系統為每一層的返回點、局部量等開辟了棧來存儲。遞歸次數過多容易造成棧溢出等。所以一般不提倡用遞歸算法設計程序。 6、函數封裝、調用 function getUserInfo(){ $.ajax({ type: "POST", url: "/user", dataType: "json", contentType: "application/json;utf-8", timeout: 6000, error: function () { }, success: function (data) { console.log(data); } }); }; 7、內置函數 javascript函數一共可分為五類: ·常規函數 ·數組函數 ·日期函數 ·數學函數 ·字符串函數 1.常規函數 javascript常規函數包括以下9個函數: (1)alert函數:顯示一個警告對話框,包括一個OK按鈕。 (2)confirm函數:顯示一個確認對話框,包括OK、Cancel按鈕。 (3)escape函數:將字符轉換成Unicode碼。 (4)eval函數:計算表達式的結果。 (5)isNaN函數:測試是(true)否(false)不是一個數字。 (6)parseFloat函數:將字符串轉換成符點數字形式。 (7)parseInt函數:將符串轉換成整數數字形式(可指定幾進制)。 (8)prompt函數:顯示一個輸入對話框,提示等待用戶輸入。例如: <script language="javascript"> <!-- alert("輸入錯誤"); prompt("請輸入您的姓名","姓名"); //(標題,預設值) confirm("確定否!"); //--> </script> (9)unescape函數:解碼由 escape函數編碼的字符。 2.數組函數 javascript數組函數包括以下4個函數: (1)join函數:轉換並連接數組中的所有元素為一個字符串。例: function JoinDemo() { var a, b; a = new Array(0,1,2,3,4); b = a.join("-");//分隔符 return(b);//返回的b=="0-1-2-3-4" } (2)langth函數:返回數組的長度。例: function LengthDemo() { var a, l; 執行這個函數, 希望有個回調,例如: 接上上面的函數寫 getUserInfo(data,function(data){ console.log(data); }) 8、形參、實參、作用域 def test(a): a = 20 print("這是在調用函數之時的值: %s"%a) a = 10 print("這是在調用函數之前的值: %s"%a) test(a) print("這是在調用函數之後的值: %s"%a) 運行結果: 這是在調用函數之前的值: 10 這是在調用函數之時的值: 20 這是在調用函數之後的值: 10 結論:當變量重名時函數內部的變量會覆蓋外部變量,因此盡量避免重名現象,雖然它能通過語法檢查。 9、全局變量 全局變量是編程術語中的一種,源自於變量之分。 變量分為局部與全局,局部變量又可稱之為內部變量。由某對象或某個函數所創建的變量通常都是局部 變量,只能被內部引用,而無法被其它對象或函數引用。 全局變量既可以是某對象函數創建,也可以是在本程序任何地方創建。全局變量是可以被本程序所有對 象或函數引用。一個局部變量在被其它對象引用時,會是一個空值。但全局變量卻不會出現這種情況。 10、局部變量 局部變量(Local variables)指在程序中只在特定過程或函數中可以訪問的變量。局部變量是相對於全局 變量而言的。在C++、C#、Ruby這些面向對象語言中,一般只使用局部變量。面向對象編程是現在普 遍采用的是軟件開發方法,因此無需考慮是局部變量還是全局變量,說到變量,往往都是局部變量。 11、原型鏈 JS在創建對象(不論是普通對象還是函數對象)的時候,都有一個叫做__proto__的內置屬性,用於指向創建它的函數對象的原型對象prototype。以上面的例子為例: console.log(zjh.__proto__ === person.prototype) //true 同樣,person.prototype對象也有__proto__屬性,它指向創建它的函數對象(Object)的prototype console.log(person.prototype.__proto__ === Object.prototype) //true 繼續,Object.prototype對象也有__proto__屬性,但它比較特殊,為null console.log(Object.prototype.__proto__) //null 12、對象是什麽 JavaScript 中的所有事物都是對象:字符串、數字、數組、日期,等等。 在 JavaScript 中,對象是擁有屬性和方法的數據。 屬性和方法 屬性是與對象相關的值。 方法是能夠在對象上執行的動作。 舉例:汽車就是現實生活中的對象。 汽車的屬性: car.name=Fiat car.model=500 car.weight=850kg car.color=white 汽車的方法: car.start() car.drive()6.8