Hướng dẫn how are variables stored in javascript? - các biến được lưu trữ trong javascript như thế nào?

Bản thân ngôn ngữ không chỉ định nơi được lưu trữ ở đâu hoặc mọi thứ, mặc dù hầu hết sẽ được lưu trữ trong RAM.

Show

Một số số nguyên có thể được lưu trữ trong các thanh ghi - nhưng không phải tất cả các bộ xử lý thậm chí có thanh ghi.

Nhưng tóm lại, không, bạn không thể kiểm soát trực tiếp bất kỳ điều đó. Trên thực tế, ngôn ngữ được thiết kế để loại bỏ bạn khỏi bất kỳ chi tiết cấp thấp nào.

Để truy cập bộ nhớ trực tiếp, bạn cần sử dụng một ngôn ngữ như

<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
2 hoặc
<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
3 - và thậm chí sau đó nó có thể khá khó khăn vì trình quản lý bộ nhớ có thể cung cấp cho bạn một khối bộ nhớ và nói 'đó là tất cả những gì có sẵn' và cô lập bạn với mọi thứ khác.

  • Trước
  • Tổng quan: Các bước đầu tiên
  • Tiếp theo

Trong mô -đun này

Làm thế nào là một biến được lưu trữ?

Các biến thường được lưu trữ trong RAM. Đây là trên đống (ví dụ: tất cả các biến toàn cầu thường sẽ đến đó) hoặc trên ngăn xếp (tất cả các biến được khai báo trong một phương thức/hàm thường đi đến đó). Ngăn xếp và đống đều là RAM, chỉ là các vị trí khác nhau.

Những biến bộ nhớ nào được lưu trữ trong JavaScript?

Bất cứ khi nào bạn xác định một biến trong JavaScript, công cụ JavaScript phân bổ bộ nhớ cho nó. Tùy thuộc vào việc biến là một đối tượng hay giá trị nguyên thủy như chuỗi, số, v.v., nó sẽ được lưu trữ trong ngăn xếp hoặc cấu trúc dữ liệu heap.

Làm thế nào để JavaScript lưu trữ số trong bộ nhớ?

<button id="button_A">Press mebutton>
<h3 id="heading_A">h3>

const buttonA = document.querySelector('#button_A');
const headingA = document.querySelector('#heading_A');

buttonA.onclick = () => {
  const name = prompt('What is your name?');
  alert(`Hello ${name}, nice to see you!`);
  headingA.textContent = `Welcome ${name}`;
}

Các số JavaScript luôn được lưu trữ dưới dạng số điểm nổi chính xác kép, theo tiêu chuẩn quốc tế của IEEE 754.

JavaScript có sử dụng ngăn xếp hoặc đống không?

Heap: Nó được sử dụng để lưu trữ các đối tượng và chức năng trong JavaScript. Động cơ không phân bổ một lượng bộ nhớ cố định. Thay vào đó, nó phân bổ nhiều không gian hơn theo yêu cầu. ... Quản lý bộ nhớ trong JavaScript ..

<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>

const buttonB = document.querySelector('#button_B');
const headingB = document.querySelector('#heading_B');

buttonB.onclick = () => {
    alert(`Hello ${prompt('What is your name?')}, nice to see you!`);
    headingB.textContent = `Welcome ${prompt('What is your name?')}`;
}

Sau khi đọc một vài bài báo cuối cùng bạn nên biết JavaScript là gì, nó có thể làm gì cho bạn, cách bạn sử dụng nó cùng với các công nghệ web khác và các tính năng chính của nó trông như thế nào từ cấp độ cao. Trong bài viết này, chúng tôi sẽ đi đến những điều cơ bản thực sự, xem xét cách làm việc với các khối xây dựng cơ bản nhất của JavaScript - các biến.

