1. 程式人生 > >js理解--萬物皆物件

js理解--萬物皆物件

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; 不會報錯,但在系統檢查為原始資料型別的瞬間會被刪除。