欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

javascript作用域練習(xí)題

作用域是指代碼中變量的可訪問(wèn)范圍,JavaScript中有全局作用域和局部作用域,其中局部作用域又分為函數(shù)作用域和塊級(jí)作用域。為了深入了解JavaScript作用域,下面將結(jié)合練習(xí)題一步步解析。
1、全局作用域
全局作用域是整個(gè)代碼文件中所有函數(shù)外的變量所在的作用域。在全局作用域中聲明的變量可以被代碼文件中的任何函數(shù)訪問(wèn)。例如:
<pre>
var name = '張三';
function sayName() {
console.log(name);
}
sayName();  // 輸出:張三

在上面的代碼中,變量name是在全局作用域中聲明的。因此,在函數(shù)sayName()中訪問(wèn)變量name是沒(méi)有問(wèn)題的。如果在函數(shù)sayName()中也聲明一個(gè)變量name,則會(huì)形成局部作用域,與全局作用域中的name變量并不是同一個(gè)變量。
2、函數(shù)作用域
函數(shù)作用域是指由函數(shù)定義的作用域,函數(shù)內(nèi)部聲明的變量只能在函數(shù)內(nèi)部訪問(wèn)。例如:
<pre>
function sayHello() {
var message = 'Hello World!';
console.log(message);
}
sayHello(); // 輸出:Hello World!
console.log(message); // 報(bào)錯(cuò):message未定義

在上面的代碼中,變量message是在函數(shù)sayHello()中聲明的,它的作用域只在函數(shù)內(nèi)部。因此,在函數(shù)外部訪問(wèn)該變量會(huì)報(bào)錯(cuò)。
3、塊級(jí)作用域
塊級(jí)作用域是指由大括號(hào){}定義的作用域,通常出現(xiàn)在if語(yǔ)句、for循環(huán)、while循環(huán)等語(yǔ)句中。與函數(shù)作用域不同,塊級(jí)作用域中聲明的變量只在該塊級(jí)作用域內(nèi)部有效。例如:
<pre>
if (true) {
var name = '張三';
let age = 18;
const gender = '男';
}
console.log(name);    // 輸出:張三
console.log(age);     // 報(bào)錯(cuò):age未定義
console.log(gender);  // 報(bào)錯(cuò):gender未定義

在上面的代碼中,變量name是用var關(guān)鍵字在塊級(jí)作用域中聲明的,因此在函數(shù)外部仍然可以訪問(wèn)。而變量age和gender則是用let和const關(guān)鍵字在塊級(jí)作用域中聲明的,因此在塊級(jí)作用域外部無(wú)法訪問(wèn)。
4、作用域鏈
作用域鏈?zhǔn)侵冈贘avaScript中從當(dāng)前作用域開(kāi)始向外層作用域查找變量而形成的鏈?zhǔn)浇Y(jié)構(gòu)。例如:
<pre>
var name = '張三';
function sayName() {
var name = '李四';
function printName() {
console.log(name);
}
printName();    // 輸出:李四
}
sayName();

在上面的代碼中,函數(shù)printName()中訪問(wèn)的變量name首先在當(dāng)前函數(shù)的局部作用域中查找,如果找到則直接返回,否則繼續(xù)向外層作用域查找,直到全局作用域?yàn)橹埂?br>綜上所述,JavaScript作用域是一個(gè)非常重要的概念,它決定了變量的可訪問(wèn)范圍。需要注意的是,在使用變量時(shí)要注意其作用域,避免出現(xiàn)變量重名等問(wèn)題導(dǎo)致的錯(cuò)誤。