Javascript Functions

Javascript Functions

Функц нь программын хэсгийн давхардаж байгаа хэсгийг хэсэгчлэн хувааж бас нэгтгэж дахин ашиглахад хэрэглэгдэж байгаа ухагдахуун юм.

Өөрөөр хэлбэл { .. } дотор нэгтгэн бичсэн нэг болон олон statements(коммандууд)-ийн цуглуулга юм.

Функцыг тодорхойлох (function definition)

  • Функцыг тодорхойлохдоо function гэдэг түлхүүр үгийг ашиглан бичнэ.
  • Функцийн function түлхүүр үгийн араас (..) (дугуй хаалт) оруулан бичээд {...} оруулж өгнө.
  • Функцийн (..) (дугуй хаалт) нь функцын параметрийг агуулна.
  • Функцийн {...}(угалзан хаалт) нь функц нь ямар statements(тушаалуудыг) гүйцэтгэх хэсгийг агуулдаг.
                            
function myFunction() {

    // code to be executed

}
                            
                        

Функцын дуудлага (function call)

  • Функцыг дуудахдаа функцын нэрээр дуудах үйлдэл хийнэ.
  • Функцын нэрээр дуудахдаа () (дугуй хаалт) оруулна.
  • Функцын дуудлага нь функцын тодорхойлолтод тодорхойлсон statement-уудыг гүйцэтгэнэ.
                            
    myFunction();
                            
                        

Javascript Functions

Функцыг тодорхойлох (function definition)

                            

Функцын параметр тодорхойлох

function functionName ( parameter ) { // Statements to be executed go here. }
                            

Функцын параметр-ийг default утга-тай тодорхойлох

function functionName ( parameter , parameter = value ) { // Statements to be executed go here. }

Функцыг дуудах (Function call)

                            

Функцыг параметртай дуудах

functionName ( parameter );
                            

Функцыг параметр-ийг default утга-тай дуудах

functionName ( parameter , parameter );

Функцыг дуудах жишээ

                            

Функцыг параметртай дуудах

functionName ( 10 );
                            

Функцыг параметр-ийг default утга-тай дуудах

functionName ( "Hello" , 10 );

Javascript Functions

Функцын return утга

  • Функцын тодорхойлолтод return утга бичих боломжтой.
  • Функцын тодорхойлолтод return утга бичихгүй бол функц нь undefined утга буцаана.
                            
function myFunction() {
    ...

    // do something

    return value;
}

console.log(myFunction()); // value
                        
                    

Параметртэй функцын return утга

  • Функцын тодорхойлолтод return утга бичих боломжтой.
  • Функцын тодорхойлолтод return утга бичихгүй бол функц нь undefined утга буцаана.
                            
function functionName ( parameter , parameter  ) {

    // Statements to be executed go here.

    return result
}

console.log(functionName(10, 10)); // value
                        
                    

Функцын жишээ

                            

Функцын параметртэй жишээ

function myFunction ( a, b ) { return a * b; } console.log(myFunction(10, 10)); // 100

Функцын параметр-ийг default утга-тай жишээ

                            
    function myFunction ( a, b = 10 ) {
        return a * b;
    }

    console.log(myFunction(10)); // 100
                            
                        
                            
    console.log(myFunction(10, 5)); // 50
                            
                        

Javascript Functions

Функцыг утганд оноох (Assign Functions)

  • Функцын тодорхойлолтод return утгыг хувьсагчид оноож болдог
  • Хэрвээ утгыг оноовол түүнийг Anonymous function гэж нэрлэдэг.
                            

let variable = function ( parameters ) {

    statements ;

    return value
}
                            
                        

Функц өөрөө өөрийгөө дуудах

  • Нэргүй функцыг бид нар дуудахдаа "self-invoking" буюу өөрөө өөрийгөө дуудах гэж нэрлэж болно.
  • Тухайн функц нь JS файлыг Browser дуудах үед ажиллаж эхэлдэг байна.
                            
( function ( ) {

    statements ;

    return value

}) ( )
                        
                    

Нэргүй Функцын(Anonymous function) жишээ

                            

Функцын параметртэй жишээ

let myFunction = function ( a, b ) { return a * b; } console.log(myFunction(10, 10)); // 100

Функцын параметр-ийг default утга-тай жишээ

                            
    let myFunction = function ( a, b = 10 ) {
        return a * b;
    }

    console.log(myFunction(10)); // 100
                            
                        
                            
    console.log(myFunction(10, 5)); // 50
                            
                        

Javascript Functions

Function hoisting буюу функцыг "хойстинг"

  • Функцыг тодорхойлохын өмнө функцыг дуудвал түүнийг "Hoisting" гэдэг байна.
  • JS Interpreter нь 2 алхамаар ажилладаг.
  • Эхний алхамд тухайн функц байгаа эсэхийг шалгадаг.
  • 2-р алхамд тухайн функцыг ажиллуулдаг.
  • Хэрвээ эхний алхамд функцыг танихгүй бол 2-р алхамд let болон const түлхүүр үгэнд оноогдсон функцүүдийг ажиллуулдаг байна.
                            

console.log(myFunction()); // value



function myFunction() {

    return value;

}
                            
                        

Function hoisting буюу функцыг "хойстинг" жишээ

                            
console.log( 'Hoisted: ' + add( 100, 200 ) );
function add( numOne, numTwo ) {

    return numOne + numTwo

}

let addition = add;

console.log( 'Assigned: ' + addition( 32, 64 ) );

let anon = function ( numOne, numTwo ) {
    let result = numOne + numTwo ;
    return result

}
console.log( 'Anonymous: ' + anon( 9, 1 ) )
let iffy = ( function ( ) {

    let str = 'Self Invoked Output' ; return str
})()

console.log( iffy )

                            
                        

Javascript Functions

Функцын Function Scope

  • Хувьсагчийн амьдрах хугацаа, харагдах байдал буюу "lexical scope" нь тухайн хувьсагч хаана үүсгэгдсэн бэ гэдгээс шалтгаална.
  • Хувьсагчийн scope нь global scope-той байдаг.
  • Хувьсагчийн scope нь local scope-той байдаг.

Global variable scope

  • Хувьсагчийн амьдрах хугацаа, харагдах байдал буюу "lexical scope" нь функцын блокоос гадна буюу тухайн JS скрипт даяар харагдахыг хэлдэг.
  • Тухайн файл дотор тухайн хувьсагч нь дандаа харагдаж хаана ч ашиглагдаж болохыг хэлдэг

Global variable scope жишээ

                            
let global = 'Global Variable';

function readGlobal( ) {

    console.log( global )
}

readGlobal( )

console.log(global);

                            
                        

Local variable scope

  • Хувьсагчийн амьдрах хугацаа, харагдах байдал буюу "lexical scope" нь зөвхөн үүсгэгдсэн функц дотроо харагдах хэрэглэгдэхийг хэлнэ.

local variable scope жишээ

                            

function readLocal( ) {

    let local = 'Local Variable' ;

    console.log( local )
}

readLocal( )

console.log(local); // it will throw an error