變量概述
1、變量是用於存儲信息的"容器"。
2、變量必須以字母開頭;變量也能以 $ 和 _ 符號開頭(不推薦);變量名稱對大小寫敏感(y 和 Y 是不同的變量)。
怎么聲明變量並賦值?
var 變量名;
變量名 = 值;
var i = 100;
i = false;
i= "abc";
i = new object();
弱類型語言
JavaScript是一種弱類型語言,沒有編譯階段,一個變量可以隨意賦值,賦什么類型的值都行。
一條語句,多個變量
1、在一條語句中可以聲明很多變量。該語句以 var 開頭,並使用逗號分隔變量即可。
var lastname="yu", age=20, job="programmer";
2、聲明也可橫跨多行
var lastname="yu",
age=20,
job="programmer";
Value = undefined
1、在計算機程序中,經常會聲明無值的變量。未使用值來聲明的變量,其值實際上是undefined。在執行過以下語句后,變量name的值將是undefined。
2、通俗點說:當一個變量沒有手動賦值的時候,系統默認賦值undefined(這是一個具體的值)。
var i;
alert("i = "+i);
alert(undefined);
重新聲明變量
如果重新聲明 JavaScript 變量,該變量的值不會丟失。
在以下兩條語句執行后,變量a的值依然是 "awqer"。
var a = "awqer";
var a;
alert(a);
沒有聲明變量直接訪問
alert(x);
頁面不會出現錯誤,在控制台會出現語法錯誤:
x is not defined
函數
JavaScript函數語法
函數就是包裹在花括號中的代碼塊,前面使用了關鍵詞 function。
第一種:
function functionname(argument1,argument2...)
{
執行代碼
}
第二種:
functionname = function(argument1,argument2...){
執行代碼
}
1、當調用該函數時,會執行函數內的代碼。
2、可以在某事件發生時直接調用函數(比如當用戶點擊按鈕時),並且可由 JavaScript 在任何位置進行調用。
3、JavaScript 對大小寫敏感。關鍵詞 function 必須是小寫的,並且必須以與函數名稱相同的大小寫來調用函數。
4、function 中的花括號是必需的,即使函數體內只包含一條語句,仍然必須使用花括號將其括起來。
- JS中的函數有重載嗎?
JS當中的函數在調用的時候,參數的類型和個數都沒有限制,所以不存在重載(弱類型)。 - 函數名不能重名
當函數重名的時候,后聲明的函數會將之前聲明的同名函數覆蓋。
帶有返回值的函數
1、有時,我們會希望函數將值返回調用它的地方。通過使用return語句就可以實現。在使用return語句時,函數會停止執行(JS代碼還是繼續執行),並返回指定的值。
function myFunction()
{
var x=5;
return x;
}
2、僅僅希望退出函數時 ,也可使用 return 語句。
function myFunction(a,b)
{
if (a>b)
{
return;
}
x=a+b
}
如果 a 大於 b,則上面的代碼將退出函數,並不會計算 a 和 b 的總和。
全局變量和局部變量
局部變量
1、在 JavaScript 函數內部聲明的變量(使用 var)是局部變量,所以只能在函數內部訪問它。(該變量的作用域是局部的)。
2、可以在不同的函數中使用名稱相同的局部變量,因為只有聲明過該變量的函數才能識別出該變量。
只要函數運行完畢,本地變量就會被刪除。
3、局部變量比同名全局變量的優先級高,所以局部變量會隱藏同名的全局變量。
全局變量
1、在函數外聲明的變量是全局變量,網頁上的所有腳本和函數都能訪問它。
2、全局變量會一直在瀏覽器的內存當中,直到頁面關閉,比較耗費內存空間。
變量的生存期
1、JavaScript 變量的生命期從它們被聲明的時間開始。
2、局部變量會在函數運行以后被刪除。
3、全局變量會在頁面關閉后被刪除。
向未聲明的變量分配值
1、如果把值賦給尚未聲明的變量,該變量將被自動作為全局變量聲明。
2、這條語句:name="yu";
將聲明一個全局變量name,即使它在函數內執行。