Javascript學習筆記一基本數據類型與變量聲明

Javascript變量的數據類型

Javascript有6種基本類型,也叫基礎類型或元類型分別是:

  1. undefined 未定義 值類型
  未聲明的變量或聲明過但未賦值的變量的值爲undefined。也可以顯式或隱式的給變量賦值爲undefined

  2. number 數值 值類型
  除賦值操作外,只有數值與數值的運算結果是數值;一些函數或方法的返回值是數值

  3. string 字符串 值類型
  不能直接讀取或修改字符串中的單一字符,字符串在賦值運算中會按引用類型的方式來處理

  4. boolean 布爾值 值類型
  true/false

  5. function 函數 引用類型
  Javascript中的函數存在多重含義,包括函數、方法、構造器、類及函數對象

  6. object 對象 引用類型
  基於原型繼承的面向對象,因爲不具備對象系統的全部特性,Javascript通常被稱爲基於對象而非面向對象的語言。

任何一個變量或值的類型都可以使用typeof運算得到。typeof關鍵字是保留關鍵字,其調用形式如下:

var str = “abc“;
alert(typeof str)
//或者
alert(typeof(str))

 變量的聲明

Javascript中變量的聲明有兩種方法:

1. 顯示聲明
var 關鍵字進行聲明即顯示聲明如:

var str = “abc“;

當然函數聲明及異常捕獲字句中聲明的異常對象也是顯示聲明:

function foo(){
}
try{
}
catch(ex){
}

2. 隱式聲明
隱式聲明通常發生在不使用關鍵字var的賦值語句中,如:

str = “abc“;

解釋器對隱式聲明的理解爲:如果變量未被聲明,則先聲明該變量並立即賦值;如變量已聲明,則該語句是賦值語句

變量的作用域

作用域有全局作用域及局部作用域,全局變量的作用域當然是全局作用域(貌似是廢話),函數內部聲明的變量是局部變量,作用域也

是函數體這一局部內。

var str = "abc";
function foo(){
 var str = "def";
 document.write (str);
}
foo();      //輸出def
document.write (str);  //輸出abc

全局變量的聲明可以不使用var 關鍵字,但在局部變量的聲明中一定要使用var關鍵字,否則會視爲對全局變量的引用或聲明瞭全局

變量,如下代碼所示:

var str = "abc";   //改行存在與否不影響最終輸出
function foo(){
 str = "def";
 document.write (str);
}
foo();      //輸出def
document.write (str);  //輸出def

Javascript 沒有塊級作用域一說,函數中聲明的變量在整個函數中都是有定義的,看下面的代碼:

function foo(){
 document.write(str); //語句A
 var str = “abc”;
 document.write(str); //語句B
 document.write(i);  //語句 C
 for(var i = 0; i< 4; i++){
  
 }
 document.write(i);  //語句 D
}
foo();     //A輸出 undefined,B輸出 abc ,C輸出 undefined,D 輸出 4

在變量聲明之前輸出,出現 undefined,是因爲Javascript 會將所有的變量及函數聲明提升到作用域的頂部,提升只會提升聲明,

而賦值不會提升,另外注意:函數提升,只會提升函數的聲明方式,表達式形式的則不會提升。

 

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