每个JavaScript程序员应该知道什么?

每个JavaScript程序员都应该具备能够说“我知道JavaScript”的东西吗?



繁星coding
浏览 531回答 3
3回答

吃鸡游戏

不是jQuery。不是YUI。不是(等)框架可能很有用,但是它们经常隐藏一些关于JavaScript和DOM实际工作方式的丑陋细节。如果您的目标是能够说“我知道JavaScript”,那么在框架上投入大量时间是相反的。以下是一些JavaScript语言功能,您应该了解这些功能在做什么并且不会被吸引住,但是对于许多人来说,它们并不是立即显而易见的:那object.prop和object['prop']是同一件事(所以请您停止使用eval,谢谢);对象属性始终是字符串(即使是数组);什么for...... in是(和什么不是)。嗅探财产;什么undefined是(以及为什么闻到);为什么看似鲜为人知的in操作员是有益的并且不同于typeof/ undefined检查;hasOwnProperty; 目的delete。该Number数据类型是一个真正的浮动; 使用浮点数与语言无关的困难;避免parseInt八进制陷阱。嵌套函数作用域;在var您要避免意外的全局范围内使用的必要性;范围如何用于闭包;在闭合回路问题。全局变量和window属性如何碰撞;全局变量和文档元素如何在IE中不应该冲突,而应该如何冲突?也必须var在全球范围内使用以避免这种情况。function语句如何在定义之前的代码之前“ 提升 ”定义;函数语句和函数表达式之间的区别;为什么不应该使用命名函数表达式。构造函数的功能,prototype属性和new运算符的工作方式;利用此方法创建您实际想要的普通类/子类/实例系统的方法;当您可能想使用基于闭包的对象而不是原型时。(对此,大多数JS教程材料绝对是可怕的;花了我很多年才把它弄清楚。)this通话时如何确定,不受限制;因此,方法传递不像您期望的其他语言那样有效;如何关闭或Function#bind可以用来解决这个问题。其他ECMAScript第五版功能indexOf,forEach以及上的功能编程方法Array。如何修复旧版浏览器以确保您可以使用它们;将它们与内联匿名函数表达式一起使用,以获取紧凑,易读的代码。浏览器和用户代码之间的控制流;同步和异步执行;在控件流内部触发的事件(例如焦点)与控件返回时发生的事件和超时;如何调用所谓的同步内置alert函数最终会导致潜在的灾难性重入。跨窗口脚本编写如何影响instanceof;跨窗口脚本如何影响跨不同文档的控制流;postMessage希望如何解决这个问题。有关最后两个项目,请参见此答案。最重要的是,您应该批判性地查看JavaScript,并承认由于历史原因,它是一种不完善的语言(甚至比大多数语言还多),并且避免了最糟糕的麻烦。克罗克福德在这方面的工作绝对值得一读(尽管我并不100%同意他所说的“好零件”)。

陪伴而非守候

了解Crockford的Javascript:The Good Parts中的内容是一个很好的假设,即一个人是一个不错的JS程序员。您几乎可以知道如何使用类似JQuery的良好库,而仍然不知道Javascript的隐藏部分。另一个注意事项是各种浏览器上的调试工具。JS程序员应该知道如何在不同的浏览器中调试其代码。哦! 而且知道JSLint会完全伤害您的感觉!!

回首忆惘然

如果您想成为一名真正的JavaScript忍者,那么您应该知道Perfection Kills JavaScript Quiz中每个问题的答案。激发食欲的一个例子:(function f(f){   return typeof f(); })(function(){ return 1; });此表达式返回什么?“数”“未定义”“功能”错误
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript