iT邦幫忙

2021 iThome 鐵人賽

DAY 22
0
Modern Web

JS進入新手村,我好害怕系列 第 22

Day22:終於要進去新手村了-Javascript-函式-概念

這篇我會記錄看教學影片所筆記的一些內容,用來幫助理解函式的一些觀念。

函式是屬於一種資料形式,所以可以放進變數裡面,比如說:

function add(n1,n2){
    alert(n1+n2);
}
//可以放進變數內寫成以下寫法
var add = function add(n1,n2){
    alert(n1+n2);
}

接續上方的例子,上面的程式碼已經定義add這個變數的資料為function add(n1,n2){alert(n1+n2)這組函式,所以我們可以使用這個變數執行函式:

add(2,8)

用法一樣是add(n1,n2),將資料填入後會帶入函式內運算執行。

關於函式部分可以看做,函式用來創造一個新的空間,一般來說如果使用宣告變數,不能再重複一樣的變數名稱做宣告,但是函式內部是一個獨立空間,所以可以在函式內宣告跟函式外一樣的變數名稱,函式會優先在內部尋找宣告,如果找不到符合的變數才會向外部尋找。

程式碼的規則中,會優先在同一個空間尋找變數,找不到才會向外空間尋找,不會往內尋找。

函式外的空間稱為全域空間,在這個地方宣告的變數為全域變數。
函式內的空間則被稱為區域空間,在函式內宣告的變數則為區域變數。

全域空間的程式碼則不能使用區域空間內的變數做運算

舉個例子來說:

var x=3 

function test(){
    var x = 5;
    var y = 10;
    alert (x+y);
}

上方程式碼中,在function test外的宣告變數,不能重複宣告var x,function test可以看做是一個區域空間,在這區域空間內就可以宣告與函式外一樣的變數名稱,但是區域變數只有在這個區域空間內有用,以上方的範例來說,會跳出15,但是如果向下方程式碼一樣,刪除了function test內的變數x,則會因為內部沒有宣告為x的變數而往外部空間尋找,這時候就會找到上方第一行寫的var x=3 ,此時這個函數就會跳出13。

var x=3 

function test(){
    var y = 10;
    alert (x+y);
}

上一篇
Day21:終於要進去新手村了-Javascript-函式-建立函式練習
下一篇
Day23:終於要進去新手村了-Javascript-物件建立
系列文
JS進入新手村,我好害怕30

1 則留言

0
GG
iT邦新手 5 級 ‧ 2021-10-08 15:16:02

你到第22天了!!!!!!!!!/images/emoticon/emoticon42.gif

h1144777 iT邦新手 5 級 ‧ 2021-10-08 21:54:17 檢舉

對!!!! 登愣!!

我要留言

立即登入留言