1. 程式人生 > >標號(12):python(就業階段)——javascript入高階

標號(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物件、標籤。