1. 程式人生 > >js基本語法介紹

js基本語法介紹

1、js的六種資料型別

(1)Boolean(布林),取值:True,False

(2)Number(數字),取值:所有數字,包含整數小數等,範圍相當於double

(3)String(字串),取值:所有字串

(4)Undefined(未定義),取值:只有一個值undefined

(5)Null(空物件),取值:只有一個值Null

(6)Object(物件型別),取值:任何物件、array、function等等

上面6種資料型別,只有object是引用型別,其餘都是基本型別。

2、==與===

(1)相等運算子==與(!=)

對於等號兩邊的如果型別相同,則直接比較。如果型別不同的話,先試圖通過型別轉換為String、Number、Boolean這些相同的資料型別,然後再進行比較。

此外,==認為null與undefined,undefined與undefined,null與null是相等的。

(2)完全相等運算子===

===不進行型別轉換,表示式兩邊的資料型別必須相同,並且值也相同,這時才返回true。

注:switch語句判斷的時候是使用的===。

3、null與undefined

(1)null

null表示一個有意義的值,表示無值或者無物件,此時變數的狀態為已知狀態,即:null。可以通過設定物件名為null值,來釋放對物件的引用,以便於瀏覽器的垃圾回收機制可以回收記憶體。

(2)undefined

宣告變數未賦值時,變數的值為undefined

方法沒有return返回值的時候,返回undefined

未宣告變數,通過typeof來檢測變數時,返回undefined

訪問不存在的屬性的時候返回undefined

注:把null轉換為數字,為0,把undefined轉換為數字,為NaN。

4、js變數的作用域

(1)在js中不存在塊級元素,所以在方法內部宣告的變數在整個方法體的任意位置都可以訪問。

<span style="font-family:Microsoft YaHei;font-size:18px;">function f3() {
            var x = 10;
            if (x>5) {
                var y = 100;
                alert(y);
            }
            alert(y);
        }
        f3();
        alert(y);</span>
(2)當重複宣告一個變數的時候,js會忽略第二次宣告,但是會保留下第二次賦值。

(3)當宣告變數的時候沒有加var,js認為宣告的是一個全域性變數,在哪裡都可以使用。所以我們要避免使用這種形式的全域性變數。

5、js中的轉義符

\t,\n,\',\'',\\

6、函式預解析和變數預解析

(1)函式預解析

觀察下面的程式碼

<span style="font-family:Microsoft YaHei;font-size:18px;">var x = 1, y = 0, z = 0;
        function add(n) { n = n + 1; return n; }
        y = add(x);
        function add(n) { n = n + 3; return n; }
        z = add(x);
        alert(y + '........' + z);</span>

執行結果是4........4。

這就是函式預解析的作用,上面的程式碼有兩個相同名稱的函式體,當執行的時候並不是按照從上到下依次執行下來,而是先進行函式預解析。遍歷程式碼把函式名都找出來,然後發現有兩個是一樣名稱的,系統會用最後一次的函式來覆蓋上面的函式。所以最後y執行的也是+3。

(2)變數預解析

觀察下面的程式碼首先進行變數預解析,所以函式內部執行第一句的時候已經知道存在user_name這個變數,但是僅僅是有這個變數,沒有賦值,所以結果是undefined。到了第二句進行賦值,所以結果變成bolun 。下面的alert就出了functions的作用域,所以採用的就是外部user_name變數的賦值,就是istari。

<span style="font-family:Microsoft YaHei;font-size:18px;">var user_name = 'istari';
        function f1() {
            alert(user_name);//undefined
            var user_name = 'bolun';
            alert(user_name);//bolun
        }
        f1();
        alert(user_name);//istari</span>