從制造到創造
          軟件工程師成長之路
          posts - 292,  comments - 96,  trackbacks - 0

          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

          ???????????????????? ?snap0005.gif


          變量

          定義一個變量,系統就會為之分配一塊內存,程序可以用變量名來表示這塊內存中的數據。

          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);

          ?????????????? 運行結果:

          ????????????????????? ?snap0006.gif


          賦值運算符:
          =????將一個值或表達式的結果賦給變量
          ???????例如: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

          ????????????????????? snap0007.gif????? ?snap0008.gif

          << (左移運算符):右邊空位補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

          ????????????????????????????????snap0010.gif???????? snap0009.gif

          注意:移位操作不能改變操作數的值!

          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

          ????????????snap0011.gif????????? snap0012.gif???????? snap0013.gif
          posted on 2006-09-17 13:01 CoderDream 閱讀(381) 評論(0)  編輯  收藏 所屬分類: JavaScript

          <2006年9月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          常用鏈接

          留言簿(9)

          我參與的團隊

          隨筆分類(245)

          隨筆檔案(239)

          文章分類(3)

          文章檔案(3)

          收藏夾(576)

          友情鏈接

          搜索

          •  

          積分與排名

          • 積分 - 458389
          • 排名 - 114

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 芦山县| 贵阳市| 星座| 丹东市| 阳朔县| 雅安市| 武定县| 嘉黎县| 咸丰县| 开封县| 进贤县| 乌审旗| 时尚| 康马县| 常德市| 东光县| 镇安县| 泗水县| 交城县| 镇康县| 新蔡县| 耿马| 石渠县| 古交市| 冷水江市| 和田县| 鄢陵县| 沐川县| 芦山县| 岫岩| 肃南| 万荣县| 漳平市| 广昌县| 黄山市| 温州市| 永定县| 西乌珠穆沁旗| 读书| 晋宁县| 岑溪市|