Trong suốt bài viết này, bạn sẽ được yêu cầu nhập các dòng mã để kiểm tra sự hiểu biết của bạn về nội dung. Nếu bạn đang sử dụng trình duyệt máy tính để bàn, nơi tốt nhất để nhập mã mẫu của bạn là bảng điều khiển JavaScript của trình duyệt (xem các công cụ phát triển trình duyệt là gì để biết thêm thông tin về cách truy cập công cụ này).

Một biến là gì?

Lưu ý: Chúng tôi nói các biến chứa các giá trị. Đây là một sự khác biệt quan trọng để thực hiện. Các biến không phải là các giá trị; Chúng là container cho các giá trị. Bạn có thể nghĩ về chúng giống như những hộp các tông nhỏ mà bạn có thể lưu trữ mọi thứ. We say variables contain values. This is an important distinction to make. Variables aren't the values themselves; they are containers for values. You can think of them being like little cardboard boxes that you can store things in.

Hướng dẫn how are variables stored in javascript? - các biến được lưu trữ trong javascript như thế nào?

Tuyên bố một biến

Để sử dụng một biến, trước tiên bạn phải tạo nó - chính xác hơn, chúng tôi gọi đây là khai báo biến. Để làm điều này, chúng tôi nhập từ khóa

<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
4 theo sau là tên bạn muốn gọi biến của bạn:

Ở đây chúng tôi đang tạo hai biến được gọi là

<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
5 và
<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
6. Hãy thử gõ các dòng này vào bảng điều khiển của trình duyệt web của bạn. Sau đó, hãy thử tạo một biến (hoặc hai) với các lựa chọn tên của riêng bạn.

Lưu ý: Trong JavaScript, tất cả các hướng dẫn mã phải kết thúc bằng dấu chấm phẩy (

<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
7) - Mã của bạn có thể hoạt động chính xác cho các dòng duy nhất, nhưng có lẽ sẽ không khi bạn viết nhiều dòng mã với nhau. Cố gắng để có được thói quen bao gồm cả nó. In JavaScript, all code instructions should end with a semicolon (
<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
7) — your code may work correctly for single lines, but probably won't when you are writing multiple lines of code together. Try to get into the habit of including it.

Bạn có thể kiểm tra xem các giá trị này hiện có tồn tại trong môi trường thực thi hay không bằng cách nhập tên của biến, ví dụ:

Họ hiện không có giá trị; Chúng là những container trống. Khi bạn nhập tên biến, bạn sẽ nhận được giá trị

<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
8 được trả về. Nếu chúng không tồn tại, bạn sẽ nhận được một thông báo lỗi - hãy thử gõ vào

Lưu ý: Đừng nhầm lẫn một biến tồn tại nhưng không có giá trị xác định với một biến không tồn tại - chúng là những thứ rất khác nhau. Trong tương tự hộp bạn đã thấy ở trên, không có nghĩa là không có hộp (biến) cho một giá trị đi vào. Không có giá trị được xác định có nghĩa là có một hộp, nhưng nó không có giá trị bên trong nó. Don't confuse a variable that exists but has no defined value with a variable that doesn't exist at all — they are very different things. In the box analogy you saw above, not existing would mean there's no box (variable) for a value to go in. No value defined would mean that there is a box, but it has no value inside it.

Khởi tạo một biến

Khi bạn đã khai báo một biến, bạn có thể khởi tạo nó bằng một giá trị. Bạn làm điều này bằng cách nhập tên biến, theo sau là một dấu bằng (

<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
9), theo sau là giá trị bạn muốn cung cấp. Ví dụ:

myName = 'Chris';
myAge = 37;

Hãy thử quay lại bảng điều khiển ngay bây giờ và gõ vào các dòng này. Bạn sẽ thấy giá trị bạn đã gán cho biến được trả về trong bảng điều khiển để xác nhận nó, trong mỗi trường hợp. Một lần nữa, bạn có thể trả về các giá trị biến của mình bằng cách nhập tên của chúng vào bảng điều khiển - hãy thử lại những điều này:

