JS 特性 有哪些

    2026-01-11 11:23:09

    JavaScript 的核心特性可以归纳为以下几个方面,这些特性使其成为一门灵活、强大且广泛应用的编程语言:

    一、核心特性

    解释型语言

    无需编译,直接由浏览器或 Node.js 执行。

    执行速度快(现代引擎如 V8 优化极佳)。

    动态类型

    变量类型在运行时确定,无需声明类型。

    javascript

    运行

    let x = 1; // 数字

    x = "hello"; // 字符串

    多范式支持

    面向对象:基于原型(prototype)的继承。

    函数式:函数是一等公民,支持闭包、高阶函数。

    命令式:直接编写执行步骤。

    事件驱动

    浏览器中通过事件循环(Event Loop)处理异步操作。

    javascript

    运行

    document.getElementById("btn").addEventListener("click", () => {

    console.log("按钮点击");

    });

    二、语法与结构特性

    弱类型

    类型转换灵活,可能导致意外结果:

    javascript

    运行

    console.log(1 + "2"); // "12"

    console.log("5" - 3); // 2

    基于原型的继承

    没有类(ES6 引入 class 语法糖,本质还是原型)。

    javascript

    运行

    function Person(name) {

    this.name = name;

    }

    Person.prototype.sayHello = function() {

    console.log(Hello, ${this.name});

    };

    闭包

    函数可以访问外部作用域的变量,即使外部函数已执行完毕。

    javascript

    运行

    function outer() {

    const x = 10;

    return function inner() {

    console.log(x);

    };

    }

    const fn = outer();

    fn(); // 10

    异步编程

    回调函数:早期异步模式。

    Promise:解决回调地狱。

    async/await:更优雅的异步语法。

    javascript

    运行

    async function fetchData() {

    const response = await fetch("https://api.example.com/data");

    const data = await response.json();

    return data;

    }

    三、功能性特性

    高阶函数

    函数可以作为参数或返回值:

    javascript

    运行

    const arr = [1, 2, 3];

    const doubled = arr.map(x => x * 2); // [2, 4, 6]

    箭头函数

    简洁的函数语法,没有自己的 this:

    javascript

    运行

    const add = (a, b) => a + b;

    解构赋值

    方便地提取数组或对象的数据:

    javascript

    运行

    const [a, b] = [1, 2];

    const { name, age } = { name: "Tom", age: 20 };

    展开 / 剩余运算符

    展开数组或对象:

    javascript

    运行

    const arr1 = [1, 2];

    const arr2 = [...arr1, 3, 4]; // [1, 2, 3, 4]

    剩余参数:

    javascript

    运行

    function sum(...args) {

    return args.reduce((a, b) => a + b, 0);

    }

    模板字符串

    支持多行字符串和变量插值:

    javascript

    运行

    const name = "Alice";

    console.log(Hello, ${name}!);

    四、浏览器相关特性

    DOM 操作

    直接操作 HTML 文档结构:

    javascript

    运行

    document.getElementById("app").innerHTML = "

    Hello";

    BOM

    浏览器对象模型,如 window、location、history。

    事件处理

    支持冒泡、捕获、委托等事件机制。

    五、ES6+ 新增特性

    类(Class):语法糖,简化原型继承。

    模块(Module):import/export。

    let/const:块级作用域变量。

    Set/Map:新的数据结构。

    Promise、async/await:异步编程改进。

    Generator:迭代器生成器。

    六、其他特点

    跨平台:可在浏览器、Node.js、移动端(React Native)运行。

    单线程:避免多线程同步问题,通过事件循环处理并发。

    垃圾回收:自动管理内存,无需手动释放。

    总结

    JavaScript 的特性使其适用于多种场景:

    前端开发:交互、DOM 操作。

    后端开发:Node.js 服务器。

    移动开发:React Native、Ionic。

    桌面应用:Electron。