关于JavaScript的最大误解是什么?
吨他最大的神话是,JavaScript是特殊还是在灵活性,表现力方面独一无二的,因为功能:
- 动态打字
- Lambdas
- 对象原型
- 异步编程
但猜猜怎么了? 这根本不是唯一的!
Python,Ruby,Perl,PHP,Clojure和Smalltalk都是动态类型的。
Java,Python,C ++,C#,Ruby,Perl,PHP,Scala,Clojure和Smalltalk均支持lambda。
Maple,Self,Lua,REBOL和Io都有对象原型。 有趣的是,除了JavaScript之外,没有其他人对原型感到讨厌。 基于类的OOP一直是对象空间中最流行,使用最广泛的技术。
从最早的计算时代开始,异步编程就已经存在。 它几乎可以用任何语言完成,包括Java,Python,C#和Smalltalk。 有什么大不了的???
例如,您可以使用JavaScript进行的任何操作,例如我可以在Smalltalk中进行的操作。 如果灵活性和表现力是使用JavaScript的主要原因,那么您为此付出了高昂的代价,因为JavaScript也是一种可执行语言 。
吨他第二大神话是,你必须使用JavaScript编写的网页浏览器应用程序,因为JavaScript是唯一的语言,原产于网络浏览器。 尽管从技术上讲这是正确的,但如果您愿意接受转译的语言,则可以选择其他方法。 这意味着将JavaScript视为网络的一种“汇编语言”。
这与使用C或Go之类的语言编译成x86汇编语言没有什么不同。
这是转译的替代品的简短列表:
- Bridge.NET(C#)
- Cheerp(C ++)
- ClojureScript(Clojure)
- 镖
- 榆树
- GopherJS(开始)
- 哈克斯
- JSweet(Java)
- 科特林
- 蛋白石(红宝石)
- PharoJS(Pharo)
- Scala.js(Scala)
- 转加密(Python)
您有选择的聚宝盆,很尴尬的财富。
吨他第三大误区是认为JavaScript是简单易学。 当然,如果将自己限制为一小部分语言,那么任何编程语言都易于学习。 这也适用于C ++,C#,Scala和Swift。
但是,JavaScript是一种巨大的语言,具有许多黑角和怪异的边缘情况。 不相信我吗? 看看ECMAScript2017。其语言规范超过885页! 这正在进入托尔斯泰的战争与和平领域。
期望将来的ECMAScript版本会更大。
如果您认为JavaScript易于学习,那么您将感到惊讶。
吨他第四大神话是,JavaScript是你可以使用两个前端和后端的唯一语言。 如果您愿意接受转译的语言,则不会。
在上面的列表中,唯一不能用于前端和后端的语言是CoffeeScript和Elm。
吨他第五大神话是,JavaScript是到处被使用。 但是,JavaScript 主要用于前端Web开发。 它在Node的牵引服务器端,Electron的台式机端,React Native(以及Cordova / PhoneGap)的移动端。 但是在其他任何地方,JavaScript几乎都无法使用。
对于像Python和Ruby这样的语言,实际上也是如此。 两者都很通用,但是它们分别以数据科学/机器学习和Rails最为人所知。 Python在网络领域也表现出色。 但是Python几乎不用于台式机和移动设备。
前端,Node,Electron和React Native是否无处不在 ? 谈论妄想!
From: https://hackernoon.com/what-are-the-biggest-myths-about-javascript-49a0660cd6ec