1.1 動態的屬性
//引用型別
var person = new object();
person.name = "nicholas";
alert(person.name); //"nicholas"
//基本型別
var name = "nicholas";
name.age = 27;
alert(name.age); //undefined
1.2 複製變數值//基本型別
var num1 = 5;
var num2 = num1;
num1=3;
alert(num2); //"5"
//引用型別
var obj1 = new object();
var obj2 = obj1;
obj1.name = "nicholas";
alert(obj2.name); //"nicholas"
1.3 傳遞引數//證明引用型別也是值傳遞
function setname(obj)
var person = new object();
setname(person);
alert(person.name); //"nicholas"
1.4 檢測型別//檢測基本型別
var s = "nicholas";
var b = true;
var i = 22;
var u;
var n = null;
var o = new object();
alert(typeof s); //string
alert(typeof i); //number
alert(typeof b); //boolean
alert(typeof u); //undefined
alert(typeof n); //object
alert(typeof o); //object
//檢測引用型別
alert(person instanceof object); // 變數 person 是 object 嗎?
alert(colors instanceof array); // 變數 colors 是 array 嗎?
alert(pattern instanceof regexp); // 變數 pattern 是 regexp 嗎?
2.1 延長作用域鏈當執行流進入下列任何乙個語句時,作用域鏈就會得到加長:
1. try-catch 語句的 catch 塊;
2. with 語句。
function buildurl()
return url;
}
2.2 沒有塊級作用域
2.2.1 宣告變數
2.2.2 查詢識別符號3.1 標記清除
3.2 引用計數
//迴圈引用示例
function problem()
3.3 效能問題
3.4 管理記憶體
function createperson(name)
var globalperson = createperson("nicholas");
// 手工解除 globalperson 的引用
globalperson = null;
JS 變數 作用域和記憶體問題
向引數傳遞基本型別時 把值從乙個變數賦值到另乙個變數 傳遞引用型別時 把這個值在記憶體中的位址賦值給區域性變數 function addten num var count 20 var result addten count console.log count 20,沒有變化 console.log...
js 變數 作用域和記憶體問題
基本型別和引用型別 屬性引用型別可以動態新增屬性,而基本型別不可以 var p new obj p.name huyuping console.log p.name huyuping var a a.name huyuping console.log a,name 出錯複製變數值 會在變數的物件上建...
JS 變數 作用域和記憶體問題
一 基本型別和引用型別的值 1 5中基本型別 undefined,null,string,boolean,number是按值訪問的,可以操作儲存在變數的實際的值。引用型別的值是儲存在記憶體中的物件,操作物件實際上是操作物件的應用而不是直接操作物件 2 變數複製是將儲存在變數物件的值複製乙份儲存在新變...