Javascript和java的不同之處:
1 javascript是Netscape公司語言,基於對象和事件驅動,java是sun公司,現在是Orcacle公司
2 js是基於對象,java是面向對象
3 js是由瀏覽器解釋並執行,java是由jvm解釋並執行
4 js是弱類型的語言,java是強類型
5 js是非嚴謹的,java是嚴謹的,javascript運行在客戶端
javascript基本語法:
1、 變量
i. 通過var關鍵字定義變量,該變量可以賦予不同類型的常量
ii. var x=3;
iii. x=”abc”;
iv. 特殊的常量-àundefined
2、 語句
i. If、switch、while、do、while、for
ii. 使用邏輯運算符進行布爾表達式連接的時候,需要是短路與和短路或&&、||
iii. 因爲在js中,非0即爲true,0爲false,非null爲true,null爲false
iv. Js特有的語句:
v. with(對象){}:可以確定對象所使用的範圍,在範圍內,可以直接使用指定對象的屬性和行爲,而不需要用對象 .的形式調用。簡化了對象的操作;
vi. for(變量 in對象):可以對對象的屬性及行爲進行遍歷;
3、 數組
對於js的數組特點在於:該數組的長度是可變的,相對與java中的集合;
該數組中可以存放的元素類型是可以不同的
定義格式:
Var arr=[3,true,”abc”];
Var arr=new Array( );
Var arr=[[3,1,9],[3,4]];
操作形式和java一樣,都是通過for進行遍歷,同時也使用了指針思想
4、 函數:通過function關鍵字定義函數
DOM:document object model----à文檔對象模型
Dom三層模型:
Dom1:將html文檔封裝成對象
Dom2:將xml文檔封裝成對象
Dom3:將xml文檔封裝成對象
Dhtml:動態html
Html:將數據進行封裝
Dom:將標籤封裝成對象
Css:負責標籤中數據的樣式
Javascript:將三個進行融合,通過程序設計方式來完成動態效果的操作;
xmlHttpRequest----àAJAX
dom其實就是將一些標記型的文檔以及文檔中的內容當成對象,因爲可以在對象中定義其屬性和行爲,可以方便操作這些對象;
html、xhtml、xml:這些都是標記型文檔;
DHTML:是多個技術的綜合體,叫做動態的html;
標籤之間存在着層次關係:
Html
|--head
|--title
|--base
|--link
|--meta
|--style
|--script
|--body
|--div
|--form
|--input
|--select
|--span
|--a
|--table
|--tbody
|--tr
|--td
|--th
|--dl
|--dt
|--dd
通過這個標籤層次,可以形象的看做是一個樹形結構,加載進內存的是一棵DOM樹,這些標籤以及標籤的數據都是這棵樹上的節點;
DOM對已標記型文檔的解析有一個弊端就是文檔過大,相對消耗資源;對於大型文檔可以使用SAX方式解析;
節點之間的關係:父節點、子節點、兄弟節點(上一個兄弟節點--previousSibling、下一個兄弟節點--nextSibling)
獲取可以通過節點的層次關係完成,也可以通過document對象完成
getElementById:通過id屬性值獲取對應的節點對象,如果有多個id值相同,獲取到的是第一個id所屬對象;
getElementsByName:通過標籤的name屬性值獲取對象,返回的是一堆對象,其實是一個對象數組;
getElementByTagname:
實例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標題文檔</title>
<script type="text/javascript">
var str="";
function listNode(node,level)
{
printInfo(node,level);
level++;
var nodes=node.childNodes;
for(var x=0;x<nodes.length;x++)
{
if(nodes[x].hasChildNodes())
listNode(nodes[x],level);
else
printInfo(nodes[x],level);
}
}
function printInfo(node,level)
{
str+=getSpace(level)+"name:"+node.nodeName+"..type:"+node.nodeType+"..value:"+node.nodeValue+"<br/>"
document.write(str);
}
function getSpace(level)
{
var s="";
for(var x=0;x<level;x++)
{
s+="|--";
}
return s;
}
function getNodes()
{
listNode(document,0);
}
</script>
</head>
<body>
<input type="button"value="演示" οnclick="getNodes()"/>
<div id="divid">
滾滾長江東逝水
</div>
<table>
<tr>
<td>單元格一</td>
<td>單元格二</td>
</tr>
<tr>
<td>單元格一</td>
<td>單元格二</td>
</tr>
</table>
<a href="http://www.sina.com">新浪</a>
<span>石板區域</span>
</body>
</html>