首頁 > web前端 > js教程 > 主體

JavaScript 基礎加強影片教學及原始碼推薦

巴扎黑
發布: 2017-08-24 17:45:17
原創
1409 人瀏覽過

JavaScript一種直譯式腳本語言,是一種動態類型、弱型別、基於原型的語言,內建支援類型。它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於客戶端的腳本語言,最早是在HTML(標準通用標記語言下的一個應用)網頁上使用,用來為HTML網頁增加動態功能。

《JavaScript 基礎加強視訊教學》內容重點說明JavaScript基礎知識,涉及程式設計的基本語法,主要包含了變數、資料型別、型別轉換、流程控制語句、陣列、簡單型別和複雜型別的區別、對象的介紹,透過案例鞏固基本語法。本套影片將帶你進入奇妙的JavaScript的世界。

JavaScript 基礎加強影片教學及原始碼推薦

影片播放位址:http://www.php.cn/course/543.html

本影片困難是數組循環,對邏輯能力有所考察。以下總結下各種循環實例:

我們如何遍歷數組中的元素? 20年前JavaScript剛萌生時,你可能這樣實作陣列遍歷:

var arr=["one","two","three"];2 for(var i=0;i<arr.length;i++){3     document.write(arr[i]);4 }
登入後複製

 自ES5正式發布後,你可以使用內建的forEach方法來遍歷陣列:

myArray.forEach(function (value) {
     console.log(value);});实际上forEach有三个参数  分别为  值  下标  数组本身 于是我们有[].forEach(function(value, index, array) {    // ...});
对比jQuery中的$.each方法:
$.each([], function(index, value, array) {    // ...});
登入後複製

會發現,第1個和第2個參數剛好是相反的,大家要注意了,不要記錯了。後面類似的方法,例如$.map也是如此。

$.each(Array, function(i, value) {
     Array   //数组     this;      //this指向当前元素
    i;         //i表示Array当前下标
    value;     //value表示Array当前元素});

var arr = [ "one", "two", "three", "four"];     
$.each(arr, function(){     
   alert(this);     
});     

//上面这个each输出的结果分别为:one,two,three,four   
var obj = { one:1, two:2, three:3, four:4};     
$.each(obj, function(key, val) {     
   alert(obj[key]);           
});   
//这个each就有更厉害了,能循环每一个属性 
//输出结果为:1   2  3  4
登入後複製

例如:

arr.forEach(function(i,j,v){
    document.write("<br />数组的值"+i+
                     "<br />数组的下标"+j+","+
                     "<br />数组本身"+v+"---")
})
登入後複製

這段程式碼看起來更簡潔,但這個方法也有一個小缺陷:

forEach不夠靈活

arr.forEach不好用 你不能使用break語句中斷循環,也不能使用return語句回到外層函數。

當然,如果只用for迴圈的語法來遍歷陣列元素也很不錯。

那麼,你一定想嘗試for-in迴圈:

for (var index in myArray) { // 千万别这样做  console.log(myArray[index]);
}
登入後複製

在這段程式碼中,賦給index的值不是實際的數字,而是字串「0」、「 1”、“2”,此時很可能在無意之間進行字串算數計算,例如:“2” + 1 == “21”,這給編碼過程帶來極大的不便。

簡而言之,

for-in是為普通物件設計的,你可以遍歷得到字串類型的鍵,因此不適用於數組遍歷。

for...in 不適合用來遍歷陣列

for…in會遍歷到自訂屬性甚至原型屬性、index是字串而不是數值、某些情況下甚至不依序遍歷

強大的for-of迴圈

ES6不會破壞你已經寫好的JS程式碼。目前看來,成千上萬的Web網站依賴for-in循環,其中一些網站甚至將其用於數組遍歷。如果想透過修正for-in循環增加數組遍歷支援會讓這一切變得更加混亂,因此,標準委員會在ES6中增加了一種新的循環語法來解決目前的問題。

我們需要更方便的遍歷陣列的方法,就像用 for...in 遍歷物件一樣簡單易用的方法,那就是 ​​for...of

就像這樣:

for (var value of myArray) {
  console.log(value);
}
登入後複製
登入後複製

是的,與之前的內建方法相比,這種循環方式看起來是否有些眼熟?那好,我們將要探究for-of循環的外表下隱藏著哪些強大的功能。現在,只需記住:

這是最簡潔、最直接的遍歷數組元素的語法

這個方法避開了for-in循環的所有缺陷

#與forEach()不同的是,它可以正確回應break、continue和return語句

for-in迴圈用來遍歷物件屬性。

for-of迴圈用來遍歷資料—例如陣列中的值。

但是,不只如此!

for-of循環也可以遍歷其它的集合

for-of循環不僅支援數組,還支援大多數類別數組對象,例如DOM NodeList對象。

for-of循環也支援字串遍歷,它將字串視為一系列的Unicode字元來進行遍歷:

for (var value of myArray) {
  console.log(value);
}
登入後複製
登入後複製

它同樣支援Map和Set物件遍歷。

$.map(array,function)

語法分析:對陣列array中的每個元素,呼叫function函數進行處理,然後將結果返回,得到一個新的數組。

實例講解:將陣列中的每一個元素*2,傳回一個新的陣列。程式碼如下

<html>
<head>
<script type="text/javascript" src="jquery-1.8.2.min.js"></script>
<script type="text/javascript">
var arr = [2,3,6];
var arr2 = $.map(arr,function(item){return item*2;});
for(var i=0,len=arr2.length;i<len;i++){
 document.write(arr2[i]+"<br />");//结果为 4 6 12
}
</script>
</head>
</html>
登入後複製

補充說明:item代表每一個元素,這是形參,可用其它代替。

本影片主講老師形像生動,課堂氣氛是相當活躍,能夠充分調動學生在課堂上的學習動機。講課注重細節,對細小知識點講解細緻,不會疏漏任何知識點。

課件原始碼:http://www.php.cn/xiazai/code/1812

以上是JavaScript 基礎加強影片教學及原始碼推薦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板