Basic javascript - Function
function เป็นส่วนประกอบสำคัญมากในภาษา Javascript แทบทุกอย่างภายในโปรแกรมจะเกิดจากการนำเอา function หลายๆตัวมาประกอบกัน ยกตัวอย่างเช่นใน test ก็เกิดจากการใช้ function เช่นกัน
test("Some tests", function(){
})
ก็หมายความว่า เรากำลังเรียกใช้งาน function ที่ชื่อ test ซึ่ง function นี้รับตัวแปรสองตัว คือ ชื่อ Test และ function สำหรับทำการทดสอบ
ภาษา Javascript นั้นถือว่า function ก็เป็นตัวแปรอีกประเภทหนึ่ง ดังนั้น มันจึงสามารถถูกนำมาใช้งานเหมือนกันตัวแปรได้
function testBody(){
}
test("Some tests", testBody)
หรือ
var testBody = function(){
}
test("Some tests", testBody)
ก็สามารถทำงานได้เช่นเดียวกัน แต่ไม่นิยมใช้กับการเขียน Test เนื่ีองจากกลับมาอ่านเข้าใจยาก ทำการปรับปรุงแก้ไขยาก
รูปแบบต่างๆของการสร้างและใช้งาน function
function ที่ return ค่าเป็นตัวแปร
เป็น function แบบปกติทั่วไป ทำงานเสร็จก็คืนค่ากลับมา ไม่จำเป็นต้องมีการประกาศเพิ่มเติมว่า ประเภทของข้อมูลที่คืนกลับไปมีค่าเป็นอะไร
test("Function with returned value", function(){
function add(a, b){
return a+b
})
expect(add(2+3)).toEqual(5)
})
function ที่ return ค่าเป็น function
test("Function with returned funtion", function(){
function createAddFunction(){
return function(a, b){
return a+b
}
}
var add = createAddFunction()
expect(add(3, 5)).toEqual(8)
})
การเรียกใช้ Function ที่อยู่ในไฟล์อื่น
ในการใช้งานปกติ function ที่เรียกมาใช้ มักจะไม่ได้อยู่ในไฟล์เดียวกัน ตัว node.js ได้เตรียมวิธีการเรียกใช้งาน function จากไฟล์อื่นเอาไว้ให้แล้ว
สร้างไฟล์ ชื่อ power.js
ภายในไฟล์ ให้ทำการเพิ่ม code ต่อไปนี้
function power(number){
return number * number
}
module.exports = power
- สร้างอีกไฟล์ ชื่อว่า power.test.js
- เขียน test สำหรับไฟล์ power.test.js
const power = require("./power.js")
test("Given 2 should return 4", function(){
var result = power(2)
expect(result).toEqual(4)
})