JavaScript 的基本語法
JavaScript的標識符
標識符是指JavaScript中定義的符號,例如,變量名、函數名、數組名等。
標識符可以由字母、數字、下劃線(_)和美元($)
注意:標識符不能以數字開頭
JavaScript大小寫敏感
JavaScript程序代碼的格式
以分號(;)結束
JavaScript程序的注釋
① // 單行注釋
② /*? ....? */ 中可以嵌套"http://",但是/*? */不能相互嵌套
基本數據類型與常量
整型常量
???a、十六進制:以0x或者0X開頭,例如:0x8a、0Xff
?? b、八進制:以0開頭,例如:0123
???c、十進制:例如:12345
實型常量(即浮點型):12.32、5E7、4e59
布爾值:true 和 false
字符串型常量:"a book of JavaScript"、"abc"、"a"、""。
字符串中的特殊字符,需要以反斜杠(\)后跟一個普通字符來表示,例如:\r、\n,\b,\',\",\\
null 常量 變量已經有值而且值為空
undefined 常量:變量不存在或者類型未定義
?1?<html>
?2?????<head>
?3?????????<meta?http-equiv="Content-Type"?content="TEXT/HTML;?Charset=GB2312">
?4?????????<title>?未定義類型?</title>
?5?????</head>
?6?????<body?bgcolor="white">
?7?????????<script?language?=?JavaScript>
?8?????????????<!--
?9?????????????????var?number;
10?????????????????alert(number?+?"?abc");
11?????????????//-->
12?????????</script>
13?????</body>
14?</html>
?????????輸出結果為:undefined abc
???????????????????? ?
變量
定義一個變量,系統就會為之分配一塊內存,程序可以用變量名來表示這塊內存中的數據。
JavaScript為弱類型,所以不能指定變量類型,系統會自動指定類型
聲明變量要使用Var關鍵字
例如:var name
聲明變量的同時為其賦值
例如:var name=222222222;
對已賦值的變量賦予一個其他類型的數據
var name2 = "222";
name2 = 333;
name2 = name2 + 1;?// name2等于334
變量可以不先聲明直接使用
例如:x=1234
運算符
算術運算符
+ 加法運算符或正值運算符 例如,x+5,+6。
?+ 還能實現多個字符串的相連,而且也能將字符串與其它類型的數據類型相連成一個字符串,條件是該表達式中至少有一個字符串,例如:"x"+123的結果為"x123"。
?
%?求模運算符(算術中的求余)a%b結果中的符號取決于a 的符號。
?
1?????var?a?=?104;
2?????var?b?=?a%10;????
3?????var?c?=?a%(-10);
4?????
5?????var?x?=?-104;
6?????var?y?=?x%10;
7?????var?z?=?x%(-10);
8?????
9?????alert("b?=?"?+?b?+?";?c?=?"?+?c?+?";?y?=?"?+?y?+?";?z?=?"?+?z);
?????????????? 運行結果:
????????????????????? ?
賦值運算符:
=????將一個值或表達式的結果賦給變量
???????例如:x=3
+=????將變量與所賦的值相加后的結果在賦給變量
比較運算符
==????當左邊操作數等于右邊操作數相等時返回True
邏輯運算符
&&???邏輯與 兩邊只能是比較運算的結果(布爾型)
||???????邏輯或
!?????? 邏輯非
位運算符
&????? ?只有參加運算的兩位都為1,運算的結果才為1,否則就為0。
|???????? 只有參加運算的兩位都為0,運算的結果才為0,否則就為1。
^????????只有參加運算的兩位不相同,運算的結果才為1,否則就為0。
>>(右移運算符): 將左邊操作數在內存中的二進制數據右移右邊操作數指定的位數,左邊移空的部分補1
相對于除2
?1?????????????alert(8?>>?1);????????//?將8右移1位
?2?????????????
?3?????????????/*
?4???????????????????????? ?0000?1000(8)
?5?????????????? 右移1位????0000?0100(4)
?6?????????????*/
?7?????????????
?8?????????????alert(-8?>>?1);
?9?????????????/*
10?????????????負數在內存中以補碼形式保存
11?????????????原碼:0000?1000
12?????????????反碼:1111?0111
13?????????????補碼:1111?1000?(補碼為原碼取反加1)
14?????????????
15?????????????右移:1111?1100??(得到補碼形式的結果)
16?????????????反碼:0000?0011?
17??????????????????????????0000?0001?(減1,相對于加負1)
18?????????????原碼:0000?0100?(-4)
19?????????????
20?????????????*/
???????????????運行結果:8右移1位得到4,-8右移1位得到-4
?????????????????????
????? ?
<< (左移運算符):右邊空位補0
相對于乘2
>>>? 將左邊操作數在內存中的二進制數據右移右邊操作數指定的位數,左邊移空的部分補0
?1?var?a?=?0x80000000?>>?1;
?2?alert(a.toString(16));
?3?
?4?var?b?=?0x80000000?>>>?1;
?5?alert(b.toString(16));
?6?/*
?7??????????? 8:?1000
?8?>>????? c:?1100?-40000000??右移1位,左邊補1
?9?>>>????4:?0100??40000000??右移1位,左邊補0
10?????
11?*/
12?
????????? 輸出結果為:-40000000 和 40000000
????????????????????????????????

????????

注意:移位操作不能改變操作數的值!
1?????????????var??b?=?8;
2?????????????alert(b?>>?1);???????//?結果為:4
3?????????????alert(b);??????????????? //?結果為:8
4?????????????b?=?b?>>?1;???????????//?將b右移1位后的結果賦給b
5?????????????alert(b);??????????????? //?結果為:4
????????? 輸出結果:先輸出4,然后輸出8,最后輸出4
????????????

?????????

????????
posted on 2006-09-17 13:01
CoderDream 閱讀(377)
評論(0) 編輯 收藏 所屬分類:
JavaScript