12/08/2018, 14:18

Tản mạn đôi chút về Javascript

Hello các bẹn, đầu tiện cảm ơn vì đã click đọc bài của mình nhé, hôm nay như tiêu đề thì mình sẽ tản mạn đôi chút về Javascript nhé =)) =)) Bạn là một developer, đã từng code js function run ( ) { a = 1 ; } run ( ) ; console . log ( a ) ; Ở đoạn code này nó vẫn ...

495484_385c_3.jpg

Hello các bẹn, đầu tiện cảm ơn vì đã click đọc bài của mình nhé, hôm nay như tiêu đề thì mình sẽ tản mạn đôi chút về Javascript nhé =)) =))

Bạn là một developer, đã từng code js

function run(){
	a = 1;
}
run();
console.log(a);

Ở đoạn code này nó vẫn chạy, bạn có thể giải thích được không?

Thêm nữa nè:

var a = 20
var b = a + 10
console.log('Gia tri: a = %d, and b = %d', a, b)

function add(a, b) {
    var
        c = 10 // viet vao thoi, chang lam gi ca
    return
        a + b
}
console(add(10, 20))

Đoạn code này nó có chạy không nhỉ, thoạt nhìn thì đoạn code trên mình viết sai cú pháp mệ rồi, chạy thế qué nào được nhưng nó vẫn chạy đấy =)).

Quay lại để giải thích tại sao ở 2 đoạn code trên mặc dù có sai cú pháp nhưng nó vẫn chạy đoạn nhé: Như bạn biết thì Javascript là một ngôn ngữ thông dịch, nên khi chạy thì nó bắt đầu dịch mà không phải biên dịch trước như các ngôn ngữ như C, C++ hay Java. Đây cũng là lý do mình rất thích các ngôn nghữ thông dịch vì nó nhanh trong quá trình dev&test. Ahihi Ở đoạn code 1, khi chạy JS đã thông minh Hoisting tự động khai báo biện a lên đầu và đoạn code đó trở thành như sau:

var a;
function run(){
	a = 1;
}
run();
console.log(a);

Đó là một cơ chế Hoisting trong Javascript(đưa tất cả những khai báo lên đầu đoạn mã js).

Bạn có thể đọc ở đây để hiểu sâu hơn http://www.w3schools.com/js/js_hoisting.asp, còn với mình hiểu thì điều này giống như 1 term, khuyên chúng ta nên đưa hết hai báo lên trên cùng để tránh việc tự động sinh biến global ko đang có và có thể tránh đc những bugs sau này.

Tượng tự đoạn code 2 nó cũng sẽ được thêm các ký tự ";" vào sau mỗi lệnh.

var a = 20;
var b = a + 10;
console.log('Gia tri: a = %d, and b = %d', a, b);

function add(a, b) {
    var
        c = 10; // viet vao thoi, chang lam gi ca
    return
        a + b;
}
console(add(10, 20));

Đến đây thì bạn đã hiểu là chúng ta có thể bỏ dấu ; khi code JS, nhưng việc quá lạm dụng có thể gây ra những lỗi khó debug sau này, vậy thì

Lúc nào bắt buộc phải có dấu chấm phẩy

Có thể bỏ chấm phẩy trên các dòng khác nhau như VD trên

var square, add = function add(a, b) {
    return a + b
}

var sub = function sub(a, b) {
    return a - b;
}    square = function (a) { return a * a }

Buộc phải dùng chấm phẩy khi nào

Chúng ta buộc phải dùng (            </div>
            
            <div class=

0