Bạn có thể khai báo và khởi tạo một biến cùng một lúc, như thế này:

Đây có lẽ là những gì bạn sẽ làm hầu hết thời gian, vì nó nhanh hơn so với thực hiện hai hành động trên hai dòng riêng biệt.

Một lưu ý về var

Có lẽ bạn cũng sẽ thấy một cách khác để khai báo các biến, sử dụng từ khóa

const buttonB = document.querySelector('#button_B');
const headingB = document.querySelector('#heading_B');

buttonB.onclick = () => {
    alert(`Hello ${prompt('What is your name?')}, nice to see you!`);
    headingB.textContent = `Welcome ${prompt('What is your name?')}`;
}
0:

Quay lại khi JavaScript được tạo lần đầu tiên, đây là cách duy nhất để khai báo các biến. Thiết kế của

const buttonB = document.querySelector('#button_B');
const headingB = document.querySelector('#heading_B');

buttonB.onclick = () => {
    alert(`Hello ${prompt('What is your name?')}, nice to see you!`);
    headingB.textContent = `Welcome ${prompt('What is your name?')}`;
}
0 khó hiểu và dễ bị lỗi. Vì vậy,
<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
4 đã được tạo trong các phiên bản hiện đại của JavaScript, một từ khóa mới để tạo các biến hoạt động hơi khác với
const buttonB = document.querySelector('#button_B');
const headingB = document.querySelector('#heading_B');

buttonB.onclick = () => {
    alert(`Hello ${prompt('What is your name?')}, nice to see you!`);
    headingB.textContent = `Welcome ${prompt('What is your name?')}`;
}
0, khắc phục các vấn đề của nó trong quá trình.

Một vài khác biệt đơn giản được giải thích dưới đây. Chúng tôi sẽ không đi sâu vào tất cả các khác biệt bây giờ, nhưng bạn sẽ bắt đầu khám phá chúng khi bạn tìm hiểu thêm về JavaScript (nếu bạn thực sự muốn đọc về chúng bây giờ, vui lòng kiểm tra trang tham khảo LET của chúng tôi).

Để bắt đầu, nếu bạn viết một chương trình JavaScript đa dòng khai báo và khởi tạo một biến, bạn thực sự có thể khai báo một biến với

const buttonB = document.querySelector('#button_B');
const headingB = document.querySelector('#heading_B');

buttonB.onclick = () => {
    alert(`Hello ${prompt('What is your name?')}, nice to see you!`);
    headingB.textContent = `Welcome ${prompt('What is your name?')}`;
}
0 sau khi bạn khởi tạo nó và nó vẫn sẽ hoạt động. Ví dụ:

myName = 'Chris';

function logName() {
  console.log(myName);
}

logName();

var myName;

Lưu ý: Điều này sẽ không hoạt động khi gõ các dòng riêng lẻ vào bảng điều khiển JavaScript, ngay khi chạy nhiều dòng JavaScript vào tài liệu web. This won't work when typing individual lines into a JavaScript console, just when running multiple lines of JavaScript in a web document.

Điều này hoạt động vì nâng cao - đọc var nâng để biết thêm chi tiết về chủ đề này.hoisting — read var hoisting for more detail on the subject.

Tăng cường không còn hoạt động với

<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
4. Nếu chúng tôi thay đổi
const buttonB = document.querySelector('#button_B');
const headingB = document.querySelector('#heading_B');

buttonB.onclick = () => {
    alert(`Hello ${prompt('What is your name?')}, nice to see you!`);
    headingB.textContent = `Welcome ${prompt('What is your name?')}`;
}
0 thành
<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
4 trong ví dụ trên, nó sẽ thất bại với lỗi. Đây là một điều tốt - tuyên bố một biến sau khi bạn khởi tạo nó dẫn đến khó hiểu, khó hiểu mã hơn.

Thứ hai, khi bạn sử dụng

