4 JavaScript 变量的定义与声明

4 JavaScript 变量的定义与声明

在 JavaScript 中,变量的定义与声明是非常基础但重要的概念。它们用于存储程序中的数据,以便后续使用。我们将通过具体的案例和代码来详细介绍这部分内容。

变量的声明方式

JavaScript 提供了三种方式来声明变量:varletconst

1. var 声明

使用 var 关键字可以声明一个变量,它是 JavaScript 最早的变量声明方式。var 声明的变量可以在函数或全局范围内使用。

示例

1
2
3
4
5
6
7
8
9
10
var name = '小白';
console.log(name); // 输出: 小白

function test() {
var age = 18;
console.log(age); // 输出: 18
}

test();
// console.log(age); // 这里会报错,因为 age 在 test() 函数外不可用

2. let 声明

let 关键字是在 ES6 中引入的,它用来声明块作用域的变量。与 var 不同的是,let 声明的变量只能在其定义的代码块内有效。

示例

1
2
3
4
5
6
let count = 5;
if (true) {
let count = 10;
console.log(count); // 输出: 10
}
console.log(count); // 输出: 5

3. const 声明

const 关键字用于声明一个常量。一旦被赋值,其值就不能被更改。但需要注意的是,const 声明的对象或数组,内部属性是可以更改的。

示例

1
2
3
4
5
6
7
8
9
10
const PI = 3.14;
console.log(PI); // 输出: 3.14
// PI = 3.15; // 这里会报错,因为不能重新赋值给常量

const person = {
name: '小白',
age: 20
};
person.age = 21; // 这是可以的,因为我们改变的是对象的属性
console.log(person.age); // 输出: 21

变量的作用域

变量的作用域决定了变量在代码中的可访问性。var 声明的变量具有函数作用域,而 letconst 声明的变量具有块作用域。

示例对比

1
2
3
4
5
6
7
8
9
10
function example() {
if (true) {
var a = 'Hello';
let b = 'World';
}
console.log(a); // 输出: Hello
// console.log(b); // 这里会报错,因为 b 只在 if 块中有效
}

example();

小结

在 JavaScript 中,正确地声明和使用变量是编程的基础。我们可以使用 varletconst 来声明变量,它们各自有不同的特性和作用域,适用场景不同。理解这些概念能帮助我们编写出更高效和可维护的代码。

5 JavaScript 基本数据类型

5 JavaScript 基本数据类型

JavaScript 中的数据类型可以分为两大类:基本数据类型引用数据类型。在本节中,我们将重点讨论基本数据类型,包括 StringNumberBooleanUndefinedNullSymbol

1. 字符串 (String)

String 是一系列字符的集合,用于表示文本。你可以使用单引号、双引号或反引号来创建字符串。

1
2
3
4
5
6
let name = 'Alice';
let greeting = "Hello, " + name + "!"; // 使用字符串拼接
let template = `Welcome, ${name}`; // 使用模板字符串

console.log(greeting); // Hello, Alice!
console.log(template); // Welcome, Alice

字符串方法

  1. length属性:
1
console.log(name.length); // 5
  1. toUpperCase()toLowerCase()方法:
1
2
console.log(name.toUpperCase()); // ALICE
console.log(name.toLowerCase()); // alice

2. 数字 (Number)

Number 用于表示整数和浮点数。所有数字都是以 64-bit 浮点格式存储。

1
2
3
4
5
let age = 30; // 整数
let height = 1.75; // 浮点数

console.log(age); // 30
console.log(height); // 1.75

数字方法

  1. 计算最大值和最小值:
1
2
console.log(Number.MAX_VALUE); // 最大值
console.log(Number.MIN_VALUE); // 最小值
  1. 数学运算:
1
2
let sum = age + height;
console.log(sum); // 31.75

3. 布尔值 (Boolean)

Boolean 只有两个值:truefalse,通常用于条件判断。

1
2
3
4
5
6
7
8
let isStudent = true;
let hasGraduated = false;

if (isStudent) {
console.log("This person is a student.");
} else {
console.log("This person is not a student.");
}

