变量和数据类型

在编程中,变量是存储数据的容器,而数据类型则定义了这些数据的形式和操作。理解变量和数据类型是学习任何编程语言的基础,JavaScript也不例外。

1. 变量

变量是用于存储数据的标识符。在JavaScript中,变量可以通过var、let和const关键字来声明。

1.1 声明变量

  • var: 这是JavaScript中最早的变量声明方式。它具有函数作用域,意味着变量在函数内部声明时,其作用域仅限于该函数。

    var name = "Alice";
    console.log(name); // 输出: Alice
    
  • let: 这是ES6引入的变量声明方式。它具有块级作用域,意味着变量在块(如if语句、for循环等)内部声明时,其作用域仅限于该块。

    let age = 25;
    console.log(age); // 输出: 25
    
  • const: 这也是ES6引入的变量声明方式。它用于声明常量,一旦赋值就不能再改变。它同样具有块级作用域。

    const pi = 3.14159;
    console.log(pi); // 输出: 3.14159
    

1.2 变量的命名规则

  • 变量名必须以字母、下划线(_)或美元符号($)开头。
  • 变量名可以包含字母、数字、下划线和美元符号。
  • 变量名区分大小写。
  • 变量名不能是JavaScript的关键字或保留字。

2. 数据类型

JavaScript是一种动态类型语言,这意味着变量的数据类型在运行时可以改变。JavaScript有以下几种基本数据类型:

2.1 基本数据类型

  • 字符串(String): 用于表示文本数据。

    let greeting = "Hello, World!";
    console.log(greeting); // 输出: Hello, World!
    
  • 数字(Number): 用于表示数值数据,包括整数和浮点数。

    let number = 42;
    console.log(number); // 输出: 42
    
  • 布尔值(Boolean): 用于表示真或假。

    let isTrue = true;
    console.log(isTrue); // 输出: true
    
  • 未定义(Undefined): 表示变量已声明但未赋值。

    let undefinedVar;
    console.log(undefinedVar); // 输出: undefined
    
  • 空值(Null): 表示变量没有值。

    let nullVar = null;
    console.log(nullVar); // 输出: null
    
  • 符号(Symbol): 这是ES6引入的一种新的数据类型,用于创建唯一的标识符。

    let sym = Symbol("description");
    console.log(sym); // 输出: Symbol(description)
    

2.2 复杂数据类型

  • 对象(Object): 用于存储键值对集合。

    let person = {
      name: "Alice",
      age: 25
    };
    console.log(person.name); // 输出: Alice
    
  • 数组(Array): 用于存储有序的值集合。

    let numbers = [1, 2, 3, 4];
    console.log(numbers[0]); // 输出: 1
    

3. 类型转换

JavaScript允许在不同数据类型之间进行转换。

3.1 隐式类型转换

JavaScript会自动进行类型转换,例如在算术运算中。

let num = "42";
console.log(num + 1); // 输出: 421 (字符串拼接)
console.log(num - 1); // 输出: 41 (隐式转换为数字)

3.2 显式类型转换

你可以使用内置函数进行显式类型转换。

  • Number(): 将其他类型转换为数字。

    let str = "42";
    let num = Number(str);
    console.log(num); // 输出: 42
    
  • String(): 将其他类型转换为字符串。

    let num = 42;
    let str = String(num);
    console.log(str); // 输出: "42"
    
  • Boolean(): 将其他类型转换为布尔值。

    let num = 0;
    let bool = Boolean(num);
    console.log(bool); // 输出: false
    

4. 实践练习

练习1: 变量声明与赋值

  1. 声明一个名为firstName的变量,并赋值为你的名字。
  2. 声明一个名为age的变量,并赋值为你的年龄。
  3. 使用console.log输出这两个变量。

练习2: 数据类型转换

  1. 声明一个字符串变量strNum,并赋值为"123"。
  2. 使用Number()函数将strNum转换为数字。
  3. 使用console.log输出转换后的结果。

练习3: 复杂数据类型

  1. 声明一个对象person,包含name和age两个属性。
  2. 声明一个数组hobbies,包含你喜欢的三项活动。
  3. 使用console.log输出person对象的name属性和hobbies数组的第一个元素。

通过这些练习,你将更好地理解JavaScript中的变量和数据类型,为后续的学习打下坚实的基础。