4 1 基本型別和引用型別的值

2021-09-05 12:43:29 字數 1628 閱讀 6072

ecmascript變數包括兩種不同資料型別的值

4.1.1 動態屬性

1.基本資料型別不能新增屬性和方法,如果這樣做,當訪問該屬性和方法的時候,得到的則是undefined。

var name = "kaikai"; //建立變數name,並賦值'kaikai'

name.age = 27; // 為name變數新增age屬性,並賦值'27'

alert(name.age); // 結果:"undefined"

2.引用型別的值可以新增屬性和方法

var person = new object(); // 建立物件,並儲存在 person變數中

person.name = 'kaikai'; // 為person物件新增name屬性

alert(person.name); // 結果:"kaikai"

4.1.2 複製變數值
1. 基本資料型別

var num1 = 5;

var num2 = num1;

如圖4-1,當複製變數時,會在變數物件上建立乙個新的值,num1和num2在操作過程中互不影響

2.引用型別

var obj1 = new object();

var obj2 = obj1;

obj1.name = "nicholas";

alert(obj2.name); //"nicholas"

如圖4-2,引用型別是儲存在堆中,obj2複製obj1值的時候,同樣是將obj1的值複製到了新變數obj2的物件空間中。但是,這個「值」實際上是乙個指標,它指向的是儲存在堆中得物件,這個物件才是變數真正的內容。

所以,obj1和obj2實際上引用的事同乙個物件,當對其中乙個做出修改時,其實另乙個也發生了相應的改變

4.1.3 傳遞引數

js中所有函式的引數都是按值傳遞的,與4.1.2複製變數值同理
4.1.4 檢測型別
typeof可檢測:string、number,boolean,undefined, object

物件和null的返回值都是object

instanceof可以檢測變數是否是引用型別,如果是則返回true,否則返回false

alert(person instanceof object); // 變數 person 是 object 嗎?

alert(colors instanceof array); // 變數 colors 是 array 嗎?

alert(pattern instanceof regexp); //變數pattern是regexp嗎?

基本型別和引用型別

基本型別和引用型別 ecmascript包含兩個不同型別的值 基本型別值和引用型別值。基本型別值指的是簡單的資料段 引用型別值指由多個值構成的物件。當我們把變數賦值給乙個變數時,解析器首先要做的就是確認這個值是基本型別值還是引用型別值。常見的五種基本資料型別是 undifined null bool...

複製(基本型別和引用型別)

一 基本型別複製 可以理解為把原模板a複製在另外乙個資料夾存為b中,改變b的內容不影響a的內容。舉例如下 var num1 12 var num2 num1 num2 13 console.log num1 輸出為12,不受num2的影響二 引用型別複製 可以理解為兩個都指向同乙個位址,乙個變數改變...

js 引用型別和基本型別

js中的資料型別有以下幾種 基本型別 number boolean string undefined null symbol 引用型別 object array,function,date,正則物件,json物件 基本型別的資料是存放在棧記憶體中的,而引用型別的資料是存放在堆記憶體中的 複製變數值 ...