6.8
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()
car.brake()
轉載于:https://www.cnblogs.com/czfzm/p/6970085.html
總結
- 上一篇: Unity Webm格式视频报错
- 下一篇: Android 捕获异常,上报异常日志,