javascript是什么_如何定义这门编程语言的核心特性

21次阅读

javaScript是动态类型、单线程、基于原型的脚本语言,支持函数式与面向对象编程,依托事件循环实现非阻塞异步,广泛应用于全及跨端开发。

javascript是什么_如何定义这门编程语言的核心特性

javascript 是一种轻量级、解释型、支持面向对象和函数式编程范式的动态脚本语言,最初为网页交互而设计,如今已广泛用于前端、后端(node.js)、移动端(react Native)、桌面端(electron)甚至物联网领域。

基于原型的面向对象

JavaScript 没有传统意义上的“类”(es6class 只是语法糖),对象直接通过原型(prototype)链继承行为。每个对象都有一个内部属性 [[Prototype]],指向它的原型对象,查找属性或方法时会沿原型链向上委托

  • Object.create() 显式创建基于某原型的新对象
  • 构造函数.prototype 属性决定其实例的原型
  • ES6 引入 class 语法,但底层仍是原型机制,不是真正的类继承

头等函数与闭包

函数在 JavaScript 中是一等公民:可以赋值给变量、作为参数传递、从函数中返回,还能捕获并记住其词法作用域——这就是闭包。闭包让函数即使在其定义环境销毁后,仍能访问外部变量。

  • 回调函数、事件处理器、模块封装都依赖闭包实现数据私有性
  • 避免在循环中直接使用 var 声明的循环变量传给异步函数(常见陷阱)
  • 立即执行函数表达式(IIFE)曾是模拟块级作用域的主要方式,现多被 let/const 替代

动态类型与运行时灵活性

JavaScript 是动态类型语言:变量无需声明类型,类型在运行时确定,且可随时改变。它支持鸭子类型(“如果它走起来像鸭子、叫起来像鸭子,那它就是鸭子”),关注行为而非声明。

立即学习Java免费学习笔记(深入)”;

  • typeofinstanceofArray.isArray()Object.prototype.toString.call() 辨别值的真实类型
  • 隐式类型转换(如 ==)易引发意外结果,推荐使用严格相等 ===
  • typescript 等工具在开发期补充静态类型检查,不改变 js 运行时本质

单线程 + 事件驱动 + 非阻塞 I/O

JavaScript 在宿主环境(如浏览器或 node.js)中以单线程运行,靠事件循环(Event Loop)协调同步任务、微任务(promise.then)、宏任务(setTimeout)的执行顺序,实现高并发的非阻塞体验。

  • 所有耗时操作(网络请求、文件读写、定时器)都以异步方式交由宿主处理,JS 主线程不等待
  • Promise 和 async/await 是处理异步逻辑的标准方式,本质仍是基于事件循环的语法糖
  • 长时间同步计算会阻塞渲染和响应,需用 Web Worker 或分片(time slicing)规避

基本上就这些。它不追求语法严谨或运行高效,而是强调适应性、表达力和与宿主环境的深度集成——这也是它二十多年来持续演进、历久弥新的核心原因。

text=ZqhQzanResources