const buttonB = document.querySelector('#button_B');
const headingB = document.querySelector('#heading_B');

buttonB.onclick = () => {
    alert(`Hello ${prompt('What is your name?')}, nice to see you!`);
    headingB.textContent = `Welcome ${prompt('What is your name?')}`;
}
0, bạn có thể khai báo biến tương tự bao nhiêu lần tùy thích, nhưng với
<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
4 bạn không thể. Điều sau đây sẽ hoạt động:

var myName = 'Chris';
var myName = 'Bob';

Nhưng những điều sau đây sẽ gây ra lỗi trên dòng thứ hai:

let myName = 'Chris';
let myName = 'Bob';

Thay vào đó bạn phải làm điều này:

let myName = 'Chris';
myName = 'Bob';

Một lần nữa, đây là một quyết định ngôn ngữ hợp lý. Không có lý do gì để tái cấu trúc các biến - nó chỉ khiến mọi thứ trở nên khó hiểu hơn.

Vì những lý do này và hơn thế nữa, chúng tôi khuyên bạn nên sử dụng

<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
4 trong mã của mình, thay vì
const buttonB = document.querySelector('#button_B');
const headingB = document.querySelector('#heading_B');

buttonB.onclick = () => {
    alert(`Hello ${prompt('What is your name?')}, nice to see you!`);
    headingB.textContent = `Welcome ${prompt('What is your name?')}`;
}
0. Không có lý do gì để sử dụng
const buttonB = document.querySelector('#button_B');
const headingB = document.querySelector('#heading_B');

buttonB.onclick = () => {
    alert(`Hello ${prompt('What is your name?')}, nice to see you!`);
    headingB.textContent = `Welcome ${prompt('What is your name?')}`;
}
0, trừ khi bạn cần hỗ trợ Internet Explorer 10 trở lên bằng mã của bạn.

Lưu ý: Nếu bạn đang thử mã này trong bảng điều khiển của trình duyệt, thích sao chép và dán từng khối mã ở đây nói chung. Có một tính năng trong bảng điều khiển của Chrome trong đó việc khai báo lại biến với

<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
4 và
myName = 'Chris';
myAge = 37;
4 được cho phép:
If you are trying this code in your browser's console, prefer to copy & paste each of the code blocks here as a whole. There's a feature in Chrome's console where variable re-declarations with
<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
4 and
myName = 'Chris';
myAge = 37;
4 are allowed:

> let myName = 'Chris';
  let myName = 'Bob';
// As one input: SyntaxError: Identifier 'myName' has already been declared

> let myName = 'Chris';
> let myName = 'Bob';
// As two inputs: both succeed

Cập nhật một biến

Khi một biến đã được khởi tạo với một giá trị, bạn có thể thay đổi (hoặc cập nhật) giá trị đó bằng cách cho nó một giá trị khác. Hãy thử nhập các dòng sau vào bảng điều khiển của bạn:

const buttonA = document.querySelector('#button_A');
const headingA = document.querySelector('#heading_A');

buttonA.onclick = () => {
  const name = prompt('What is your name?');
  alert(`Hello ${name}, nice to see you!`);
  headingA.textContent = `Welcome ${name}`;
}
0

Một bên về các quy tắc đặt tên biến

