原始資料型別: number,string,boolean,undefined, null,object
基本型別(簡單型別),值型別: number,string,boolean
複雜型別(引用型別):object
空型別:undefined,null
值型別的值在哪一塊空間中儲存?棧中儲存
引用型別的值在哪一塊空間中儲存?物件在堆上儲存,位址在棧上儲存
值型別作為函式的引數,傳遞的是值
引用型別作為函式的引數,傳遞的是位址
var num=10;
//值型別,值在棧上
var obj=
;//複雜型別,物件在堆,位址(引用)在棧
值型別之間傳遞,傳遞的是值
var num=10;
var num2=num;
//傳遞的值
console.
log(num2)
;//10
function
f1(x)
var num=10;
f1(num)
; console.
log(num)
;// 10
引用型別之間傳遞,傳遞的是位址(引用)
var obj=
;function
f2(obj2)
console.
log(obj.name)
;// 小明
f2(obj)
; console.
log(obj.name)
;// 小紅
思考題:
var num1 =10;
var num2 = num1;
num1 =20;
console.
log(num1)
;//20
console.
log(num2)
;//10
var num =50;
function
f1(num)
f1(num)
; console.
log(num)
;//50
var num1 =55;
var num2 =66;
function
f1(num, num1)
//函式呼叫
f1(num1, num2)
; console.
log(num1)
;//55
console.
log(num2)
;//100 不是66
console.
log(num)
;// 報錯
function
person
(name,age,salary)
function
f1(person)
var p =
newperson
("zs",18
,1000);
console.
log(p.name)
;//zs
f1(p)
; console.
log(p.name)
;//ls
基礎型別和複雜型別
基礎型別 number string boolean undefined null 引用型別 object array function 基本型別和複雜型別區別 解決基礎型別和複雜型別的賦值區別的方法 var arr a b c 希望brr和arr一樣,但是不要共用乙個位址 1.遍歷乙個乙個放進去 ...
派生複雜型別
複雜型別都是通過限制或擴充套件其他的型別來派生,通過限制派生的新型別的值範圍是基型別值範圍的自己,新型別的所有例項對於基型別也是有效的,而擴充套件則可以為現有型別新增新的元素和屬性,基型別的例項對於擴充套件型別不一定有效。從簡單型別或另乙個具有簡單內容的複雜型別派生複雜型別時,使用 xs conte...
Entity Framework 複雜型別
為了說明什麼是複雜屬性,先舉乙個例子。public class companyaddress public string companyname public string streetaddress public string city public string state public str...