Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Hỏi về biến var trong Javascript

08:51 01-09-2021 508 lượt xem 6 bình luận 16:59 01-09-2021

Mình có đoạn Code như bên dưới, mình vẫn chưa hiểu tại sao mình ó thể thay đổi giá trị của biến str trong khi biến đó nằm trong hàm doSomething mọi người giải thích giúp mình với.

function doSomething(){

    var str = 'Codechamthoi'
    console.log(str);
}
doSomething();
str = 'Alabatrap'
console.log(str);

Output:
Codechamthoi
Alabatrap

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Supporter Moderator đã bình luận 08:54 01-09-2021

Khi bạn viết 

function doSomething(){
    var str = 'Codechamthoi'
    console.log(str);
}
doSomething();
str = 'Alabatrap'
console.log(str)

Thì Javascript nó sẽ hiểu như sau


function doSomething(){
    var str = 'Codechamthoi'
    console.log(str);
}
doSomething();

var str;
str = 'Alabatrap'
console.log(str)

Đó cũng là lý do bạn có thể chỉnh sửa biến str, bạn tìm hiểu thêm các Keyword bên dưới sẽ hiểu rõ hơn về phần này.

- Scope
- Hoisting
- Var in Javascript

NMS1010 đã bình luận 10:31 01-09-2021
2 cái str là khác nhau nhá bạn, 1 cái str trong function scope, 1 cái str ở dưới là khi bạn không khai báo nó sẽ tự hiểu là biến global, chứ str trong function scope chỉ truy cập được trong function thôi

Câu hỏi mới nhất