Bạn có thể gọi một biến khá nhiều bất cứ thứ gì bạn thích, nhưng có những hạn chế. Nói chung, bạn nên chỉ sử dụng các ký tự Latin (0-9, A-Z, A-Z) và ký tự dấu gạch dưới.

  • Bạn không nên sử dụng các ký tự khác vì chúng có thể gây ra lỗi hoặc khó hiểu đối với khán giả quốc tế.
  • Không sử dụng dấu gạch dưới khi bắt đầu các tên biến - điều này được sử dụng trong một số cấu trúc JavaScript nhất định có nghĩa là những thứ cụ thể, do đó có thể gây nhầm lẫn.
  • Không sử dụng số khi bắt đầu các biến. Điều này không được phép và gây ra lỗi.
  • Một quy ước an toàn để gắn bó là cái gọi là "trường hợp lạc đà thấp hơn", trong đó bạn gắn kết nhiều từ, sử dụng chữ thường cho toàn bộ từ đầu tiên và sau đó tận dụng các từ tiếp theo. Chúng tôi đã sử dụng điều này cho các tên biến của chúng tôi trong bài viết cho đến nay.
  • Tạo tên biến trực quan, vì vậy họ mô tả dữ liệu mà chúng chứa. Đừng chỉ sử dụng các chữ cái/số đơn, hoặc các cụm từ dài lớn.
  • Các biến nhạy cảm trường hợp - vì vậy
    myName = 'Chris';
    myAge = 37;
    
    5 là một biến khác nhau so với
    <button id="button_B">Press mebutton>
    <h3 id="heading_B">h3>
    
    6.
  • Một điểm cuối cùng: Bạn cũng cần tránh sử dụng các từ dành riêng của JavaScript làm tên biến của bạn - bởi điều này, chúng tôi có nghĩa là các từ tạo nên cú pháp thực tế của JavaScript! Vì vậy, bạn không thể sử dụng các từ như
    const buttonB = document.querySelector('#button_B');
    const headingB = document.querySelector('#heading_B');
    
    buttonB.onclick = () => {
        alert(`Hello ${prompt('What is your name?')}, nice to see you!`);
        headingB.textContent = `Welcome ${prompt('What is your name?')}`;
    }
    
    0,
    myName = 'Chris';
    myAge = 37;
    
    8,
    <button id="button_B">Press mebutton>
    <h3 id="heading_B">h3>
    
    4 và
    myName = 'Chris';
    
    function logName() {
      console.log(myName);
    }
    
    logName();
    
    var myName;
    
    0 làm tên biến. Các trình duyệt nhận ra chúng là các mục mã khác nhau và vì vậy bạn sẽ gặp lỗi.

Ví dụ tên tốt:

const buttonA = document.querySelector('#button_A');
const headingA = document.querySelector('#heading_A');

buttonA.onclick = () => {
  const name = prompt('What is your name?');
  alert(`Hello ${name}, nice to see you!`);
  headingA.textContent = `Welcome ${name}`;
}
1

Ví dụ tên xấu:

const buttonA = document.querySelector('#button_A');
const headingA = document.querySelector('#heading_A');

buttonA.onclick = () => {
  const name = prompt('What is your name?');
  alert(`Hello ${name}, nice to see you!`);
  headingA.textContent = `Welcome ${name}`;
}
2

Hãy thử tạo thêm một vài biến bây giờ, với hướng dẫn trên trong tâm trí.

Loại biến

Có một vài loại dữ liệu khác nhau mà chúng ta có thể lưu trữ trong các biến. Trong phần này, chúng tôi sẽ mô tả những điều này một cách ngắn gọn, sau đó trong các bài viết trong tương lai, bạn sẽ tìm hiểu về chúng chi tiết hơn.

Cho đến nay chúng tôi đã xem xét hai cái đầu tiên, nhưng có những người khác.

Số

Bạn có thể lưu trữ số trong các biến, toàn bộ số như 30 (còn được gọi là số nguyên) hoặc số thập phân như 2.456 (còn được gọi là floats hoặc số điểm nổi). Bạn không cần phải khai báo các loại biến trong JavaScript, không giống như một số ngôn ngữ lập trình khác. Khi bạn cho một biến một giá trị số, bạn không bao gồm các trích dẫn:

Dây

Chuỗi là những đoạn văn bản. Khi bạn đưa ra một biến một giá trị chuỗi, bạn cần bọc nó trong các dấu ngoặc kép đơn hoặc kép; Mặt khác, JavaScript cố gắng giải thích nó như một tên biến khác.

const buttonA = document.querySelector('#button_A');
const headingA = document.querySelector('#heading_A');

