返回
JavaScript基础面试问答
前端
2024-02-13 19:11:34
JavaScript 变量、数据类型、运算符、控制语句、函数、对象和数组
在 JavaScript 中,变量可以存储数据并供以后使用。它们可以是基本数据类型(例如数字、字符串、布尔值)或引用数据类型(例如对象、数组、函数)。变量的作用域决定了它们在程序中的哪些部分可以访问。
变量
定义变量
- 使用
let
或const
声明变量。 - 变量名必须由字母、数字或下划线组成,不能以数字开头。
let
变量可重新赋值,而const
变量为常量,不能重新赋值。
作用域
let
和const
声明的变量具有块级作用域,仅在声明它们的代码块内有效。var
声明的变量具有函数级作用域,在声明它们的函数内有效。
数据类型
基本数据类型
- undefined: 未初始化的变量
- null: 空值
- 布尔值:
true
或false
- 数字: 整数或浮点数
- 字符串: 一系列字符
- Symbol: 唯一且不可变的标识符
引用数据类型
- 对象: 键值对的集合
- 数组: 存储在索引位置处的元素的有序集合
- 函数: 可执行代码的块
确定数据类型
使用 typeof
运算符检查变量的数据类型。
运算符
JavaScript 提供了广泛的运算符,包括:
- 算术运算符: 加法 (+)、减法 (-)、乘法 (*)、除法 (/)、模数 (%)、指数 (**)
- 比较运算符: 等于 (==)、严格等于 (===)、不等于 (!=)
- 逻辑运算符: 与 (&&)、或 (||)、非 (!)
- 位运算符: 与 (&)、或 (|)、异或 (^)、非 (~)、左移 (<<)、右移 (>>)
- 赋值运算符: 赋值 (=)、加法赋值 (+=)、减法赋值 (-=)
控制语句
if 语句
- 根据条件执行代码块。
switch 语句
- 根据表达式值执行不同的代码块。
循环
- for 循环: 使用初始值、条件和步长重复执行代码块。
- while 循环: 只要条件为真就重复执行代码块。
- do-while 循环: 至少执行一次代码块,然后只要条件为真就重复执行。
函数
定义函数
- 使用
function
声明函数。 - 函数可以接收参数并返回一个值。
调用函数
- 使用函数名和参数调用函数。
对象
定义对象
- 使用大括号 (
{}
) 定义对象。 - 对象包含键值对。
访问对象属性
- 使用点运算符 (.) 或方括号运算符 ([]) 访问对象属性。
数组
定义数组
- 使用方括号 (
[]
) 定义数组。 - 数组可以存储任何数据类型。
访问数组元素
- 使用方括号运算符访问数组元素。
代码示例
// 变量
let name = "John";
const age = 30;
// 数据类型
console.log(typeof name); // "string"
console.log(typeof age); // "number"
// 运算符
let result = 10 + 20;
console.log(result); // 30
// 控制语句
if (age > 18) {
console.log("You are an adult.");
}
// 循环
for (let i = 0; i < 10; i++) {
console.log(i);
}
// 函数
function greet(name) {
return "Hello, " + name;
}
console.log(greet("John"));
// 对象
const person = {
name: "John",
age: 30,
greet: function() {
console.log("Hello, I am " + this.name);
}
};
person.greet();
// 数组
const numbers = [1, 2, 3, 4, 5];
console.log(numbers[2]); // 3
常见问题解答
-
什么是严格等于运算符 (===)?
严格等于运算符检查值和类型是否相等。 -
如何比较字符串?
使用严格等于运算符 (===) 或转换为数字并比较。 -
如何向数组添加元素?
使用push()
方法向数组末尾添加元素。 -
如何循环遍历对象?
使用for-in
循环或Object.keys()
和forEach()
方法。 -
什么是闭包?
闭包是带有访问外层作用域变量的内嵌函数。