JS的發展史

1、JavaScript發展史,JavaScript概念。
1.1 、JS發展史:
山寨打敗原創(微軟,網景)
1.1.1、1995年,表單驗證。
1.1.2、Netscape(網景),布蘭登(Brendan Eich)
1.1.3、標準:ECMAScript (國際標準化組織及國際電工委員會 )

1.2、JS的概念:
網頁交互、客戶端腳本語言(與服務端腳本語言不同)
1.2.1、JS是一種專爲與網頁交互而設計的客戶端腳本語言。
1.2.2、程序是有序的指令的集成。
1.2.3、JS 是一種具有面向對象能力的、解釋型的程序設計語言。
1.2.4、基於對象和事件驅動並具有相對安全性的客戶端腳本語言。
1.2.5、不需要在一個語言環境下運行,只需要支持它的瀏覽器。

1.3、JS的作用:
驗證發往服務器端的數據、增加 Web互動、加強用戶體驗度等.
1.3.1、表單驗證
1.3.2、用戶互動
1.3.3、網頁特效

1.4、運行平臺:
IE,firefox(火狐),chrome(谷歌),歐朋,蘋果等瀏覽器。

1.5、客戶端腳本語言的特點
JS腳本語言的特點:
1.5.1、腳本語言。解釋型、逐行進行解釋。
1.5.2、基於對象。基於對象、可以創建對象,可能使用現有的對象。 
1.5.3、簡單。弱類型的變量類型,對使用的數據類型無嚴格要求。
1.5.4、動態性。採用事件驅動,不用經過服務器可對用戶的輸入做出響應。
訪問網頁時,鼠標在網頁中進行鼠標點擊或上下移、窗口移動等操作,JS可直接對這些事件給出相應的響應。
1.5.5、跨平臺性。不依賴於操作系統,僅需要瀏覽器的支持。
JS可以在任意機器使用,前提機器上瀏覽器支持JSt腳本語言,大多數的瀏覽器都支持JS腳本語言。

2、JavaScript的組成。
2.1、JS由三部分組成。
ECMAScript、BOM、DOM
2.1.1、核心 : ECMAScript
歐洲計算機製造商協會
2.1.2、BOM
2.1.2.1、瀏覽器對象模型
2.1.2.2、Browse Object Model,
2.1.2.3、提供與瀏覽器交互的方法和接口(API),
2.1.2.4、利用BOM控制瀏覽器顯示頁面以外的部分。
2.1.3、DOM
2.1.3.1、文檔對象模型
2.1.3.2、Document  Object Model,
2.1.3.3、提供訪問和操作網頁HTML內容的方法和接口。

2.2:JavaScript 和 ECMAScript
2.2.1、含義相同。
2.2.2、JavaScript 的含義 比ECMA-262 中規定的多。

2.3、編輯工具和運行平臺
2.3.1、編輯工具
HBuilder,Dreamweaver,sublime Text,Notepad++,文本等..
2.3.2、運行平臺
IE,firefox(火狐),chrome(谷歌),歐朋,蘋果等瀏覽器。

3、JavaScript的標籤。
3.1、標籤
3.1.1、文件引入
<script type=" 文件類型 " src=" 路徑 " ></script>
3.1.1.1、 
3.1.1.1.1、 type 腳本語言的類型 type = text/javacript
3.1.1.1.2 、src 要引入的外部文件 src = " 路徑 "
3.1.1.2、注意:
3.1.1.2.1、不可以使用單標。
3.1.1.2.2、不可以在引入了外部文件的標籤中寫代碼。

3.1.2、代碼
alert( " 每句話後面要寫分號結束! " ) ;
3.1.3、 
document.write( " 可以輸出任何HTML的代碼 " );

3.2、JS與HTML的執行順序
3.2.1、從上朝下,誰在前先執行誰,無特殊需求。
3.2.2、JS代碼一般寫在<head>與</head>中間,也可在html文件的任何地方。
3.2.3、可以出現多個JS標籤。

3.3、JS的註釋
3.3.1、單行註釋 //
3.3.2、多行註釋 /* */

4、JS的數據類型,變量。
4.1、字面量、直接量。
程序中直接顯示的數據
4.1.1、數字字面量 Number : 100
4.1.2、字符串字面量 String :" 張三 "
4.1.3、布爾字面量 Boolean : false / true
4.1.4、正則表達式字面量 : /abc/gi
4.1.5、對象字面量爲空 Object : null
4.1.6、對象字面量表達式 Object :{x:1, y:2}
4.1.7、數組字面量表達式 Array :[1,2,3,4,5]

4.2、變量的定義
4.2.1、使用 var
 var age;       //var 是關鍵字,age是變量名
4.2.2、 賦值:age = 20;
4.2.3、 定義的同時賦值: var age=20;
4.2.4、可以一次定義多個變量:
var name=“zhangsan", age=18,weight=108;
4.2.5、JS是弱數據類型,容錯性較高, 賦值後才確定數據類型
var temp;             // temp 時啥數據類型?不確定 
temp = 12;             // temp 變量是數字類型
temp = “hello”;      // temp 變量變成了字符串類型
alert(typeof temp); // typeof 判斷數據類型

4.2.6、關鍵字和保留字

4.2.7、標識符和命名規範
4.2.7.1、標識符
JS定義的符號,即:變量名、函數名等。
4.2.7.1.1、 標識符組成
任意的大小寫字母、數字、下劃線(_)和美元符 ($)。
4.2.7.1.2、不能以數字開頭。
4.2.7.1.3、不能有關鍵字和保留字。
4.2.7.1.4、區分大小寫。
例:age和Age表兩個不同的變量。
強烈不建議使用同一個單詞的大小寫區分兩個變量。

