JavaScript 变量和数据类型
变量声明
在 JavaScript 中,我们可以使用 var
、let
和 const
来声明变量:
// var - 函数作用域
var name = 'John';
// let - 块级作用域
let age = 25;
// const - 常量,不可重新赋值
const PI = 3.14159;
var 和 let 的区别
-
作用域
var
是函数作用域let
是块级作用域
-
变量提升
var
存在变量提升let
不存在变量提升
数据类型
JavaScript 有以下基本数据类型:
-
Number
let num = 42; let float = 3.14;
-
String
let str = 'Hello'; let str2 = "World"; let template = `Template literal: ${str}`;
-
Boolean
let isTrue = true; let isFalse = false;
-
Null & Undefined
let empty = null; let notDefined = undefined;
-
Symbol (ES6)
const symbol = Symbol('description');
-
BigInt (ES2020)
const bigInt = 9007199254740991n;
引用类型
-
Object
const person = { name: 'John', age: 30 };
-
Array
const numbers = [1, 2, 3, 4, 5];
类型检查
使用 typeof
操作符:
typeof 42; // "number"
typeof "Hello"; // "string"
typeof true; // "boolean"
typeof undefined; // "undefined"
typeof null; // "object" (这是一个历史遗留的bug)
typeof {}; // "object"
typeof []; // "object"
typeof Symbol(); // "symbol"
面试要点
- 说明
var
、let
和const
的区别 - 解释变量提升(Hoisting)
- 说明
null
和undefined
的区别 - 解释为什么
typeof null
返回 "object" - 说明基本类型和引用类型的区别