使用框架会阻止我掌握JavaScript吗?

时间:2009-11-27 01:45:18

标签: javascript frameworks

如果我总是使用框架并且自己什么都不做,我将如何成为JavaScript的主人?

我问了一个关于JavaScript的问题,每个人都建议我使用框架(它不会向我展示JS的真正核心!)而不是手工编码。

  1. 在为自己发现JS时,您是否编写了自己的所谓框架代码?
  2. 你是否一直使用像jQuery这样的框架?
  3. 你现在可以认为自己是JS的主人吗?

13 个答案:

答案 0 :(得分:14)

是:框架往往会隐藏JavaScript的许多复杂部分。但问题是,当你知道如何有效地使用框架时,你会成为一个更糟糕的JavaScript编码器吗?当然不是。有效地使用任何编程语言的子集通常比使用语言的每个资产都要好得多。

No:框架往往会隐藏JavaScript的许多复杂部分。使用框架,在调试时查看其代码,理解框架使您成为JavaScript的真正的主人。框架通常会显示您从未想过自己的方法。看看代码。它经常被评论甚至记录,并成为一个主人。

所以:使用JavaScript框架使编码更容易,并在此过程中学习。

** PS:**回答你的上一个问题。自从Netscape早期出现以来,我就完成了JavaScript编程。是的,我们肯定制作了自己的本土框架和库。 Sarissa是我积极帮助开发的一个用于JavaScript的“框架”(或库)。但是,在用任何语言编写时,我们通常不会将经常使用的函数放在一起,最终可能演变成一个框架吗?

更新: 修复了一些可怕的输入错误,不要费心重读; - )

答案 1 :(得分:4)

这是一把双刃剑。如果您有足够的经验可以学习,那么您可以避免使用框架并手动完成所有工作。框架往往会提高您的工作效率,因为它会处理浏览器兼容性等所有细节。这实际上是关于所有抽象层次的论证。

我建议学习框架并花时间学习框架摘要的基本概念。

Joel has a very nice article about this

答案 2 :(得分:3)

  

在为自己发现JS时,您是否编写了自己的所谓框架代码?

即可。这是艰难的道路,但对个人教育非常有用。

  

你是否一直使用像jQuery这样的框架?

即可。但是当它真的必要时

  

你现在可以认为自己是JS的主人吗?

即可。有很多东西需要学习,特别是在不断发展的Web标准和浏览器的上下文中。


使用JavaScript框架的原因是简化任务,例如:

  • 跨浏览器支持
  • 使用浏览器的文档对象模型
  • 实施丰富的用户界面

所以在学习JavaScript的条款中框架是而不是阻止你成为JS gury。

但就真实世界而言,JS总是与DOM,CSS等一起使用,如果不了解它,你就不能成为现实世界的JS guru-dev。

所以你可以学习普通的JavaScript并使用框架,是的,是的,你可以。但这将脱离背景,几乎无用。

因此,您不仅需要学习JS作为语言,还需要学习Web的JS 框架阻止这样做。

总而言之:避免使用框架,除非你没有它就无法完成工作,或者努力在没有框架的情况下完成工作

关于努力。它包括跨浏览器支持。所以,例如,如果我需要实现一个将使用 AJAX 的页面,或者应该允许用户在页面上拖放项目,有我没办法手动(努力方法很高)。我会选择jQuery或其他东西。
只需选择正确的工作。没有工具也是一种工具。


增加: 主要问题是:

  

我将如何成为一名大师   如果我总是使用框架的JavaScript   并没有自己做任何事情?

您可以采取艰难的方式 - 开发您自己的框架并保持最新。您将面临所有可能的问题,并将被强制执行以了解所有隐藏的部分。您可能不希望重新实现jQuery,而是创建一个与业务相关的Framework。这样的示例可以是“ProductJS”:为开发人员提供架构,以管理您网站上的产品,评论它们,比较等等。

答案 3 :(得分:3)

