JS中的變量和函數


變量概述

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,即使它在函數內執行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM