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