變量的本質是一塊有名字的內存空間。變量由變量名和變量值構成。變量名指的是內存空間的別名,通常位於賦值運算符的左邊;而變量值指的是內存空間中的數據,通常位於賦值運算符的右邊。例如:var balance =250;
其中balance爲變量名,是內存空間的別名;250爲變量值,爲數據。bash
暫且可將聲明理解爲創造,當聲明變量時,使用關鍵字 var。
第一種:單獨聲明函數
<script>
var a = 32; //聲明一個變量,變量名爲a,變量值爲32;
var b = 45; //聲明一個變量,變量名爲b,變量值爲45;
</script>
複製代碼
第二種:一個var多個聲明變量ui
<script>
var a = 32,b = 45,c = 57; //利用一個var來聲明多個變量用逗號隔開
var x = 123,
y = 245,
z = 100; //此寫法與上面意思同樣寫法不一樣而已
</script>
複製代碼
第三種:重複聲明spa
<script>
var a = 120;
var a = 356; //這些指令代表使用同一變量名聲明兩次,形成重複
</script>
複製代碼
第四種:遺漏聲明code
<script>
var m = 12;
var n = 32;
alert(m) //可彈出m的值,卻遺漏了下面n的值
</script>
複製代碼
注意細節:
1.在JS中重複聲明雖然是容許的,但在開發中,不要這樣用;
2.在JS中遺漏聲明也是容許,但在實際開發時, 也是要儘可能避免的;
3.在JS中,能夠經過alert(),來彈出一個變量的值。ip
特徵1:若是僅僅是聲明變量,那麼變量是有默認值內存
<script>
var a; // 若是你僅僅是聲明一個變量,並不是賦值,那麼它的默認值爲undefined
console.log(a) // 打印出a的值
</script>
複製代碼
特徵2:使用var 聲明的變量能夠進行提高,提高就是把加var的變量提早最前面開發
解析:JS代碼在執行以前有一個預編譯,預編譯作了兩件事:
(1)把加var的變量提高,提高的僅僅是聲明,而沒有賦值部分;
(2)把函數提高到了代碼段(一個script標籤就是一個代碼段)的最前面。 當預解析完後,纔會執行JS代碼;
(3)當函數與變量套用着,加var的變量雖然那個要提高,但因爲此時的變量爲局部變量,只會提高到函數體的最前面。string
例1.1:<script>
var a; //此時只有聲明提高到前面而變量值沒有
console.log(a) // 打印出的a的值爲undefined
var a = 120; //這一步至關於沒操做
</script>
複製代碼
例1.2:<script>
var a; //此時只有聲明提高到前面而變量值沒有
console.log(a) // 打印出的a的值爲undefined
var a = 120; //這一步至關於沒操做
console.log(a) //打印出的a的值爲120
</script>
複製代碼
例2:<script>
g() //調用函數
function g(){
console.log("g....") //此時也能夠打印出來g...,由於函數整個提高到了前面
} //聲明定義變量
</script>
複製代碼
例3:<script>
console.log("--------------------") //打印出----------
var a; //這是將局部變量提高到函數體最前面
function f(){
console.log(a) //要打印時會去尋找變量,即爲undefined
a = 2;
}
f();
</script>
複製代碼
1.局部變量
局部變量指在函數內聲明的變量。它只能在函數內部訪問,在函數外面是不能被訪問;就好像是各個地方的方言同樣。it
例子:<script>
function f(){
var name = "wangcai"; //局部變量,由於這個變量放在函數裏面
console.log(name)
}
console.log("----"+name) //這裏由於name是局部變量,因此只會顯示----
// 函數聲明完後,你要使用這個函數,那麼你必定要調用這個函數
f()
</script>
複製代碼
2.全局變量
全局指變量指在函數外聲明的變量。它在函數內部和外部均可以訪問;就如同標準普通話在任何地區均可以用。
例子:<script>
var age = 100; //全局變量聲明定義了age
function f(){
console.log("在函數裏面訪問的全局變量"+age) //這裏爲局部變量只有調用函數後纔會打印出來
}
console.log(age) //此爲全局變量,在函數外聲明的
f() // 函數調用,這裏會將函數的第二行代碼執行出來
</script>
複製代碼
函數能夠說成是個功能塊,當你給它一個輸入值時,在這個功能塊中經過某種關係或者說映射,就能獲得一個輸出值。就像豆漿機,將準備的大豆放到機器中,經過榨汁獲得一杯豆漿。
方式一:函數聲明
用關鍵字function來聲明函數,其中基本格式以下:function f(){ };其中有f爲函數名;()是函數的特殊標誌;{}叫函數體或者具體的功能
function f(){
console.log("函數聲明")
}
複製代碼
方式二:函數表達式
函數表達式本質上是一個變量;它指的是將以function聲明的函數做爲表達式放在賦值的右邊,從新定義一個變量。
var g = function f(){
console.log("函數表達式")
}
f();
複製代碼
區別:聲明函數與函數表達式二者在提高階段不同;函數聲明能夠將函數調用寫到函數聲明以前,而函數表達式則將函數調用提早會出錯。
函數聲明:
<script>
f();
function f(){
console.log("函數聲明提高") //此時是能夠打印出"函數聲明提高"
}
</script>
函數表達式:
<script>
f();
var g = function f(){
console.log("函數表達式提高") //會報錯,f沒有定義
}
</script>
複製代碼
1.函數在沒有寫return或者只寫了return時,默認返回undefined。
(1) function f(){
//這是至關於默認的return undefined;
}
(2)function f(){
return; //同上,默認的return undefined;
}
複製代碼
2.在一個函數中,執行過return語句後,下面的語句將再也不執行。
function f(){
console.log("caomeitai")
return thanks; //當執行過該語句,下面再也不執行
console.log("xiaoyuzhou") //並未執行
}
複製代碼
在函數定義與函數調用時,有兩個參數:形參與實參。形參即形式參數,表明着在定義函數時,小括號中的參數;實參即實際參數則表明在調用函數時,小括號中的參數。
function add(x,y){ //這裏小括號中的x,y爲形參
return x+y;
}
console.log(add(2,3)); //在調用了add函數時的2,3爲實參
複製代碼