我被撕裂,我开始在Netscape Navigator 4和Internet Explorer 5的时代编写javascript,回到浏览器标准合规的黑暗时代,早在jQuery或MooTools被设想之前。通常的做法是必须在(document.all) ? /* ie code */ : /* nn code */;中包装几乎每行代码,或者为每个浏览器维护单独的脚本。虽然非常令人沮丧,但我确实认为它让我成为了一个更好的程序员。

但新程序员可以使用更好的工具,他们应该使用它们。你仍然需要学习javascript,jQuery不会为你编写代码,但它会让你编写代码,而不是花费数小时来开发浏览器解决方法。

如果您有时间了解javascript dom方法和实验,那么更多知识永远不会受到伤害。它不像以前那么痛苦,大多数脚本,甚至是大型复杂的脚本,只需要一些小技巧就可以在所有现代浏览器中运行。我也认为了解jQuery究竟添加了什么很重要,这样你才能意识到这是一个jQuery方法,而不是javascript的一部分。只依靠图书馆永远存在并不是一件好事,因为有一天你会发现自己处于一个你无法使用它的位置,你不想像一只鹿一样茫然地盯着你的老板。车头灯说“你是什么意思我不能用jquery?”。

答案 4 :(得分:1)

是的,只要看看人们提出的与jQuery无关的所有jQuery问题。

还有很多,但很难找到。

答案 5 :(得分:1)

我认为Javascript语言之间存在混淆,这对于每个程序员而言都非常惊人且值得学习,而浏览器“对象模型”和css则是混乱的,错误的和丑陋的。功能风格的一个好的库(猜猜我的意思)鼓励你使用纯粹的Javascript,并保护你免受所有那些肮脏和无聊的浏览器的侵害。

答案 6 :(得分:1)

  

如果我总是使用框架并且自己什么都不做,我将如何成为JavaScript的主人?

如果除了使用框架之外什么也没做,那么我认为你不能成为一个“主”JavaScript编码器。另一方面,如果您研究框架如何实现某些功能并询问其实现原因和方式,那么您可以开始剥离作为JavaScript的洋葱。

  

我问了一个关于JavaScript的问题,每个人都建议我使用框架(它不会向我展示JS的真正核心!)而不是手工编码。

考虑到浏览器兼容性问题,一般来说,使用框架/库来处理复杂的部分可能更明智一些。为什么重新制造轮子?但是,如果您的目的是实际学习如何在没有框架的情况下做某事,那么最好在将来的问题中说明这一点。

  
      
  1. 在为自己发现JS时,您是否编写了自己的所谓框架代码?
  2.   

这可能是我做的第一件事。 JavaScript,当我第一次遇到它时,与我习以为常的差别很大,我想创建一个框架,使代码看起来更像Java / C#。然而,在这样做的过程中,我意识到我是相当愚蠢的,我发现我喜欢JavaScript处理很多东西的方式。这并不意味着我没有创建自己常用函数的工具集。

  
      
  1. 你是否一直使用像jQuery这样的框架?
  2.   

一开始没有,但我从那时起就开始使用它们了。当你有这么多时间完成一个项目并且截止日期即将结束时,使用库/框架会更容易/更聪明。我之前遇到过一些问题,如果我不知道JavaScript如何工作/为什么工作,我可能无法解决上述问题。

  
      
  1. 你现在可以认为自己是JS的主人吗?
  2.   

语言中,是的。浏览器中的语言,不一定。

答案 7 :(得分:0)

不,因为你需要知道JavaScript才能使用框架并且越来越多地使用JavaScript来帮助你掌握它。它们会阻止你掌握DOM。

答案 8 :(得分:0)

不,框架阻止你学习DOM,这不是javascript,而是学校委员会设计的语言中立API,并且在每个浏览器中都有不同之处。语言中立,我的意思是它也可以用于Java,VBscript和其他语言。

没有任何关于框架可以阻止你学习JS本身。实际上,通过让DOM远离你的方式,它们将使学习JS变得更加容易。

