色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript中with語句

楊榮興1年前7瀏覽0評論

在javascript中,有一個with語句可以讓我們在代碼編寫時減少一定的重復代碼,優化我們的編程過程。with語句主要是用來改變作用域鏈的,代碼塊內所用的變量在with語句作用域鏈上被添加到了起始位置。接下來,我們就深入學習一下with語句的用法和注意事項。

比如,我們經常需要在代碼中使用同一個對象中的很多屬性,這時候就可以用with語句來統一操作它們。以下是一個簡單的例子:

var person = {
name: 'John',
age: 21,
gender: 'male'
};
with (person) {
console.log(name + ' is ' + age + ' years old and is a ' + gender + '.');
}

在這個例子中,我們使用了with語句將對象person的屬性添加到作用域鏈中。在with語句塊內部,我們可以直接使用person對象的屬性而無需每次都寫person.name、person.age和person.gender。

然而,我們需要注意的是with語句增加了查找作用域鏈的時間。如果在with語句之前已經定義了同名的變量,那么執行with語句的時候就不會再使用同名變量。同名變量是全局變量和本地變量都可以作為with語句內部定義變量的先決條件。以下是一個例子:

var person = {
name: 'John',
age: 21,
gender: 'male'
};
var name = 'Steven';
with (person) {
console.log(name); //輸出John
}

這段代碼執行后,輸出了John而不是Steven。這是因為with語句將person的屬性添加到作用域鏈的最前面,所以先查找到了person.name。

另外,with語句只作用于對象,不作用于原始類型變量,如字符串和數字。以下是一個例子:

var num = 10;
with (num) {
console.log(num); //輸出10
}
var str = 'hello';
with (str) {
console.log(str); //輸出hello
}

我們可以看到,with語句對num和str都沒有產生效果,所以輸出結果是原始類型變量本身的值。

總的來說,with語句可以提升編碼效率,但在使用之前一定要確保沒有同名變量被定義。同時,避免在with語句內定義全局變量。