分享免费的编程资源和教程

网站首页 > 技术教程 正文

WEB:讲清楚Javascript、Typescript、ECMAscript

goqiw 2025-03-20 14:54:17 技术教程 4 ℃ 0 评论


Javascript在WEB的位置非常重要


1997年ECMA发布了ECMAscript第一版,此后一直活跃,目前还有2024的草案正在推进。Javascript的主流逐渐统一到这个规范下。


ECMAScript 2024



ECMAScript的历次变更


伴随WEB技术的广泛应用,Javascript从浏览器中用来制作动态页面的脚本语言,发展到今天,已经成为前端设计的必备语言,并在nodejs的帮助下进入服务端开发的领域。为了更加适合团队协作,进行大型项目的开发,一些以Javascript为目标语言的编译器陆续出现,如下表所示:


以Javascript为目标的编译语言

总结来说,ECMASCript是一个规范,Javascript是基于ECMAScript规范一个实现,在基于浏览器作为前端的应用中获得巨大成功;nodejs提供一个运行Javascript的新环境,可独立于浏览器运行,让Javascript有了与其他程序语言一样的地位,可以自由操作文件、访问网络、开启线程等。而Typescript之类的是新的语言,提供更强大的能力来生成Javascript,有利于简化工作,或者更便于团队协作,他们都提供了编译器,用来将对应语言生成Javascript。

Javascript

从数据类型、控制结构、循环、函数、对象、数组、运算符、输入输出可看到JavaScript的基本语法如下表。

Javascript的基本语法描述

在浏览器上工作时,其更主要的工作是操作DOM、结合CSS修改样式,并可以基于HTTP和Websocket与后台服务实现通讯。

在nodejs上工作时,因为nodejs的开放性,其能够非常容易的实现一个web服务程序。例如可以直接使用Json-server服务提供一个mock用来模拟后台服务,方便前端调试。

 const http = require('http');

   // 创建一个 HTTP 服务器
   const server = http.createServer((req, res) => {
       // 设置响应头
       res.writeHead(200, { 'Content-Type': 'text/plain' });

       // 根据请求的 URL 返回不同的响应
       if (req.url === '/') {
           res.end('Welcome to my web service!\n');
       } else if (req.url === '/about') {
           res.end('This is a simple web service created with Node.js.\n');
       } else {
           res.writeHead(404);
           res.end('404 Not Found\n');
       }
   });

   // 服务器监听在 3000 端口
   const PORT = 3000;
   server.listen(PORT, () => {
       console.log(`Server is running at http://localhost:${PORT}/`);
   });


TypeScript

Typescript是热度最高的一个将Javascript作为目标语言的编译语言。类型严格,让其能够在发布之前发现程序的错误。同时对类型、接口、并发进行了更清晰的定义。

Typescript

Typescript的语法介绍如下,一般typescript需要编译成为javascrtip,使用tsc可以对其进行编译。

# 编写tsconfig.json
{
  "compilerOptions": {
    "target": "es5",                   // 编译目标版本
    "module": "commonjs",              // 模块系统
    "outDir": "./",                    // 输出目录,设置为当前目录
    "rootDir": "./",                   // 输入目录,设置为当前目录
    "strict": true,                    // 开启严格模式
    "esModuleInterop": true,           // 允许默认导入非模块
    "skipLibCheck": true               // 跳过库文件检查
  },
  "include": [
    "**/*.ts"                          // 包含所有 TypeScript 文件
  ]
}

# 执行
tsc --watch


Typescript语法结构


总结

除了Typescript之外,Dart、Kotlin也可以用来生成Javascript,但是生态支持不如Typescript好。目前前端开发主流框架都支持了Typescript,未来ECMAScript会否也纳入Typescritp,估计也是肯定的。


Dart


kotlin


参考资料:

  1. ECMAScript https://262.ecma-international.org/
  2. Javascript https://www.w3schools.com/js/js_versions.asp
  3. Typescript https://www.typescriptlang.org/
  4. Dart https://dart.dev/
  5. Kotlin https://kotlinlang.org/

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表