答案 9 :(得分:0)

Javascript,DOM等浏览器和API都有一些糟糕而乏味的特质。图书馆已经融合了一些更好的API,并且通常可以减轻您对浏览器嗅探等操作的需求。

你仍然会使用Javascript。

了解正在发生的事情以及为什么图书馆的某些方面会帮助您如此重要,这一点也很重要。你永远不知道什么时候你也没有机会使用库,所以理解如何做与DOM交互以及在没有库的情况下进行跨浏览器兼容的AJAX请求这一点非常重要。

答案 10 :(得分:0)

就个人而言,我认为像jQuery这样的东西可以将你的游戏作为一个JavaScript程序员提升,如果你把它看作是研究John Resig如何考虑设计和实现的机会。

他不引人注目的JavaScript风格值得效仿。

一定要使用jQuery。但也要读它,研究它,模仿它。

答案 11 :(得分:0)

  

我将如何成为一名大师   如果我总是使用框架的JavaScript   并没有自己做任何事情?

好吧,也许你可以成为框架的主人 - 你必须在这个过程中学习一些关于javascript的东西。

答案 12 :(得分:0)

这仅仅是我的意见,但我建议同时使用它们!这是一个指南和原因:

对于个人项目(例如课堂作业,修修补补或要添加到您的JS组合中的内容),使用纯JavaScript编程

优秀的开发人员(意见)通过实践来学习 - 而不只是在工作中。他们通过在远离工作或上课时继续编程来提高他们的语言特定技能。这是用纯粹的或“vanilla”JavaScript测试内容的最佳时机。你可以打破一切,没关系。您的代码可能不是100%跨浏览器,但至少您的首席工程师不会为您修补IE8及更早版本的代码:)

对于您工作中的生产代码,如果您仍然是一名崭露头角的JavaScript工程师,那么我建议您使用jQuery

为什么呢?好的,让我们快速备份吧。 jQuery可能不是每个应用程序用例的最佳工具。您的用户群可能主要位于移动设备或世界上连接速度较慢的区域,因此单页应用程序框架可能是更好的选择。这真的取决于。但是很有可能,如果你是JavaScript的新手,那么你可能还没有使用JS应用程序框架进行编码。

所以,说到这一点,我建议使用jQuery,因为它有很长的JavaScript用于网络的历史,是广泛的跨浏览器,使用一个非常简单的选择和做,重用你的CSS选择器知识,你会在你的职业生涯中一遍又一遍地使用它。最重要的是跨浏览器支持。编程很简单,孩子们可以拿起它。然而,开发一个JavaScript产品,在几种不同的JavaScript实现(浏览器)和不同的屏幕类型中进行解释,具有挑战性 - 会出现错误。利用jQuery会让你的老板不会向你发送许多bug修复。以下是关于此主题的精彩内容:Things You Should Never Do, Part I by Joel Spolsky

您的问题的答案:

  

在为自己发现JS时,您是否编写了自己的所谓框架代码?

没有......?也许...?!我不记得老实说。做很多自己的项目,你可能也不需要记住。

  

你是否一直使用像jQuery这样的框架?

一路走来?没有。很多方面?令人尴尬的是,但你在使用它们时仍然在掌握技能。

  

你现在可以认为自己是JS的主人吗?

即使有3年的JS开发,我仍然拒绝。总是。保持。学习!随着今天在移动网络,服务器,数据库甚至本机移动应用程序开发中使用JavaScript(请参阅React Native),越来越多的人需要学习。当问到这个问题时,2009年的JS与2015年的JS(我打字)非常不同,而且它还在继续发展。但如果你继续修修补补,总有一天你会很棒。

总结:同时做到这两点!最重要的是,花费你的空闲时间编程与纯JavaScript,直到你是一个JavaScript jedi。祝好运。

其他有趣(ny)读取: The Cool Front-End Developer by Matt ZabriskieThe boring front-end developer by Adam Silver