作为一个新兴的软件工程师,什么是值得时间投资的Javascript?我感兴趣的是对语言、技术、软件工程等的更深层次的理解,而不是仅仅使用语言。
我非常喜欢JavaScript的原型模型,并且非常乐意实现对象继承、闭包等,并认为自己是一个中级到高级的用户。然而,还有很多我还不知道的,包括承诺构造函数是如何工作的,生成器/迭代器可能还有更多。我还意识到了如何在Javascript中实现功能模式,这是我对未来感到满意的事情。(看起来您很难在函数式编码中使用基于类的语法)。
但是Javascript作为一种原型语言正在被ES6/Typescript/等等所掩盖。这些语法糖实现似乎比Javascript本身更普遍。
我正在寻找比我更有经验的开发人员的意见,在开发一个新的应用程序时,我将开始选择一个新的(可能已经过时的)技能,或者开发一种新的、更现代的技能。
我的选择是:
发布于 2016-11-01 22:40:38
如果您说的是一个学习练习,那么我认为从长远来看,完全了解Javascript的原型模型是如何在幕后工作的是非常有用的,最好的方法是在没有ES6语法糖的情况下,通过一堆构建对象层次结构的练习。如果您可以使用普通原型进行子类和混合,并且完全了解这些组合对象是如何构建的,并使用普通的ES5 Javascript工作,那么您将非常了解原型系统的核心部分是如何工作的。
一旦您有了这种理解,那么就可以使用ES6类语法来表示您想要的结构了,因为读写非常简单。但是,您是正确的,新语法隐藏了大量的实际实现,这也将掩盖它在幕后的真正工作方式。所以,我建议学习如何在没有新语法糖的情况下用老式的方法来做,然后当您使用ES6语法实际编写代码时,您将更好地了解它实际上在做什么。
新的ES6语法仍然停留在原型模型之上,因此不存在任何一个/或。如果您不首先学习原型模型,那么您将无法真正理解ES6类语法实际上在做什么。然后,当您想要调试一些复杂的东西,或者想要做一些没有新语法的事情(例如构建一个复合对象)时,您将无法真正理解它是如何在下面工作的。我会投票赞成先学习基本的原型模型,然后在完成之后,使用新的语法作为表达所需结构的更干净的方法。
我的选择是:深入研究Javascript原型模型。
是的,先做这个。
实现(并学习)新的基于ES6类的语法。
然后,在完成第一步之后,使用新的语法编写您的生产代码,但要充分理解它在幕后的实际操作。
作为一个很好的小测试练习,用ES6语法声明两个单独的类。每个子类。然后,创建一个新的混合对象,它是两个子类对象的混合体。如果您可以这样做,那么您可能了解ES6语法实际上是如何使用原型的。
https://softwareengineering.stackexchange.com/questions/335127
复制相似问题