4. 未定义 (Undefined)

当一个变量被声明但未赋值时,它会被赋予 undefined 值。

1
2
3
4
5
let x;
console.log(x); // undefined

let y = null; // null是一个特殊的值
console.log(y); // null

5. 空值 (Null)

Null 是一个特殊的值,表示“无值”或“空”。通常用于表示一个变量被故意设置为空。

1
2
3
4
let obj = null; // 明确指示对象为空
if (obj === null) {
console.log("The object is null.");
}

6. 符号 (Symbol)

Symbol 是一种新的原始数据类型,表示唯一的标识符。它通常用于对象属性的唯一性。

1
2
3
4
5
6
const uniqueID = Symbol('id');
const user = {
[uniqueID]: 12345,
};

console.log(user[uniqueID]); // 12345

结论

上述就是 JavaScript 的基本数据类型。通过了解和使用这些数据类型,您可以在编程中创建更为复杂的数据结构和逻辑处理。在实际编码中,合理选择合适的数据类型将提高代码的质量和可读性。

6 JavaScript 复杂数据类型

6 JavaScript 复杂数据类型

在 JavaScript 中,复杂数据类型主要包含 对象数组。这两个数据类型非常强大且灵活,能够满足日常开发中对数据组织和处理的各种需求。

对象

对象是一种复合数据类型,允许我们将数据和功能(方法)组织在一起。对象的每个数据项被称为属性,属性由键(字符串类型)和值组成。

创建对象

我们可以使用对象字面量、构造函数或 Object.create 方法来创建对象。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 对象字面量
const person = {
name: "Alice",
age: 30,
greet: function() {
console.log(`Hello, my name is ${this.name}`);
}
};

// 使用构造函数
function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function() {
console.log(`Hello, my name is ${this.name}`);
};
}

const person2 = new Person("Bob", 25);

// 使用 Object.create
const person3 = Object.create(person);
person3.name = "Charlie";

访问和修改对象属性

我们可以通过点符号或方括号语法访问和修改对象的属性。

1
2
3
4
5
6
7
8
console.log(person.name); // 输出: Alice
person.age = 31;
console.log(person.age); // 输出: 31

// 使用方括号
console.log(person["name"]); // 输出: Alice
person["age"] = 32;
console.log(person["age"]); // 输出: 32

遍历对象

可以使用 for...in 循环来遍历对象的属性。

1
2
3
for (let key in person) {
console.log(`${key}: ${person[key]}`);
}

数组

数组是一个特殊类型的对象,用于存储有序的数据集合。数组中的每个元素都有一个索引,索引从 0 开始。

创建数组

可以使用数组字面量或 Array 构造函数来创建数组。

1
2
3
4
5
// 数组字面量
const fruits = ["apple", "banana", "orange"];

// 使用 Array 构造函数
const numbers = new Array(1, 2, 3, 4, 5);

访问和修改数组元素

数组的元素可以通过索引访问和修改。

1
2
3
console.log(fruits[0]); // 输出: apple
fruits[1] = "strawberry";
console.log(fruits[1]); // 输出: strawberry

数组方法

JavaScript 提供了许多有用的数组方法。以下是一些常用的方法:

  • push(): 在数组末尾添加一个或多个元素。
  • pop(): 删除数组末尾的元素并返回该元素。
  • shift(): 删除数组开头的元素并返回该元素。
  • unshift(): 在数组开头添加一个或多个元素。
  • map(): 创建一个新数组,包含对原始数组元素调用给定函数后的结果。

示例代码:

1
2
3
4
5
fruits.push("grape");
console.log(fruits); // 输出: ["apple", "strawberry", "orange", "grape"]

const doubled = numbers.map(num => num * 2);
console.log(doubled); // 输出: [2, 4, 6, 8, 10]

总结

在 JavaScript 中,掌握 对象数组 的使用对于构建复杂的应用程序至关重要。通过灵活的对象和数组操作,我们可以有效地管理和处理数据,提升我们的开发效率。务必多尝试不同的案例,以加深对复杂数据类型的理解!