12/08/2018, 14:17

Tản mạn về Function Declaration và Function Expression

JavaScript là ngôn ngữ có cú pháp sáng sủa, dễ học dễ dùng và cực kỳ thông dụng. Tuy nhiên dùng được không hẳn đã hiểu rõ bản chất của nó, bài viết này mình sẽ nói qua về 2 khái niệm Function Declaration (FD) và Function Expression (FE), mình tin rằng cũng khá nhiều người không rõ và sẽ xảy ra lỗi ...

JavaScript là ngôn ngữ có cú pháp sáng sủa, dễ học dễ dùng và cực kỳ thông dụng. Tuy nhiên dùng được không hẳn đã hiểu rõ bản chất của nó, bài viết này mình sẽ nói qua về 2 khái niệm Function Declaration (FD) và Function Expression (FE), mình tin rằng cũng khá nhiều người không rõ và sẽ xảy ra lỗi khi sử dụng chúng.

1.Đặt vấn đề

Những điều nhìn có vẻ giản dị như thế này lại có thể gây ra những nhầm lẫn không tưởng, dưới đây là vài ví dụ, bạn hãy tự nhẩm kết quả rồi chạy thử xem có đúng không nhé.

// Sau mỗi lần thử nên end session đang thử đi và tạo lại để kết quả được chuẩn nhất nhé.
function foo(){
    function bar() {
        return 3;
    }
    return bar();
    function bar() {
        return 8;
    }
}
alert(foo());

function foo(){
    var bar = function() {
        return 3;
    };
    return bar();
    var bar = function() {
        return 8;
    };
}
alert(foo());

alert(foo());
function foo(){
    var bar = function() {
        return 3;
    };
    return bar();
    var bar = function() {
        return 8;
    };
}

function foo(){
    return bar();
    var bar = function() {
        return 3;
    };
    var bar = function() {
        return 8;
    };
}
alert(foo());

Nếu bạn test thử mà đúng hết thì chắc là chẳng cần đọc tiếp đâu             </div>
            
            <div class=

0