日新網培訓Javascript之一.Js基礎

來源:互聯網
上載者:User

一.Javascript概述

1、Javascript是一種鬆散類型語言,變數不必具有一個明確的類型。變數實現方法類似Hash表和關聯陣列,將屬性名稱映射為任意類型的屬性值或引用。

2、Javascript是一種解釋型語言,核心語言有未經處理資料類型:數字、字串、布爾值。內部支援數組、日期和Regex對象。

3、Javascript的版本,根據ECMA-262標準,Javascript語言的光放名稱為ECMAScript。

4、運行在瀏覽器的Javascript稱為用戶端JS,可以理解為JS為靜態頁面增加了行為(響應使用者的操作),使頁面變為動態(可響應操作)。

簡單的例子:

1、<script language="javascript" src="目標" type="text/javascript"></script>  可以將外部的JS代碼塊串連入<Script>標記的位置。

2、<button onclick="alert('Hello World!');">Click</button>

二.Javascript文法結構

1、JS程式採用Unicode字元集編碼(16位)。所以JS程式中每個字元都是2個位元組表示。

2、JS大小寫敏感,但HTML不區分大小寫,但建議養成習慣區分大小寫。JS代碼會忽略空白(Space)、換行(Enter)、定位字元(Tab)。

3、JS中語句結尾可以不用分號,但要求必須分行寫代碼。但為了習慣,要求結尾有分號。

4、JS注釋程式設計語言一樣。//代表注釋一行 /*可以注釋若干行*/。

5、JS支援直接量,例如1、2、'h'、true……表示數組和對象可以用直接量表示:數組[1,2,3,4] 對象{x:1,y:2} 對象的表示結構是JSon(JavaScript Object Notation).

6、標識符、關鍵字、保留字的關係。

三 Javascript資料結構

1、基礎資料型別 (Elementary Data Type):3+2 3:數字、文本字串、布爾值 2:null(空) undefined(未定義)

2、複合資料型別:對象 JS對象分為兩種:1、已命名的值的無序集合 2、有編號的值的有序集合 又稱數組。

3、特殊的對象——函數(function)。一般將函數看作獨立於對象和數組的資料類型。

4、Javascript核心定義了一些專用對象:Data表示日期、RegExp類表示Regex、Error類表示返回的錯誤對象(異常處理)。

5、JS中的數字不區別整型和浮點型,所有數都是由浮點型表示。“-”號加在任何直接量都表示它的負數,但它不是數值直接量的一部分,它是一元求反運算子。

6、數值進位 16進位以0x或0X開頭。八進位直接量以0開頭。(最好不要使用八進位,相容性問題)。

7、數學運算可以使用Math.方法。

8、數值界限和特殊值。 (-)Infinity表示數超過所能表示的最(小)大值  Number.MAX_VALUE可表示的最大數字 Number.MIN_VALUE 可表示的最小數字

9、NaN (Not A Number) 當轉換產生未定義的錯誤時,會產生NaN,它和任何值不相等(包括自己)使用isNaN()來檢測它的值。使用isFinite()來檢測一個數字是否是NaN、正無窮大、負窮大。

10、字串string JS裡沒有char,只能用長度為1的string表示。 直接量用'和"表示,兩種引號可以互相包含,支援使用轉意字元。因為HTML也支援兩種引號表示字元,所以建議HTML和JS分別使用一種,方便編程。轉意字元詳情需要查表,這裡只介紹常用幾個:\b退格 \n換行 \t水平製表 \" \' \\分別表示" ' \  \uXXXX 表示Unicode XXXX的值。如果轉意失敗,則忽略“\”。

11、字串函數 var s="Hello," + "World";  s.length表示長度 s.charAt(2) 取出第2個字元  s.substring(1,4) 從第2個字元開始,取到第4個字元 這裡需要注意,第一個參數是開始的Index(整個串從0開始),截取數包括第一個參數表示的字元。第二個參數是截取的終點位置,截取數不包括第二個參數表示的字元,取前不取後。 s.indexOf('a'); 在串s中尋找第一個a出現的位置。

12、字串與數字互轉 數字和字串用“+”時,會先轉成字串後串連在一起。 所以將數字n轉換為字串s有以下辦法:1、s=n+"";  2、s=String(n);  3、s=n.toString(); 同時,將字串s轉換為數字n時有以下方法:1、n=s-0; 2、n=Number(s); 3、n=parseInt/parseFloat(s);  需要注意,當對字串使用數字運算子時也會實現自動轉換(因為是鬆散類型語言)。 parseInt/parseFloat的參數(第一個要轉換的字串,第二個轉換的進位數) 如果轉換失敗則返回NaN。

13、布爾值轉換 true -》'true'-》1 false-》'false'-》0  數字轉Bool 如果是0或NaN則轉為false,其他true. 如果Null 字元串則轉換為false,其他轉換為true。空值和未定義都被轉成false,其他都是true。 將其他類型a轉換為布爾類型的b的方法:1、a=Boolean(b);  2、a=!!b; “!"為非運算子。

14、函數 常用定義:

function myfunc(x)

{

  return x*x;

}

var myfunc=new function(x)      lambda函數

{    

  return x*x;

}

15、對象  對象名.屬性名稱 或 對象名[屬性名稱]  建立對象可以用建構函式構造 var o =new object();  設計屬性 o.x=1; o.y=2; 也可以使用JSON直接量來建立對象。var o = {x:1,y:2};

16、對象轉換  非Null 物件轉為布爾值 會為true,如果轉換成string,則自動調toString(),如果轉成數字,則先調valueOf()方法,如果返回自己則先toString()再parse轉成數字。

17、數組 建立:var a=new Array(1,2,3,4); a[0]=1; new Array(長度); 數組直接量[1,2,3,"aaa",[1,2,3]]。

18、null  表示“無值” 轉為Bool為false 轉為數字為0 轉為字串為"null"

19、undefined  表示未定義、未聲明。  undefined 和 null 不相等。但undefined==null結果為true。可以使用===來區分,undefined===null為false。

20、Date對象 var now =new Date(); now.toLocaleString() 返回本地時間串  now.getDay()……這個對象以後我會補上專門的總結。建構函式可以設定構造時間:var totime = new Date(2010,3,31);

21、Regex 用於模式比對以及實現尋找替換等功能。用RegExp對象表示  直接量用兩個“/”之間的文本表示。 如/^HTML/ 此對象將在以後章節總結。

22、Error對象  用於錯誤處理,每個Error有一個message屬性,存放JS中特定的錯誤訊息。預定義的錯誤有Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError和URIError   以後會有專門章節總結。

23、類型轉換小結 可以參照這篇文章:http://www.cnblogs.com/dreampuf/archive/2009/01/22/1380075.html

24、基礎資料型別 (Elementary Data Type)的封裝對象 三種基礎資料型別 (Elementary Data Type)都有一個響應的對象類。Number、String和Boolean類。當我們使用基礎資料型別 (Elementary Data Type)時,JS內部會為基礎資料型別 (Elementary Data Type)建立一個封裝對象,因此有了屬性和方法。瞬間轉換機制。

 

日新成員作業:

1、親自實踐各種類型的建立和轉換。

2、用HTML+JS 製作一個計算機軟體。

 

下次課時間:2010-4-7 7點 3604

 

本章內容詳情參照《Javascript權威指南》前三章內容

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.