Skip to content

JavaScript的“动态性”

变量类型的动态性

  • 变量声明时无需指定类型:在 JS 里,声明变量时不用明确指定其数据类型。使用varletconst关键字就能声明变量,变量能在运行时被赋予任意类型的值。
javascript
// 声明一个变量并赋值为数字
let num = 10;
console.log(typeof num); // 输出: "number"

// 把这个变量的值改为字符串
num = "hello";
console.log(typeof num); // 输出: "string"
  • 函数参数和返回值类型的灵活性:函数参数和返回值的类型也无需预先定义,同一个函数可以接受不同类型的参数,并且返回不同类型的值。
javascript
function add(a, b) {
    return a + b;
}

// 传入数字
console.log(add(1, 2)); // 输出: 3

// 传入字符串
console.log(add("Hello", " World")); // 输出: "Hello World"

类型检查的动态性

  • 运行时类型检查:JS 在运行时才会检查变量的类型,而非在编译阶段。这意味着代码在执行过程中,变量类型可能发生改变,程序会根据当前变量的实际类型进行相应操作。
javascript
function printType(value) {
    console.log(typeof value);
}

let data = 42;
printType(data); // 输出: "number"

data = [1, 2, 3];
printType(data); // 输出: "object"

总结

动态类型为 JavaScript 带来了很高的灵活性和开发效率,使得开发者能更快速地编写代码。但它也可能导致一些潜在的问题,比如在类型不匹配时可能会引发运行时错误,因此在编写代码时需要更加注意类型的处理(使用类型检查、引用TS类型检查、必要的异常处理)。

Released under the MIT License.