標號(12):python(就業階段)——javascript入高階
<1>陣列及操作方法
1、陣列
(1)定義:
陣列就是一組資料的集合(數組裡面的資料可以是不同型別)
(2)建立方法:
1>物件的例項建立 var aList = new Array(1,2,3);
2>直接量建立 var aList2 = [1,2,3,‘asd’];
2、運算元組中資料的方法 (API應用程式介面)
(1)aList.length;:獲取陣列的長度(和for迴圈配合遍歷陣列)
(2)aList[0]:用下標運算元組的某個資料;(可以根據索引值獲取和修改陣列中的元素)
(3)join() 將陣列成員通過一個分隔符合併成字串
(4)push() 和 pop() 從陣列最後增加成員或刪除陣列中最後的元素並返回刪除的元素
(5)reverse() 將陣列反轉
(6)indexOf() 返回陣列中元素第一次出現的索引值,沒有過返回-1
(7)splice() 在陣列中增加或刪除成員
第一位:從哪個索引值開始
第二位:刪除幾位 (指定位置插入,不刪除時,寫0,刪除指定元素時,寫1)
第三位:新增元素
(8)sort() 排序 預設升序
newArr.sort(function(a,b){ return a-b})
1>a-b:升序
2>b-a:降序
3、多維陣列
定義:多維陣列指的是陣列的成員也是陣列的陣列,批量運算元組中的資料,需要用到迴圈語句。
- python中的字典對應js中的物件{ },用的較多的陣列中套物件
<script>
var obj = { 'name':'張三'}
</script>
<2>迴圈語句
1、for迴圈
作用:遍歷陣列/字串
<script>
for(var i=0;i<len;i++) { }
</script>
- 將陣列資料放入頁面
< html>
<body>
<div>
<ul id='box'>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
<script>
var arr = ["123", "1dsfs24", "456"]
var str = '';
for (var i=0; i < arr.length; i++){
str += "<li>"+ arr[i] +"</li>"
}
var ul = document.getElementById('box')
console.log(ul)
console.log(str)
ul.innerHTML = str;
</script>
</body>
</html>
2、while迴圈
<script>
var i=1;
while(i<5){ i++}
</script>
<3>字串處理方法
沒有三引號,不能一單一雙,不可修改型別,不能修改
1、字串合併操作:“ + ”(如果多個值,有一個是字串,那麼最後拼接完是字串)
var iNum01 = 12;
var iNum02 = 24;
var sNum03 = '12';
var sTr = 'abc';
alert(iNum01+iNum02); //彈出36
alert(iNum01+sNum03); //彈出1212 數字和字串相加等同於字串相加
alert(sNum03+sTr); // 彈出12abc
2、parseInt() 將數字字串轉化為整數
var sNum01 = '12';
var sNum02 = '24';
var sNum03 = '12.32';
alert(sNum01+sNum02); //彈出1224
alert(parseInt(sNum01)+parseInt(sNum02)) //彈出36
alert(parseInt(sNum03)) //彈出數字12 將字串小數轉化為數字整數
3、parseFloat() 將數字字串轉化為小數
var sNum03 = '12.32'
alert(parseFloat(sNum03)); //彈出 12.32 將字串小數轉化為數字小數
4、split() 把一個字串分隔成字串組成的陣列
var sTr = '2017-4-22';
var aRr = sTr.split("-");
var aRr2= sTr.split("");
alert(aRr); //彈出['2017','4','2']
alert(aRr2); //彈出['2','0','1','7','-','4','-','2','2']
5、indexOf() 查詢字串是否含有某字元,沒有返回-1。存在返回第一個存在的索引值。
var sTr = "abcdefgh";
var iNum = sTr.indexOf("c");
alert(iNum); //彈出2
6、**substring() 和 slice()**擷取字串 用法: substring(start,end)(不包括end)
var sTr = "abcdefghijkl";
var sTr2 = sTr.substring(3,5);
var sTr3 = sTr.substring(1);
alert(sTr2); //彈出 de
alert(sTr3); //彈出 bcdefghijkl
7、**.split().reverse().join()**字串反轉
var str = 'asdfj12jlsdkf098';
var str2 = str.split('').reverse().join('');
alert(str2);
8、replace()替換
<4>定時器
1、定時器型別及語法
- 定時器:
setTimeout 只執行一次的定時器
clearTimeout 關閉只執行一次的定時器
setInterval 反覆執行的定時器
clearInterval 關閉反覆執行的定時器 - 語法:
var time1 = setTimeout(myalert,2000);
var time2 = setInterval(myalert,2000);
/*
clearTimeout(time1);
clearInterval(time2);
*/
function myalert(){
alert('ok!');
}
2、定時器在javascript中的作用
1、定時呼叫函式
2、製作動畫
<5>變數作用域
1、含義:
變數作用域指的是變數的作用範圍
2、分類:
1、全域性變數:在函式之外定義的變數,為整個頁面公用,函式內部外部都可以訪問。
2、區域性變數:在函式內部定義的變數,只能在定義該變數的函式內部訪問,外部無法訪問
<script type="text/javascript">
// 定義全域性變數
var a = 12;
function myalert()
{
// 定義區域性變數
var b = 23;
alert(a);
// 修改全域性變數
a++;
alert(b);
}
myalert(); // 彈出12和23
alert(a); // 彈出13
alert(b); // 出錯
</script>
<6>封閉函式
1、含義:
封閉函式是javascript中匿名函式的另外一種寫法,建立一個一開始就執行而不用命名的函式。封閉函式就是匿名函式的自呼叫(也稱為沙箱)
(function(){
alert('hello!');
})();
- 還可以在函式定義前加上“~”和“!”等符號來定義匿名函式
!function(){
alert('hello!');
}()
2、封閉函式的作用 :
封閉函式可以創造一個獨立的空間,在封閉函式內定義的變數和函式不會影響外部同名的函式和變數,可以避免命名衝突。例如:在頁面上引入多個js檔案時,用這種方式新增js檔案比較安全。
var iNum01 = 12;
function myalert(){
alert('hello!');
}
(function(){
var iNum01 = 24;
function myalert(){
alert('hello!world');
}
alert(iNum01);
myalert()
})()
alert(iNum01);
myalert();
注意:匿名函式執行完就釋放發了,加封號的好處可以隔絕後面的程式碼,避免出錯。
<7>拓展javascript標籤操作
1、根據標籤名/類名/id名獲取
(1)通過標籤名獲取標籤
通過標籤名獲取元素,返回一個列表(偽陣列),沒有返回空列表(偽陣列)
偽陣列:只能檢視不能修改
<script>
document.getElementsByTagName("li")
</script>
(2)通過Id獲取標籤
document.getElementById("box")
(3)通過類名獲取標籤
document.getElementsByClassName("aaa")
2、通過標籤找兄弟標籤/子標籤/父標籤(訪問關係/節點層級
li3.nextElementSibling
li3.previousElementSibling
li3.parentNode
li3.firstElementChild
li3.lastElementChild
li3.children
li3.childNodes (連換行也會當文字抓取)
3、標籤的操作
(1)建立
<script>
var newLi = document.createElement("li")
newLi.innerHTML = "我是li標籤"
</script>
(2)新增
<script>
var ul = li3.parentNode
ul.appendChild(newLi)
</script>
(4)刪除
<script>
ul.removeChild(li3)
</script>
4、DOM(很重要)
Document Object Model:把整個頁面上所有的標籤載入到記憶體中以樹狀資料結構儲存
js方法獲取的標籤也被稱為: 節點、js物件、DOM物件、標籤。