buttonA.onclick = () => {
  const name = prompt('What is your name?');
  alert(`Hello ${name}, nice to see you!`);
  headingA.textContent = `Welcome ${name}`;
}
3

Booleans

Booleans là các giá trị đúng/sai - chúng có thể có hai giá trị,

myName = 'Chris';

function logName() {
  console.log(myName);
}

logName();

var myName;
1 hoặc
myName = 'Chris';

function logName() {
  console.log(myName);
}

logName();

var myName;
2. Chúng thường được sử dụng để kiểm tra một điều kiện, sau đó mã được chạy khi thích hợp. Vì vậy, ví dụ, một trường hợp đơn giản sẽ là:

Trong khi đó trong thực tế, nó sẽ được sử dụng như thế này:

Điều này đang sử dụng toán tử "ít hơn" (

myName = 'Chris';

function logName() {
  console.log(myName);
}

logName();

var myName;
3) để kiểm tra xem 6 có nhỏ hơn 3. Như bạn có thể mong đợi, nó trả về
myName = 'Chris';

function logName() {
  console.log(myName);
}

logName();

var myName;
2, vì 6 không nhỏ hơn 3! Bạn sẽ tìm hiểu nhiều hơn về các nhà khai thác như vậy sau này trong khóa học.

Mảng

Một mảng là một đối tượng duy nhất chứa nhiều giá trị được đặt trong các dấu ngoặc vuông và được phân tách bằng dấu phẩy. Hãy thử nhập các dòng sau vào bảng điều khiển của bạn:

const buttonA = document.querySelector('#button_A');
const headingA = document.querySelector('#heading_A');

buttonA.onclick = () => {
  const name = prompt('What is your name?');
  alert(`Hello ${name}, nice to see you!`);
  headingA.textContent = `Welcome ${name}`;
}
4

Khi các mảng này được xác định, bạn có thể truy cập từng giá trị theo vị trí của chúng trong mảng. Hãy thử các dòng sau:

const buttonA = document.querySelector('#button_A');
const headingA = document.querySelector('#heading_A');

buttonA.onclick = () => {
  const name = prompt('What is your name?');
  alert(`Hello ${name}, nice to see you!`);
  headingA.textContent = `Welcome ${name}`;
}
5

Các dấu ngoặc vuông chỉ định một giá trị chỉ mục tương ứng với vị trí của giá trị bạn muốn được trả về. Bạn có thể nhận thấy rằng các mảng trong JavaScript là không chỉ số: phần tử đầu tiên là tại Index 0.

Bạn sẽ tìm hiểu thêm về các mảng trong một bài viết trong tương lai.

Các đối tượng

Trong lập trình, một đối tượng là một cấu trúc của mã mô hình hóa một đối tượng thực tế. Bạn có thể có một đối tượng đơn giản đại diện cho một hộp và chứa thông tin về chiều rộng, chiều dài và chiều cao của nó hoặc bạn có thể có một đối tượng đại diện cho một người và chứa dữ liệu về tên, chiều cao, trọng lượng của chúng để nói xin chào với họ, và nhiều hơn nữa.

Hãy thử nhập dòng sau vào bảng điều khiển của bạn:

const buttonA = document.querySelector('#button_A');
const headingA = document.querySelector('#heading_A');

buttonA.onclick = () => {
  const name = prompt('What is your name?');
  alert(`Hello ${name}, nice to see you!`);
  headingA.textContent = `Welcome ${name}`;
}
6

Để truy xuất thông tin được lưu trữ trong đối tượng, bạn có thể sử dụng cú pháp sau:

Chúng tôi sẽ không xem xét các đối tượng nữa - bạn có thể tìm hiểu thêm về những người trong một mô -đun trong tương lai.

Gõ động

JavaScript là "ngôn ngữ được gõ động", có nghĩa là, không giống như một số ngôn ngữ khác, bạn không cần chỉ định loại dữ liệu nào sẽ chứa (số, chuỗi, mảng, v.v.).

