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)
})

results matching ""

    No results matching ""