网站首页 > java教程 正文
为什么nodejs写的JavaScript不能直接在浏览器里面执行,这就和JavaScript起源有关系了。
JavaScript起源 → ECMAScript标准 → NodeJS语法
一 现代浏览器完全兼容 ECMAScript 5.1
截至2012年,所有浏览器都完整的支持ECMAScript 5.1,旧版本的浏览器至少支持ECMAScript 3标准。注意es5 这个重要版本
二 JavaScript的起源
(1)1995年12月之前,Netscape公司(Brendan Eich设计)开发了Mocha脚本语言用在Navigator浏览器上,后来改名为LiveScript。其语法风格与Self及Scheme较为接近。
(2)1995年12月,Netscape管理层出于营销考虑与Sun合作,在LiveScript的基础上吸收Java因素,联合发表了JavaScript。所以,JavaScript与Java没多大关系,仅仅看起来像JAVA,Netscape的初衷是为了蹭Java的热度。微软同时期也推出了JScript来迎战JavaScript的脚本语言。
(3)1996年11月,Netscape公司将JavaScript提交给ECMA进行标准化。
(4)1997年6月,ECMA-262标准的第一个版本ECMAScript 1推出。并于1998年4月被ISO/IEC吸收,批准为ISO/IEC 16262第一版;此后ECMAScript标准会被ISO/IEC直接吸收称为标准,只是版本不同。
三 ECMAScript版本历史,重要的 es6版本
1997年6月,ECMAScript 1.0版发布。
1998年6月,ECMAScript 2.0版发布。
1999年12月,ECMAScript 3.0版发布,
2007年10月,ECMAScript 4.0版准备发布,事实上没有通过,被废弃。
2009年12月,ECMAScript 5.0版发布。
2011年6月,ECMAscript 5.1版(es5)发布,并且成为ISO国际标准(ISO/IEC 16262:2011)。
2015年6月,ECMAScript 6版(es6)发布,即ECMAScript 2015。包括ECMA-262第7版、ECMA-402第2版(之后ECMA-402几乎与ECMA-262同步更新,只是版本号不同)
2017年6月,ECMAScript 8.0。
2018年6月,ECMAScript 9.0。
2019年6月,ECMAScript 10.0
2020年6月,ECMAScript 11.0
2021年6月,ECMAScript 12.0
2022年6月,ECMAScript 13.0
2023年6月,ECMAScript 14.0
四 NodeJS语法
由于es5出现于2011年,且相对于es3升级不大,而node.js创始于2009,所以现在的node.js应该是支持es5全部特性的。各处都难以查到这个问题,似乎更说明了NodeJS支持es5全部特性。
NodeJS V8以上直到2023年的V21,对es6的特性都不是全部支持的,而是99%
NodeJS中因es5和es6存在两种模块:CJS(CommonJS )和ESM,两种模块不兼容。
五 也就是说现代浏览器全部支持 5 这个版本,而6这个版本不是全部浏览器都支持
这个原因也就导致了运行在浏览器的web应用的JavaScript只能完全识别 5版本的语法
因此nodejs写的JavaScript只能通过工具转换成5的语法。其实这个问题的本质就是JavaScript语言稀烂。
即便是typescript的出现也依旧是为了解决JavaScript这个工具的破问题,但是这不是吹嘘前端进步了,模块化的的理由。实际上正是由于JavaScript的弊端太多导致vue3推倒使用typescript(一个JavaScript超集)来实现的原因。
猜你喜欢
- 2024-10-03 C、C++、Java、JavaScript、PHP、Python分别用来开发什么?
- 2024-10-03 Python 和 JavaScript 的区别(python与js的区别)
- 2024-10-03 JavaScript简介:从概念、特点、组成和用法全面带你快速了解JS
- 2024-10-03 东方标准|Web和Java的区别,如何选择这两个专业
- 2024-10-03 程序员新神器出世!Java迅速转为JavaScript!
- 2024-10-03 JS和C#/JAVA的多线程,究竟有什么不一样?
- 2024-10-03 JavaScript 简史(javascript介绍)
- 2024-10-03 Web前端:JavaScript最强总结,最全面的零基础入门教程
- 2024-10-03 尝试javascript取代java之初体验(javascript 现代)
- 2024-10-03 Java 能抵挡住 JavaScript 的进攻吗?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)