1、JavaScript的組成:
a.ECMAScript:解釋器,翻譯
b.DOM:DocumentObject Model // 操作HTML的能力
c.BOM:BrowserObject Model //操作瀏覽器的能力
各組成部分的兼容性,ECMAScript幾乎沒有兼容性問題,DOM兼容性一般,BOM完全不兼容一般不用。
2、變量類型:typeof運算符
var a=12;
alert(typeof a);//會彈出number。
函數也有自己的類型,function。document是Object類型。
變量的類型取決於你存的東西。
常見的類型number,string,Boolean,undefined,object,function。
一個變量應該只存放一種類型。
3、數據類型之間的轉換:
var a="12";
parseInt(a)+1;//可以把字符串轉成數字,從左導遊掃描字符串,一旦發現不是數字就會跳出,因此他可以實現把左邊的數字提出來。
var a="aaa";
alert(parseInt(a));//會彈出NaN,not a Number。
NaN和NaN是不相等的,js裏面有函數isNaN(a);判斷是否是NaN。
parseInt轉換的是整數,不能轉換小數,而parseFloat轉成小數,因此可以都用parseFloat。
隱式類型轉換:
==、===、減法。
var a=5;
var a=‘5’;
alert(a==b)//彈出true。因爲轉換類型比較
alert(a===b)//彈出false,不轉換類型直接比較,全等於。
var a='12';
var b='5';
alert(a-b);//彈出7,隱式轉換。+號做字符串連接和數字相加,默認相加。減號只有數字相減。
4、變量作用域和閉包:
局部變量、全局變量,作用範圍跟其他語言一樣
子函數可以使用父函數的變量
5、命名規範:
可讀性、規範性。
匈牙利命名法:類型前綴、首字母大寫。
類型 前綴 類型 實例 數組 a Array aItems 布爾值 b boolean bIsComlete 浮點數 f float fPrice 函數 fn Function fnHandler 整數 i Integer iItemCount 對象 o Object oDivl 正則表達式 re RegExp reEmailCheck 字符串 s String sUserName 變體變量 v Variant vAnvthing
6、運算符:
算數:+、-、*、%;實例隔行變色
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript">
window.onload=function()
{
var aLi=document.getElementsByTagName('li');
for(var i=0;i<aLi.length;i++)
{
//
if(i%2==0)
{
aLi[i].style.background='#CCC';
}
}
}
</script>>
</head>
<body>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</body>
</html>
賦值:+、+=、-=、++、--、/=、%=
關係:<、>、==、===、!=、!==
邏輯:&&、||、!
實例全選與反選
運算符優先級:括號。
7、程序流程控制:
for,while等
switch裏面可以是字符串,三目運算符?,
8、JSON:
什麼是Json?
也是用來存東西的,
var a=12;var b=5;var c='abc';
var json={a: 12,b: 5,c: 'abc'};
alert(json.a);//可以像普通變量一樣使用。
和數組的區別
var json={a: 12,b: 5,c: 'abc'};
var arr=[12,5,7];
alert(json.a);//等價於下一個
alert(arr[0]);
alert(json['a']);//json的下標是字符串。
json沒有length,json關於循環怎麼辦呢?
//數組的循環
for(var i=0;i<arr.length;i++)
{
alert('第'+i+'個'數字);
}
//另一種for in循環
for(var i in arr)
{
alert('第'+i+'個'數字);
}
因此json可以用for in循環輸出。