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


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


