Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Có thể khai báo biến JavaScript với kiểu dữ liệu cụ thể không?


Không. Biến JavaScript không có kiểu (untyped). Giá trị (values) mới có kiểu.

Khai báo biến JS

var rank = 5;
var name = "John";

Bạn có thể gán lại kiểu khác:

var rank = 5;
rank = 'first'; // OK - JS dynamic typing
document.write(rank); // "first"

Dynamic Typing (Kiểu động)

JS là ngôn ngữ dynamically typed: kiểu của biến xác định bởi giá trị tại runtime, không phải khai báo compile-time. Điều này linh hoạt nhưng dễ gây bug runtime.

TypeScript - Giải pháp Static Typing

Nếu cần kiểu tĩnh (static typing), dùng TypeScript (superset của JS):

let rank: number = 5;
let name: string = "John";
// rank = "first"; // ❌ Compile error: Type 'string' not assignable to 'number'

// Union types
let id: number | string = 101;
id = "ABC-101"; // OK

TypeScript compile về JS thuần, chạy mọi nơi JS chạy.

Kiểm tra kiểu tại Runtime (Vanilla JS)

typeof 42;           // "number"
typeof "hello";      // "string"
typeof true;         // "boolean"
typeof undefined;    // "undefined"
typeof null;         // "object" (bug nổi tiếng JS)
typeof {};           // "object"
typeof [];           // "object" (dùng Array.isArray())
typeof function(){}; // "function"
typeof Symbol();     // "symbol"
typeof 123n;         // "bigint" (ES2020)

Kết luận

Vanilla JS: không khai báo kiểu cho biến. Kiểu do giá trị quyết định. Muốn static typing → dùng TypeScript.