Node.js 函數(shù)

2018-01-09 08:04 更新

JavaScript是一種函數(shù)式編程語(yǔ)言,函數(shù)是可以操作、擴(kuò)展和傳遞為數(shù)據(jù)的完全類(lèi)型化對(duì)象。JavaScript中的正常函數(shù)結(jié)構(gòu)定義如下。

function functionName() {
   // function body
   // optional return; 
} 

所有函數(shù)在JavaScript中返回一個(gè)值。在沒(méi)有顯式返回語(yǔ)句的情況下,函數(shù)返回undefined。

function myData() { 
   return 123; 
} 
console.log(myData()); // 123 

function myValue() { 
} 
console.log(myValue()); // undefined 

例子1

以下代碼顯示如何創(chuàng)建函數(shù):

function hello(name) {
     console.log("hello " + name);
}
hello("CSS");

上面的代碼生成以下結(jié)果。

創(chuàng)建函數(shù)

注意

要在JavaScript中聲明函數(shù)的參數(shù),請(qǐng)將其列在括號(hào)中。在運(yùn)行時(shí)沒(méi)有檢查這些參數(shù):

function hello(name) {
     console.log("hello " + name);
}
hello();
hello("CSS", "HTML", "AAA", 4);

上面的代碼生成以下結(jié)果。

聲明函數(shù)的參數(shù)

如果傳遞給函數(shù)調(diào)用的參數(shù)太少,則將為結(jié)果變量賦值undefined。如果傳入的太多,額外的會(huì)unused。所有函數(shù)在主體中都有一個(gè)預(yù)定義的數(shù)組,稱(chēng)為 arguments 。它具有傳遞到函數(shù)的所有值,我們可以對(duì)參數(shù)列表進(jìn)行額外的檢查。

JavaScript中的函數(shù)甚至不需要有名稱(chēng):

var x = function (a, b) {
     return a + b;
}
console.log(x(10, 20));

上面的代碼生成以下結(jié)果。

函數(shù)結(jié)果

無(wú)名函數(shù)通常稱(chēng)為匿名函數(shù)。

函數(shù)作用域

每次調(diào)用函數(shù)時(shí),都會(huì)創(chuàng)建一個(gè)新的變量作用域。在父作用域中聲明的變量可用于該函數(shù)。在新作用域中聲明的變量在函數(shù)退出時(shí)不可用。

參考下面的代碼:

var pet = "cat";

function myMethod() {
     var pet = "dog";
     console.log(pet);
 }

myMethod();
console.log(pet);

上面的代碼生成以下結(jié)果。

函數(shù)作用域

將此作用域與匿名函數(shù)組合是更好的使用私有變量的方法,在匿名函數(shù)退出時(shí)私有變量將消失。

例子2

這里是一個(gè)計(jì)算錐體積的示例:

var height = 5;
var radius = 3;
var volume;
// declare and immediately call anonymous function to create scope
(function () {/*from w  w  w  . j  av a  2 s  . c  o m*/
     var pir2 = Math.PI * radius * radius;   // temp var
     volume = (pir2 * height) / 3;
})();

console.log(volume);

上面的代碼生成以下結(jié)果。

錐體積計(jì)算結(jié)果
以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)