1. 程式人生 > >java script的小基礎

java script的小基礎

      javascript是一種弱資料型別的指令碼語言,這種語言呢,通常廣泛的運用於web前端開發中,web前端開發由三個層面組成,第一層是結構,即是html,(hyper text markup language)超文字標記語言;第二層是樣式,即是css,(cascading style sheet)層疊式樣式表;第三層是行為,即是js(java script)指令碼語言。

      html在web製作中起到搭建框架的一個作用,用標籤來搭建框架,css是賦予html的標籤的一定的屬性和屬性值,js是用來實現web中的一些特效,js的作用有三點:使用者互動;表單驗證;網頁特效

      ECMAScript 中有5 種簡單資料型別(也稱為基本資料型別):Undefined、Null、Boolean、Number
和String。還有1 種複雜資料型別——Object,Object 本質上是由一組無序的名值對組成的。ECMAScript
不支援任何建立自定義型別的機制,而所有值最終都將是上述6 種資料型別之一。乍一看,好像只有6
種資料型別不足以表示所有資料;但是,由於ECMAScript 資料型別具有動態性,因此的確沒有再定義
其他資料型別的必要了。

     在js中有基本的資料類:數字型別(顧名思義即是數字)、字串型別也叫string型別(其特徵是有引號

,引號中文字或字母,數字也可以是字串,只要加在引號中,在js中字串的引號是雙引號或單引號都可以,要英文狀態下引號才可以),例如這樣var a='236';var i="niho";var k=" 你好嗎?"、空型別(值為null)、未定義型別(undefined)、boolean型別(布林型別false、true)。

      typeof操作符就是用來鑑於ECMAScript 是鬆散型別的,因此需要有一種手段來檢測給定變數的資料型別——typeof 就是負責提供這方面資訊的操作符。對一個值使用typeof 操作符可能返回下列某個字串:
 "undefined"——如果這個值未定義;
 "boolean"——如果這個值是布林值;
 "string"——如果這個值是字串;
 "number"——如果這個值是數值;
 "object"——如果這個值是物件或null;
 "function"——如果這個值是函式。
下面是幾個使用typeof 操作符的例子:
var message = "some string";
alert(typeof message); // "string"
alert(typeof(message)); // "string"
alert(typeof 95); // "number"

      1、Undefined型別
Undefined 型別只有一個值,即特殊的undefined。在使用var 宣告變數但未對其加以初始化時,
這個變數的值就是undefined,例如:
var message;
alert(message == undefined); //true
UndefinedExample01.htm
這個例子只聲明瞭變數message,但未對其進行初始化。比較這個變數與undefined 字面量,結
果表明它們是相等的。這個例子與下面的例子是等價的:
var message = undefined;
alert(message == undefined); //true
UndefinedExample02.htm
這個例子使用undefined 值顯式初始化了變數message。但我們沒有必要這麼做,因為未經初始
化的值預設就會取得undefined 值。

      2、Null型別
Null 型別是第二個只有一個值的資料型別,這個特殊的值是null。從邏輯角度來看,null 值表
示一個空物件指標,而這也正是使用typeof 操作符檢測null 值時會返回"object"的原因,如下面
的例子所示:
var car = null;
alert(typeof car); // "object"

       3、Boolean型別
Boolean 型別是ECMAScript 中使用得最多的一種型別,該型別只有兩個字面值:true 和false。
這兩個值與數字值不是一回事,因此true 不一定等於1,而false 也不一定等於0。以下是為變數賦
Boolean 型別值的例子:
var found = true;
var lost = false;
需要注意的是,Boolean 型別的字面值true 和false 是區分大小寫的。也就是說,True 和False
(以及其他的混合大小寫形式)都不是Boolean 值,只是識別符號。
雖然Boolean 型別的字面值只有兩個,但ECMAScript 中所有型別的值都有與這兩個Boolean 值
等價的值。要將一個值轉換為其對應的Boolean 值,可以呼叫轉型函式Boolean(),如下例所示:
var message = "Hello world!";
var messageAsBoolean = Boolean(message);

        4、Number型別
Number 型別應該是ECMAScript 中最令人關注的資料型別了,這種型別使用IEEE754 格式來表示
整數和浮點數值(浮點數值在某些語言中也被稱為雙精度數值)。為支援各種數值型別,ECMA-262 定
義了不同的數值字面量格式。
最基本的數值字面量格式是十進位制整數,十進位制整數可以像下面這樣直接在程式碼中輸入:
var intNum = 55; // 整數
除了以十進位制表示外,整數還可以通過八進位制(以8 為基數)或十六進位制(以16 為基數)的字面值
來表示。其中,八進位制字面值的第一位必須是零(0),然後是八進位制數字序列(0~7)。如果字面值中的
數值超出了範圍,那麼前導零將被忽略,後面的數值將被當作十進位制數值解析。請看下面的例子:
var octalNum1 = 070; // 八進位制的56
var octalNum2 = 079; // 無效的八進位制數值——解析為79
var octalNum3 = 08; // 無效的八進位制數值——解析為8

        5、 String型別