Ví dụ: nếu bạn khai báo một biến và cung cấp cho nó một giá trị được đặt trong các trích dẫn, trình duyệt coi biến là một chuỗi:

Ngay cả khi giá trị kèm theo trong trích dẫn chỉ là các chữ số, nó vẫn là một chuỗi - không phải là một số - vì vậy hãy cẩn thận:

const buttonA = document.querySelector('#button_A');
const headingA = document.querySelector('#heading_A');

buttonA.onclick = () => {
  const name = prompt('What is your name?');
  alert(`Hello ${name}, nice to see you!`);
  headingA.textContent = `Welcome ${name}`;
}
7

Hãy thử nhập bốn dòng trên vào bảng điều khiển của bạn từng cái một và xem kết quả là gì. Bạn sẽ nhận thấy rằng chúng tôi đang sử dụng một toán tử đặc biệt có tên

myName = 'Chris';

function logName() {
  console.log(myName);
}

logName();

var myName;
5 - điều này trả về loại dữ liệu của biến bạn gõ sau nó. Lần đầu tiên được gọi, nó sẽ trả về
myName = 'Chris';

function logName() {
  console.log(myName);
}

logName();

var myName;
6, vì tại thời điểm đó, biến
myName = 'Chris';

function logName() {
  console.log(myName);
}

logName();

var myName;
7 chứa một chuỗi,
myName = 'Chris';

function logName() {
  console.log(myName);
}

logName();

var myName;
8. Hãy xem và xem những gì nó trả về lần thứ hai bạn gọi nó.

Hằng số trong JavaScript

Cũng như các biến, bạn có thể khai báo hằng số. Đây giống như các biến, ngoại trừ điều đó:

  • bạn phải khởi tạo chúng khi bạn tuyên bố chúng
  • Bạn không thể gán cho họ một giá trị mới sau khi bạn khởi tạo chúng.

Ví dụ: sử dụng

<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
4, bạn có thể khai báo một biến mà không cần khởi tạo nó:

Nếu bạn cố gắng làm điều này bằng cách sử dụng

myName = 'Chris';
myAge = 37;
4, bạn sẽ thấy lỗi:

Tương tự, với

<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
4, bạn có thể khởi tạo một biến và sau đó gán cho nó một giá trị mới (cái này còn được gọi là chỉ định lại biến):

const buttonA = document.querySelector('#button_A');
const headingA = document.querySelector('#heading_A');

buttonA.onclick = () => {
  const name = prompt('What is your name?');
  alert(`Hello ${name}, nice to see you!`);
  headingA.textContent = `Welcome ${name}`;
}
8

Nếu bạn cố gắng làm điều này bằng cách sử dụng

myName = 'Chris';
myAge = 37;
4, bạn sẽ thấy lỗi:

const buttonA = document.querySelector('#button_A');
const headingA = document.querySelector('#heading_A');

buttonA.onclick = () => {
  const name = prompt('What is your name?');
  alert(`Hello ${name}, nice to see you!`);
  headingA.textContent = `Welcome ${name}`;
}
9

Tương tự, với

<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
4, bạn có thể khởi tạo một biến và sau đó gán cho nó một giá trị mới (cái này còn được gọi là chỉ định lại biến):

<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
0

Lưu ý rằng mặc dù hằng số trong JavaScript phải luôn đặt tên cho cùng một giá trị, bạn có thể thay đổi nội dung của giá trị mà nó đặt tên. Đây không phải là một sự khác biệt hữu ích cho các loại đơn giản như số hoặc booleans, nhưng hãy xem xét một đối tượng:

<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
1

Bạn có thể cập nhật, thêm hoặc xóa các thuộc tính của một đối tượng được khai báo bằng myName = 'Chris'; myAge = 37; 4, vì mặc dù nội dung của đối tượng đã thay đổi, hằng số vẫn chỉ vào cùng một đối tượng:

