1. 程式人生 > >JS基礎學習筆記(一)

JS基礎學習筆記(一)

1、識別符號,就是指變數、函式、屬性的名字,或者函式的引數。識別符號可以是按照下列格式規則組合起來的一或多個字元:

a.第一個字元必須是一個字母、下劃線(_)或一個美元符號($);

b.其他字元可以是字母、下劃線、美元符號或數字。

不能把關鍵字、保留字、true、false 和 null 用作識別符號。(ECMAScript 標識符采用駝峰大小寫格式)

2.ECMAScript 的變數是鬆散型別的,所謂鬆散型別就是可以用來儲存任何型別的資料。換句話說,每個變數僅僅是一個用於儲存值的佔位符而已。定義變數時要使用 var 操作符(注意 var 是一個關鍵字),後跟變數名(即一個識別符號),如下所示:

var message = "hi";  message = 100; // 有效,但不推薦

有一點必須注意,即用 var 操作符定義的變數將成為定義該變數的作用域中的區域性變數。也就是說,如果在函式中使用 var 定義一個變數,那麼這個變數在函式退出後就會被銷燬。

function test(){   var message = "hi"; // 區域性變數 }  test();  alert(message); // 錯誤!

但是省略var就可以建立一個全域性變數

function test(){   message = "hi"; // 全域性變數(不推薦) }  test();  alert(message); // "hi" 

3.ECMAScript 中有 5 種簡單資料型別(也稱為基本資料型別):Undefined、Null、Boolean、Number和 String。。還有 1種複雜資料型別——Object,Object 本質上是由一組無序的名值對組成的。

即便未初始化的變數會自動被賦予 undefined 值,但顯式地初始化變數依然是明智的選擇。如果能夠做到這一點,那麼當 typeof 操作符返回"undefined"值時,我們就知道被檢測的變數還沒有被宣告,而不是尚未初始化。

var car = null;  alert(typeof car); // null值在typeof操作符將會返回"object" 

有 3 個函式可以把非數值轉換為數值:Number()、parseInt()和 parseFloat()。第一個函式,即轉型函式 Number()可以用於任何資料型別,而另兩個函式則專門用於把字串轉換成數值。 Number()使用方式如下:

var num1 = Number("Hello world!"); //NaN  var num2 = Number(""); //0  var num3 = Number("000011"); //11  var num4 = Number(true); //1 

PS:當數值操作時,只有 0 除以 0 才會返回 NaN,正數除以 0 返回 Infinity,負數除以 0 返回-Infinity。

多數情況下,呼叫 toString()方法不必傳遞引數。但是,在呼叫數值的 toString()方法時,可以傳遞一個引數:輸出數值的基數。預設情況下,toString()方法以十進位制格式返回數值的字串表示。而通過傳遞基數,toString()可以輸出以二進位制、八進位制、十六進位制,乃至其他任意有效進位制格式表示的字串值。下面給出幾個例子:

var age = 11;  var ageAsString = age.toString(); // 字串"11"  var found = true;  var foundAsString = found.toString(); // 字串"true" 

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" 

在不知道要轉換的值是不是 null 或 undefined 的情況下,還可以使用轉型函式 String(),這個函式能夠將任何型別的值轉換為字串。數值和布林值的轉換結果與呼叫toString()方法得到的結果相同。因為 null 和 undefined 沒有 toString()方法,所以 String() 函式就返回了這兩個值的字面量。