String 型別用於表示由零或多個16 位Unicode 字元組成的字元序列,即字串。字串可以由雙
引號(")或單引號(')表示,因此下面兩種字串的寫法都是有效的:
var firstName = "Nicholas";
var lastName = 'Zakas';
與PHP 中的雙引號和單引號會影響對字串的解釋方式不同,ECMAScript 中的這兩種語法形式沒
有什麼區別。用雙引號表示的字串和用單引號表示的字串完全相同。不過,以雙引號開頭的字串
圖靈社群會員 StinkBC([email protected]) 專享 尊重版權

      2. 字串的特點
ECMAScript 中的字串是不可變的,也就是說,字串一旦建立,它們的值就不能改變。要改變
某個變數儲存的字串,首先要銷燬原來的字串,然後再用另一個包含新值的字串填充該變數,
例如:
var lang = "Java";
lang = lang + "Script";
以上示例中的變數lang 開始時包含字串"Java"。而第二行程式碼把lang 的值重新定義為"Java"
與"Script"的組合,即"JavaScript"。實現這個操作的過程如下:首先建立一個能容納10 個字元的
新字串,然後在這個字串中填充"Java"和"Script",最後一步是銷燬原來的字串"Java"和字
符串"Script",因為這兩個字串已經沒用了。這個過程是在後臺發生的。
       瀏覽器(例如版本低於1.0 的Firefox、IE6 等)中拼接字串時速度很慢的原因所在。但這些瀏覽器後
來的版本已經解決了這個低效率問題。

       轉換為字串
要把一個值轉換為一個字串有兩種方式。第一種是使用幾乎每個值都有的toString()方
這個方法唯一要做的就是返回相應值的字串表現。來看下面的例子:
var age = 11;
var ageAsString = age.toString(); // 字串"11"
var found = true;
var foundAsString = found.toString(); // 字串"true"
StringExample01.htm
數值、布林值、物件和字串值(沒錯,每個字串也都有一個toString()方法,該方法返回字
符串的一個副本)都有toString()方法。但null 和undefined 值沒有這個方法。
多數情況下,呼叫toString()方法不必傳遞引數。但是,在呼叫數值的toString()方法時,可
以傳遞一個引數:輸出數值的基數。預設情況下,toString()方法以十進位制格式返回數值的字串表
示。而通過傳遞基數,toString()可以輸出以二進位制、八進位制、十六進位制,乃至其他任意有效進位制格
式表示的字串值。下面給出幾個例子:
var num = 10;
alert(num.toString()); // "10"
alert(num.toString(2)); // "1010"
alert(num.toString(8)); // "12"
alert(num.toString(10)); // "10"
alert(num.toString(16)); // "a"
StringExample02.htm
通過這個例子可以看出,通過指定基數,toString()方法會改變輸出的值。而數值10 根據基數的
不同,可以在輸出時被轉換為不同的數值格式。注意,預設的(沒有引數的)輸出值與指定基數10 時
的輸出值相同。
在不知道要轉換的值是不是null 或undefined 的情況下,還可以使用轉型函式String(),這個
函式能夠將任何型別的值轉換為字串。String()函式遵循下列轉換規則:
1、 如果值有toString()方法,則呼叫該方法(沒有引數)並返回相應的結果;
2、如果值是null,則返回"null";
3、如果值是undefined,則返回"undefined"。
下面再看幾個例子:
var value1 = 10;
var value2 = true;
var value3 = null;
var value4;
alert(String(value1)); // "10"
alert(String(value2)); // "true"
alert(String(value3)); // "null"
alert(String(value4)); // "undefined"

      js中的命名是有規則的,是採取駝峰命名法、匈牙利命名法帕斯卡命名法,命名是變數名是在資料型別後,var(一種強資料型別)   i(變數名)   =(賦值運算子)駝峰命名法是指首個單詞字母小寫,後面的單詞首字母要大寫,例如:var  oBut=25;而匈牙利命名法是跟駝峰命名法差不多,只不過首字母小寫是資料型別的字首 ,例如:var sUserName = 'css8';再則是帕斯卡命名法,也跟駝峰命名法差不多,與駝峰命名法不同在於它的首字母要大寫例如:var PrintLoadTemplates;