Js類型 基礎1

  • 82
  • 0
  • Js
  • 2020-01-19

Js 為動態型別

型別 : 

原始型別 : undefined、null、boolean、number、string 、bigInt、Symbol  

物件型別 : 透過建構式建立 or { } 、array 、function

運算子 : 簡單函式,回傳的結果

變數 與 屬性 : 變數無法刪除,屬性可以刪除

變數 call by value 、reference

Json

console log、dir、table

****************************************************************************

Js 為執行環境時,決定型別

var a = 123;

a = 'test';

創造環境  var a;  //undefined

執行環境  a = 123; //number

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

型別轉換

顯性,當原本型別轉換為另一個型別,則為顯性,a = 123; a = '123'; 將數字轉換字串

隱式,轉換過程不知型別,則為隱性,a = 123; a = a + 'Test'; 此時為number + string , 則轉換為string

****************************************************

物件型別

var a = '123';

var b = new String(a); //透過建構式建立

var c = { // {}

d : 1

};

~~~~~~~~~~~~~~~~~~~~~~~~

型別 :

undefined : 創建物件結構,無初始值

var a ; //undefined 

typeof a; show undefined

`````

not defined  : 未創建物件

console.log(a);  記憶體上未有a物件

`````

null : 某變數為空

var b = null; typeof show object

`````

boolean : true & false

隱性轉換 If (expression):

               string 非空 則 true ,為空 否則 false

               number >0 則 true ,為0 Nan 否則 false

               object 有物件 則 true ,為null 否則 false

`````

number : 整數及浮點

進制 : 2(0,1)、8(0~7)、10(0~9)、16(0~9,a,b,c,d,e,f)

var a = 080; //8  var a = 11; //10 var a = 0x80; //16

var a = 2.2; 浮點  var a = Nan (not a number)

`````

string : '字串', "字串"  //可用 ' or ''

`````

array : 數組 存取類型可以不同

var a = [] 相同寫法 new array()  相同寫法 array(); 

`````

typeOf : 測量變數型別使用

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

變數 call by value 、reference ,使用value給值

var a  = 1;

var b = a;

b = 'test';

console.log(  a, b);     1, 'test' 在記憶體上各有自已的值

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Json : 為字串型式,做為傳遞使用

格式 { "key" :"value", }

stringify : object to string 

parse : string to object

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

console log、dir、table

log : 顯示字串或物件

dir : 顯示物件,物件中每個屬性及 prototype 的資訊

table : 以表格方式顯示出data

ref : https://developer.mozilla.org/en-US/docs/Web/API/Console