日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

浅谈JavaScript作用域,关于Java的学习路线资料

發(fā)布時(shí)間:2023/12/20 javascript 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈JavaScript作用域,关于Java的学习路线资料 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

javascript是目前web領(lǐng)域中使用非常廣泛的語(yǔ)言,不管是在前端還是在后端都能看到它的影子,可以說(shuō)web從業(yè)者不論怎樣都繞不開(kāi)它。在前端領(lǐng)域,各種框架層出不窮。在后端領(lǐng)域,nodejs可謂如火如荼,打破了人們對(duì)javascript只能作為前端語(yǔ)言的認(rèn)知。按照此勢(shì)頭下去,javascript會(huì)越來(lái)越流行,會(huì)隨著web的發(fā)展越來(lái)越重要。

所以不論你是想學(xué)各種前端框架還是nodejs,都需要深入理解javascript的工作原理以及特性,只有這樣才能以不變應(yīng)萬(wàn)變。今天給大家分享的是:淺談JavaScript作用域

什么是作用域?

Js中的變量或者函數(shù)能夠被訪問(wèn)到的代碼空間(變量或者函數(shù)有效的范圍)。

JavaScript中的作用域

全局作用域;

局部作用域;

當(dāng)一個(gè)變量在函數(shù)最外層定義時(shí),變量就在全局作用域中,在一個(gè)函數(shù)內(nèi)部定義一個(gè)變量,這個(gè)變量就在局部變量中。

全局作用域

最外層函數(shù)或者在其外部定義的變量具有全局作用域。

var a = 10; //全局變量

function foo(){ //全局函數(shù)

console.log(a);

}

這個(gè)變量a就在全局作用域中,可以說(shuō)成是個(gè)全局變量,這個(gè)a可以子啊認(rèn)可地方訪問(wèn)或修改。

還有一點(diǎn),window對(duì)象的屬性和方法具有全局作用域

Eg:

alert("dddddd");

window.alert("aaaa");

var obj = {

name:"john",

age:20,

sayHello:function(x){

console.log(x);//輸出undefined//第二次輸出1//第三次輸出aaa(要問(wèn)我為什么會(huì)輸出三次,因?yàn)槁暶魈嵘膯?wèn)題,請(qǐng)自行百度)

}

};

console.log(obj.name);//輸出jogn

obj.sayHello();

console.log(obj.sayHello(1))//輸出undefined

obj.sayHello("aaaaa");

在一個(gè)函數(shù)內(nèi)部聲明一個(gè)變量不用 var來(lái)定義,這個(gè)變量具有全局作用域

function foo(){

b = 20;

var a = 10;

}

foo();

console.log(b);

console.log(a);//a會(huì)報(bào)錯(cuò),因?yàn)閍 是一個(gè)局部變量

局部作用域

定義在函數(shù)中的變量就在局部作用域中。并且函數(shù)在每次調(diào)用時(shí)都有一個(gè)不同的作用域。這意味著同名變量可以用在不同的函數(shù)中。因?yàn)檫@些變量綁定在不同的函數(shù)中,擁有不同作用域,彼此之間不能訪問(wèn)。(在一個(gè)函數(shù)顳部定義的函數(shù)或者用var定義的變量具有局部作用域)

Eg:

在ES5中函數(shù)去區(qū)分全局和局部的唯一的代碼塊

if(true){

var a = 10;

}

for(var i =0; i<=0; i++){

var b = 10;

}

console.log(a,b);//a,b都是輸出10

函數(shù)的形參具有局部作用域,是局部變量

function foo(x){

console.log(x);//輸出undefined

}

foo();

console.log(x);//報(bào)錯(cuò)

補(bǔ)充一點(diǎn)塊語(yǔ)句

塊級(jí)聲明包括if和switch,以及for和while循環(huán),和函數(shù)不同,它們不會(huì)創(chuàng)建新的作用域。在塊級(jí)聲明中定義的變量從屬于該塊所在的作用域。

Eg:

if(true){

Var name = “join”;

}

Console.log(name)//輸出join

Es6中引用了let,const關(guān)鍵字,這些關(guān)鍵字可以代替var,但是和var不同的是,let和const具有塊級(jí)作用域,也就是說(shuō)在塊級(jí)聲明中創(chuàng)建并使用時(shí),是具有全局作用域的

在全局作用域聲明的變量可以稱為全局變量,同理還有全局變量,和函數(shù)形參,他們所站的比重是局部變量>函數(shù)形參>全局變量。

轉(zhuǎn)載于:https://www.cnblogs.com/qianfengcs/p/10411070.html

總結(jié)

以上是生活随笔為你收集整理的浅谈JavaScript作用域,关于Java的学习路线资料的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。