Khi nào nên sử dụng const và khi nào nên sử dụng

Nếu bạn không thể làm nhiều với

myName = 'Chris';
myAge = 37;
4 như bạn có thể với
<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
4, tại sao bạn muốn sử dụng nó hơn là
<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
4? Trong thực tế
myName = 'Chris';
myAge = 37;
4 rất hữu ích. Nếu bạn sử dụng
myName = 'Chris';
myAge = 37;
4 để đặt tên cho một giá trị, nó sẽ cho bất kỳ ai nhìn vào mã của bạn rằng tên này sẽ không bao giờ được gán cho một giá trị khác. Bất cứ khi nào họ nhìn thấy tên này, họ sẽ biết những gì nó đề cập đến.

Trong khóa học này, chúng tôi áp dụng nguyên tắc sau đây về thời điểm sử dụng

<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
4 và khi nào nên sử dụng
myName = 'Chris';
myAge = 37;
4:

Sử dụng

myName = 'Chris';
myAge = 37;
4 khi bạn có thể và sử dụng
<button id="button_B">Press mebutton>
<h3 id="heading_B">h3>
4 khi bạn phải.

Điều này có nghĩa là nếu bạn có thể khởi tạo một biến khi bạn khai báo và không cần phải gán lại sau này, hãy làm cho nó trở thành một hằng số.

Kiểm tra kỹ năng của bạn!

Bạn đã đạt đến cuối bài viết này, nhưng bạn có thể nhớ thông tin quan trọng nhất không? Bạn có thể tìm thấy một số bài kiểm tra tiếp theo để xác minh rằng bạn đã giữ lại thông tin này trước khi bạn tiếp tục - xem Kiểm tra kỹ năng của bạn: Biến.

Bản tóm tắt

  • Đến bây giờ bạn nên biết một số tiền hợp lý về các biến JavaScript và cách tạo chúng. Trong bài viết tiếp theo, chúng tôi sẽ tập trung vào các con số chi tiết hơn, xem xét cách làm toán cơ bản trong javascript.
  • Trước
  • Tổng quan: Các bước đầu tiên

Tiếp theo

Làm thế nào là một biến được lưu trữ?

Các biến thường được lưu trữ trong RAM.Đây là trên đống (ví dụ: tất cả các biến toàn cầu thường sẽ đến đó) hoặc trên ngăn xếp (tất cả các biến được khai báo trong một phương thức/hàm thường đi đến đó).Ngăn xếp và đống đều là RAM, chỉ là các vị trí khác nhau.usually stored in RAM. This is either on the heap (e.g. all global variables will usually go there) or on the stack (all variables declared within a method/function usually go there). Stack and Heap are both RAM, just different locations.

Những biến bộ nhớ nào được lưu trữ trong JavaScript?

Bất cứ khi nào bạn xác định một biến trong JavaScript, công cụ JavaScript phân bổ bộ nhớ cho nó.Tùy thuộc vào việc biến là một đối tượng hay giá trị nguyên thủy như chuỗi, số, v.v., nó sẽ được lưu trữ trong ngăn xếp hoặc cấu trúc dữ liệu heap.either in Stack or a Heap Data structure.

Làm thế nào để JavaScript lưu trữ số trong bộ nhớ?

Các số JavaScript luôn được lưu trữ dưới dạng số điểm nổi chính xác kép, theo tiêu chuẩn quốc tế của IEEE 754.double precision floating point numbers, following the international IEEE 754 standard.

JavaScript có sử dụng ngăn xếp hoặc đống không?

Heap: Nó được sử dụng để lưu trữ các đối tượng và chức năng trong JavaScript.Động cơ không phân bổ một lượng bộ nhớ cố định.Thay vào đó, nó phân bổ nhiều không gian hơn theo yêu cầu.... Quản lý bộ nhớ trong JavaScript ..