JS入門

JS入門

在前端這片領域裏,JavaScript是舉足輕重的。JS是事件驅動且面向對象的一種腳本語言,靈活地操控HTML,CSS以及瀏覽器,同時實現各種編程任務,可以說前端就是JS的天下。下面我們討論一下幾個基礎性問題

l        要點1:引入JS方式

這件事情看似簡單,其實是很有講究的,用哪種方式引入,在什麼地方引入,絕不能隨便。

引入方式:【是否需要創建函數】

[1]行內式:<p onClick="JavaScript:alert('Hello');">ClickHere</p>

[2]嵌入式:

不創建函數[頁面加載時就調用]

<script language="JavaScript"type="text/JavaScript">

        alert("Hello");

</script>

創建函數[觸發事件後調用]

<script language="JavaScript"type="text/JavaScript">

   function msg(){

        alert("Hello");

    }

</script>

 [3]鏈接式

<script language="JavaScript"type="text/javascript" src="my.js"></scritp>

 

引入位置:【頁面是從上到下加載,避免操縱空節點】

放入<head>中 VS 放入<body>中

 

l        要點二:事件綁定觸發的方式

事件具體如何觸發,這個是看怎麼方便怎麼弄,都可以實現同樣的功能。

[1]事件處理函數

“HTML標記事件處理程序”[即調用自定義函數,或行內書寫代碼]

<ponclick="alert("Hello");">Click me</p>

 

“以屬性的形式出現的事件監聽程序”

<scripttype="text/javascript">

       window.onload=function(){

              varop=document.getElementById("myP");

              op.onclick=function(){

                     alert("Hello");

              }

       }

</script>

<p id="myP">ClickMe</p>

 

[2]通用事件監聽程序

“IE中用attachEvent()和detachEvent()”

<script type="text/javascript">

       functionmyClick1(){

              alert("Hello,Iam myClick1");

              oP.detachEvent("onclick",myClick1);

       }

       functionmyClick2(){

              alert("Hello,I am myClick2");

       }

       window.onload=function(){

              oP=document.getElementById("myP");

              oP.attachEvent("onclick",myClick1);

              oP.attachEvent("onclick",myClick2);

       }

</script>

 

“DOM中用addEventListener()和removeEventLister()”

只需要在上面例子中換掉那兩個函數就可以啦

 

l        要點三:數據類型與運算符

弱數據類型,數據類型都視爲對象,有一系列屬性和方法,如String,number,boolean,array

簡單說一下數組的創建方式:

var arr=new Array();

var Map=newArray("China","USA");

varMap=["China","USA"];

 

運算符有很多,這裏介紹幾個常用的

[1]判等

“==”數值是否相等

“===”數值和類型是否全等

[2] “in”判斷某個屬性是否存在於某個對象中

function msg(){

   var obj={title:"Name",author:"Tang"}

   alert("title" in obj);

}

[3]“instanceof”判斷某個對象是否爲某個類的實例

function msg(){

   var d=new Date();

   alert(d instanceof Date);

}

[4] “typeof”返回某個對象的數據類型

function msg(){

   var a="abc";

   alert(typeof a);

}

[5] “delete”刪除變量或其屬性,系統變量和var聲明的變量不能刪除

y=4;

delete y;

[6]“new”創建一個對象的實例

 

l        要點4:函數與對象

[1]函數:可重用的代碼段function fName(arg1,arg2){},可見函數參數無類型,甚至可以不指定,調用時直接應用。若有返回值,直接用return即可。用arguments內置數組對象可以訪問函數的參數列表,arguments.length返回其長度

[2]對象:

(1)瀏覽器對象BOM:window[alert()、confirm()、prompt()]、location、history、navigator、document、screen]

(2)JS內置對象:Date、Math、Array、String等

(3)自定義對象:var myObj=new Object();

 

下面對對象的幾個常用方法舉例:

window對象的定時操作函數

週期性執行:window.setInterval()與clearInterval()

延時後執行:window.setTimeout()與clearTimeout(),可以結合遞歸

<headlang="en">

    <meta charset="UTF-8">

    <title>mytest page</title>

   <script type="text/javascript"src="js/my.js"></script>

 

   <style type="text/css">

       #main{

           width: 720px;

           margin: 0 auto;

           text-align: left;

           margin-top: 30px;

       }

   </style>

   <script type="text/javascript">

       function $(id){

           return document.getElementById(id);

       }

       function dispTime(){

           $("clock").innerHTML="<b>"+(newDate()).toLocaleDateString()+"</b>";

       }

       function init(){

           dispTime();

           window.setTimeout(init(),1000);

       }

   </script>

</head>

<body onload="init()">

   <div id="clock"></div>

</body>

 

用另一個函數只需要將

window.setTimeout(init(),1000);改爲window.setInterval(dispTime,1000);

 

location對象的頁面鏈接改變與回退

可回退方式用的是屬性:location.href="http://www.baidu.com";

不可回退方式用方法:location.replace(http://www.baidu.com);

history主要用來控制瀏覽器的後退和前進,但是不能獲取到URL

 

l        要點5:DOM操作

DOM模型中操作每一個節點node都有一系列屬性和方法

 

訪問指定節點

方式一:getElementById(),getElementsByName(),getElementsByTagName()

方式二:通過document的forms[elements屬性],images等集合屬性訪問name,注意用下標確定具體的某一個

 

訪問相關節點

通過已知節點的屬性可以訪問相關節點:documentElement,firstChild,lastChild,childNodes,parentNode,previousSibling,nextSibling等

 

檢查節點類型

元素節點【nodeType=1】,屬性節點【2】,文本節點【3】,注意屬性節點和文本節點是兄弟節點,同屬於元素節點的子節點

 

創建節點

常用方法:createElement(),createTextNode(),cloneNdoe()

 

操作節點

常用方法:appendChild(),insertBefore(),removeChild(),replaceChild()

實用方法:innerHTML屬性

 

操作節點屬性

getAttribute()【有時候用"元素名.屬性名"更直接,如“myImg.src”】

setAttribute()【同上】

removeAttribute()

 

訪問和修改CSS樣式

通過style對象:如oP.style.color="red";【注:font-size等應寫成style.fontSize等】

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章