JavaScript之JS的數據類型

前言

JavaScript一共有6中數據類型:
基本數據類型(5):字符串(String)、數字(Number)、布爾(Boolean)、數組(Array)、空(Null)、未定義(Undefined)
複雜數據類型(1):對象(Object)
注意:Array、Date、Math、Error Set(ES6).....都是屬於Object中數組

1、JS數據類型概述

1.1 簡介


原始類型(基本類型):按值訪問,能夠操做保存在變量中實際的值。
原始類型彙總中null、undefined比較特殊。
引用類型:引用類型的值是保存在內存中的對象。數據結構

與其餘語言不一樣的是,JavaScript不容許直接訪問內存中的位置,也就是說不能直接操做
對象的內存空間。
在操做對象時,其實是在操做對象的引用而不是實際的對象。因此引用類型的值是按引用
訪問的。函數

1.2 typeof 操做符

因爲js中的變量是鬆散類型的,因此它提供了一種檢測當前變量的數據類型的方法,也就是typeof關鍵字。指針

關鍵字 類型
typeof 123 Number
typeof 'abc' String
typeof true Boolean
typeof undefined Undefined
typeof null Object
typeof { } Object
typeof [ ] Object
typeof console.log() Function

null類型進行typeof操做符後,結果是object,緣由在於,null類型被當作一個空對象引用。code

2、原始類型

2.1 Number類型

  • Number類型包含整數和浮點數(浮點數數值必須包含一個小數點,且小數點後面至少有一位數字)兩種值。
  • js不區分 整型和 浮點型

特殊值 NaN (非數字類型)對象

  • NaN跟任何值進行任何運算,結果仍然NaN.跟誰都不相等,包括本身。
  • 特色
    ① 涉及到的 任何關於NaN的操做,都會返回NaN
    ② NaN不等於自身。
  • isNaN() 函數用於檢查其參數是不是非數字值。
    isNaN(123) //false isNaN("hello") //true

通常NaN被動產生(數據類型轉爲Number,不能轉爲正常的數字,就是NaN)
函數 isNaN() 判斷是否是NaN或者能不能轉換爲NaNip

使用實例:內存

//數字
        var n1 = 10234;
        var n2 = 0x12; //十六進制
        var n3 = 2e2; //科學計數法(小學知識)

        console.log(n1,n2,n3)

        //浮點精度問題
        console.log(.1 + .2);

        //NaN  表示Not a number

        console.log(NaN)
        console.log(typeof(NaN))       //NaN的數據類型依然是number

        //NaN 跟 任何值(包括0) 進行任何運算 結果依然是NaN
        console.log(NaN * 0);          //結果是NaN

        //NaN跟誰都不相等
        console.log(NaN == NaN)       //結果是false


        var num = 2344e1000;

        console.log(typeof(num))      //結果是infinity即無窮大
        console.log(num)              //數據類型依然爲number


        console.log(isNaN(NaN))       //true
        console.log(isNaN('hello'))  //true
        console.log(isNaN('123')) // false 字符串'123' 轉爲number 的時候 是 123 不是NaN

2.2 String類型

  • 字符串是存儲字符(好比 "Bill Gates")的變量。
  • 字符串有length屬性
  • 字符串能夠是引號中的任意文本。您可使用單引號或雙引號(沒有區別)。
  • 您能夠在字符串中使用引號,只要不匹配包圍字符串的引號便可。
var answer="It's alright";
var answer="He is called 'Johnny'";
var answer='He is called "Johnny"';

2.3 Boolean類型

布爾(邏輯)只能有兩個值:true 或 false。字符串

var x=true;
var y=false;

2.4 Null類型 和 Undefined類型

1) Null類型
被動產生
null類型被看作空對象指針,前文說到null類型也是空的對象引用。string

2)Undefined類型
只有一個值,即undefined值。使用var聲明瞭變量,但未給變量初始化值,那麼這個
變量的值就是undefined.

Undefined 這個值表示變量不含有值。
能夠經過將變量的值設置爲 null 來清空變量。

cars=null;
person=null;

2、三大引用類型

js中對象是一組屬性與方法的集合。這裏就要說到引用類型了,引用類型是一種數據結構,
用於將數據和功能組織在一塊兒。引用類型有時候也被稱爲對象定義,由於它們描述的是一類
對象所具備的屬性和方法。

2.1 Object類型

咱們看到的大多數類型值都是Object類型的實例,建立Object實例的方式有兩種:
1)第一種是使用new操做符後跟Object構造函數

var person = new Object();
person.name = "Micheal";
person.age = 24;

2)第二種方式是使用對象字面量表示法
對象由花括號分隔。在括號內部,對象的屬性以名稱和值對的形式 (name : value) 來定義。
屬性由逗號分隔

var person = {
  name : "Micheal",
  age : 24
};

尋址的兩種方式:

name=person.name;
name=person["name"];

2.2 Array類型

數組的每一項能夠用來保存任何類型的數據,也就是說,能夠用數組的第一個位置來
保存字符串,第二個位置保存數值,第三個位置保存對象....另外,數組的大小是可
以動態調整的。

建立數組的基本方式有兩種:
1)第一種是使用Array構造函數

var colors = new Array("red","blue","yellow");
 var cars=new Array();
 cars[0]="Saab";
 cars[1]="Volvo";
 cars[2]="BMW";

2)第二種是使用數組字面量表示法

var colors = ["red","blue","yellow"];

2.3 Function類型

每一個函數都是Function類型的實例,並且都與其餘引用類型同樣具備屬性和方法。
函數一般是使用函數聲明語法定義的,以下所示

function sum(num1,num2){
  return num1 + num2;
};

這和使用函數表達式定義函數的方式相差無幾

var sun = function (){
  return sum1 + sum2;
};

注意:
當您聲明新變量時,可使用關鍵詞 "new" 來聲明其類型:

var carname=new String;
 var x=      new Number;
 var y=      new Boolean;
 var cars=   new Array;
 var person= new Object;

JavaScript 變量均爲對象。當您聲明一個變量時,就建立了一個新的對象。 提示:JavaScript具備隱含的全局概念,意味着你不聲明的任何變量都會成爲一個全局對象屬性。

相關文章
相關標籤/搜索