JS基礎知識 --變量類型和計算

變量類型和計算

1. 變量類型
js變量類型分爲基本類型(或者叫值類型)和引用類型。(按照存儲方式區分)
• 值類型
值類型:Number、String、Boolean、Null、Undefiend;這5種基本數據類型是按值訪問的,能夠操做保存在變量中的實際的值。
對於值類型,在複製變量的時候,會在新的變量上建立一個新值,這個新值和原值是相互獨立的,好比下面的例子:javascript

var a=100;
    var b=100;
    a=200;
    console.log(b); //100

• 引用類型
引用類型值是保存在變量中的對象;引用類型值就是指對象。
保存引用類型值的變量,實際上保存的是一個指向該對象的指針。
當複製保存着對象的某個變量時,複製的實際上是指針;複製操做結束後,兩個變量指向同一個對象。
對於引用類型值,能夠爲其添加屬性和方法,也能夠修改或者刪除其屬性和方法。
在爲對象添加屬性和方法時,操做的是實際的對象,所以,改變任何一個變量,都會影響另一個變量。好比下面的例子:java

var a={age:100};
    var b=a;
    b.age=20;
    console.log(a.age); //20
注意: 基本類型值之間的比較,只是單純的值的比較。
引用類型值的比較並不是值的比較:即便兩個對象包含相同的屬性和值,它們也是不相等的;各個索引元素徹底相等的兩個數組也不相等。
引用類型值的比較是引用的比較,當且僅當它們引用同一個對象時,它們才相等。

• typeof 運算符詳解
由下面的例子,咱們能夠看出typeof只能判斷值類型的變量,不能判斷引用類型的變量,因此不能準確的判斷變量類型。數組

typeof(undefined);  // undefined  
typeof('abc');  // string
typeof(123);  // number  
typeof(true);  //  boolean
typeof({});  // object  
typeof([]);  // object  
typeof(null);  // object  
typeof(console.log);  //  function

2. 變量計算
• 強制類型轉換
如下四種狀況會發生強制類型的轉換:瀏覽器

  • 字符串的拼接
var a=100+10;      // 100
    var b=100+"10";    // '10010'
  • ==運算符
console.log((100=="100"));  // true
    console.log((0==""));   //true
    console.log((null==undefined));  // true

在使用==得時候會強制類型轉換,而使用===的時候不會發生強制類型轉換。
==計算要慎用,會出現上述問題,若是使用===,則不會出現上述問題。
判斷對象的一個屬性存在可使用以下語法:函數

var obj = {}
if(obj.name == null){...} // 至關於obj.name === null || obj.name === undefined
/* 該方法只適用於判斷對象的屬性,不能用於直接判斷變量是否存在 */
if(someVal){...} // 這裏瀏覽器會報錯
  • if語句

以下例子,if()判斷中會對()裏的值進行強制轉換爲布爾類型。if()條件判斷中0、""、NaN、null、undefined、false都會轉爲false。指針

var b=100;
   if(b){
       // ...
   }
  • 邏輯運算
console.log((10 && 0));  // 0
    console.log(("" || "abc"));   //"abc"
    console.log((!window.abc));  // true

    // 判斷一個變量會被當作 true 仍是 false
    var a=100;
    console.log(!!a);  // true

3.JS內置函數和對象
js中內置了一些函數和對象,直接能夠調用開發。
根據ECMAscript提供的內置函數包括Object、Array、Boolean、Number、String、Function、Date、Regexp和Error。內置對象包括Math和JSON。code

注意:javascript基礎語法提供的內置函數和方法只有這些,像Window、Navigator那是瀏覽器提供給咱們的。還有一點前面的集中都是內置函數而不是內置對象,最後的Math和JSON是內置對象
相關文章
相關標籤/搜索