【发布时间】:2010-08-03 15:44:44
【问题描述】:
我的背景是 C 语言,我已经学会了 PHP、mySQL、HTML、CSS,没有太多问题。
但我发现 Javascript/jQuery 出奇地难以正确处理。 非常令人沮丧。 为什么?
它似乎违反了许多传统的编程原则(例如变量作用域)
-
未定义的变量似乎无处不在,并且已经具有与之关联的值。例如(来自 jQuery 文档):
$("a").click(function(event) { event.preventDefault(); $('<div/>') .append('default ' + event.type + ' prevented') .appendTo('#log'); });究竟什么是“事件”?我必须使用这个变量名吗?我是否应该假设这个对象是用正确的东西神奇地实例化的,我可以使用JQuery API 中的任何方法列表?
似乎有一堆随机规则(例如,返回 false 以停止默认操作,但有时这不起作用?)
调试时的不确定行为。 (例如,我刷新浏览器,尝试一些东西并为我在 Firebug 中观看的 JS 变量获取结果 X。我再次刷新并得到结果 Y?)
看起来非常凌乱的代码,难以理解。什么时候发生?我正在使用 Firebug 和 Chrome 开发者工具,但我的知名度不够。
似乎每天都有一些随机的 JS “规则”出现,这是我在我的任何 JS 书籍或教程中从未见过的。
我需要做什么才能使 Javascript/jQuery 对我来说更具确定性、可控性和逻辑性?
是否有任何资源可以解释 Javascript 的怪癖/陷阱?
谢谢!
【问题讨论】:
-
是的,JS 是个善变的情妇。但是您忘记了“6) 跨浏览器平台的工作方式不同。”
-
你忘记了“可选”分号 :)
-
请提供#2、#4 和#5 的示例。当心克罗克福德。
-
你可以用任何编程语言编写杂乱无章的代码。这是程序员的错,而不是语言。
-
@Felix 你用过 JavaScript 吗?在 JavaScript 中编写不混乱的代码是一项严峻的挑战。这是语言。
标签: javascript jquery