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
参考资料:
- ECMAScript https://262.ecma-international.org/
- Javascript https://www.w3schools.com/js/js_versions.asp
- Typescript https://www.typescriptlang.org/
- Dart https://dart.dev/
- Kotlin https://kotlinlang.org/
本文暂时没有评论,来添加一个吧(●'◡'●)