js理解--萬物皆物件
阿新 • • 發佈:2018-12-17
JavaScript中常說 萬物皆物件。下面簡單分析一下這句話,加深對js的一些深入的理解。
js中資料型別:1.原始資料型別 2.引用資料型別
原始資料型別:number,undefined,null,string,boolean
引用資料型別:object
使用typeof檢查資料型別 可以知道 typeof(null)返回的是object。
這是由於計算機儲存造成的
在底層儲存物件時都是二進位制,JavaScript中如果二進位制前三位都是0就會被判斷為object型別,
null的二進位制表示全是0,所以返回的是“object”。
所謂物件,都有自己的屬性和方法。
可以操作物件的屬性,進行增刪改查
寫一個函式類物件
function fun(){}
1.增 fun.age = 20; 直接 函式名.屬性名 = 屬性值
2.刪 delete fun.age; 使用delete 函式名.屬性名
3.改 fun.age = 18; 存在的函式名.屬性名 = 更新的屬性值
4.查 fun.age ;
可以看出函式是可以直接當成物件使用的。
而原始資料型別:number,undefined,null,string,boolean
原始資料型別儲存在棧中 他們的儲存結構是不能改變的,改變的可以是地址。
var str = "hello world";
str = 123;
console.log(str)
打印出來肯定是123。 因為str的存住地址發生了改變。
引用資料型別 是儲存在堆和棧中 但物件裡面去增加屬性和方法是不會改變儲存的地址的。
如果給原始型別新增屬性 str.age = 18; 不會報錯,但在系統檢查為原始資料型別的瞬間會被刪除。