4.7.2、變量的命名
4.7.2.1、匈牙利命名法。見名知意
4.7.2.2、駝峯命名法。

4.8、數據類型
4.8.1、Boolean:  布爾類型
4.8.2、Number:數值類型、數字(整數,浮點數float)
4.8.3、String:字符串類型
4.8.4、Array:數組類型
4.8.5、Object:對象類型
4.8.6、Null、Undefined:特殊類型
4.8.7、NaN:非數值類型
4.8.8、Function:函數類型

4.9、typeof
typeof 操作符用來檢測值或變量的數據類型。
返回類型有:
undefined   未定義
boolean     布爾值
string         字符串
number       數值
object         對象、數組或者null 
function     函數
array 數組

4.10、Undefined 類型
4.10.1、只有一個值,undefined 。
4.10.2、使用 var 聲明變量,無初始化,變量值爲 undefined 。
例:var box;
alert(box);//undefined
4.10.3、定義變量,聲明的同時賦值 。

4.11、Null 類型
只有一個值,null 。
表示一個空對象引用(指針),而 typeof 操作符檢測 null 會返回 object 。
例:var box = null;
alert(typeof box);

4.12、Undefined 與 Null 的關係。
4.12.1、null (父母)派生 undefined(子女),
ECMA-262 規定
當 undefined == null 即值相等時,則 返回 true。
4.12.2、數據類型不同。
null 返回是 Object類型
undefined 返回是 undefined 類型。
例:var box;
var car = null;
alert(typeof box == typeof car); // 值相等,類型不同

4.13、Boolean 類型
4.13.1、兩個值(字面量):true和false。
true = 1,false = 0。
4.13.2、JS區分大小寫,所以True 和 False 或者其他都不是 Boolean 類型的值。
例:var box = true;
alert(typeof box);
4.12.3、Boolean 可以將一個值轉換爲 Boolean 值,可以使用轉型函數Boolean()。
var hello = " Hello World! ";
var hello2 = Boolean(hello);
alert(typeof hello2);
4.12.3.1、Boolean 類型轉換規則
String: 非空字符串爲true,空字符串爲false 。
Number: 非0數值爲true,0或者NaN爲false 。
Object: 對象不爲null,則爲 true,null爲false 。
Undefined: undefined 爲 false 。

4.13、Number 類型
包括:整型、浮點型。
4.13.1、整型
例:var box = 100; // 十進制整數
alert(box);
4.13.2、浮點類型
必須包含一個小數點,且小數點後面必須至少有一位數字
例:var box = 0.8;
var box = .8; // 有效,不建議

5、運算符的簡單使用。
5.1、算術運算符。
+(加)、-(減)、*(乘)、/(除)、%(取餘,求模)
5.2、字符串和變量的拼接。
+
5.3、關係運算符。
>(大於)、<(小於)、>=(大於等於)、<=(小於等於)、
==(等等於,值相同)、===(全等於,值和類型都相同)、
!=(不等於,值不同)、!== (不全等於,值和類型都不同)
5.4、邏輯運算符。
與(且)&&、或 ||、非 !
5.5、賦值運算符。
+=(加等於)、-=(減等於)、*=(乘等於)、
/=(除等於)、%=(取餘等於,求模等於
5.6、自增和自減。
++a(先加)、a++ (後加)
--a、a--

5.7、類型轉換
字符串轉換數字類型:parseInt( )、parseFloat( )
parseInt( )       是把其它類型轉換爲整型;
parseFloat( )  是把其它類型轉換爲浮點型(小數)
四捨五入Math.round(78.566)--->78

6、進制轉換。
6.1、內存
就是大量的開關,每個開關,
可以存儲一個1或0,稱爲一位(1bit),
每八位稱爲1字節(1byte)
1byte = 8位 
1KB  = 1024byte  
1MB = 1024KB       
1GB = 1024MB     
1TB = 1024GB     
...
1PB, 1EB
1位:是二進制的0或者1
6.2、二進制: 0, 1 (0~1)
6.3、八進制: 0, 1, 2, 3, 4, 5, 6, 7 (0~7)    
6.4、十進制: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 (0~9)
6.5、十六進制: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F (0~15)
6.6、進制的轉換
6.6.1、常用值: 2的次方
2^2 = 4   2*2
2^3 = 8   2*2*2=8
2^4 = 16  2*2*2*2=16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256
2^9 = 512
2^10 = 1024
2^11 = 2048

6.6.2、2進制的轉換
2進制:101011
轉10進制:(從右往左)
1*2º + 1*2¹ + 0*2^2 + 1*2^3 +0*2^4 + 1*2^5 = 1+2+0+8+0+32 = 43
轉8進制:(從右往左3個一組 101 011):53   
轉16進制:(從右往左4個一組 0010 1011):2B

6.6.3、10進制的轉換
10進制:43
轉2進制:32+8+2+1 = 101011
轉16進制:32+11 = 2B
轉8進制:40+3 = 53

6.6.4、8進制的轉換
8進制:53
轉10進制:5*8¹ + 3*8º = 43

6.6.5、16進制的轉換
16進制:2B
轉10進制:2*16¹ + 11*16º = 32+11 = 43
8進制和16進制轉非10進制,
可以先轉換成10進制,再由10進制轉


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章