摘要:将从中抽离不允许使用属性比如来绑定一个事件处理程序。避免空比较检测原始值如果你希望一个值是字符串数字布尔值或。当再次发生错误时,这将有助于更容易地解决问题。
UI层的松耦合
将CSS从JavaScript中抽离
不允许在js中修改元素的样式,最佳方法是控制className。
有例外:比如说定位等问题,可以修改而不使用className控制。
将JavaScript从HTML中抽离
不允许使用 on 属性(比如onclick)来绑定一个事件处理程序。
js代码应当写在外部文件中然后引用。
将HTML从JavaScript中抽离
无法避免,使用前端模板工具,推荐使用Handlebar。
事件处理规则
规则一:隔离应用逻辑,即把事件触发需要执行的代码提取出来。
规则二:不要分发事件对象,应用逻辑不应当依赖于event对象来正确完成功能。最佳的办法是在事件处理程序中使用event(包括获取event里的数据,阻止默认事件,阻止事件冒泡),然后将拿到的 数据在传给应用逻辑。
避免空比较
检测原始值
如果你希望一个值是字符串、数字、布尔值或undefined。最佳选择是使用typeof运算符。
typeof独特在于即使未声明的变量也不会报错。未声明的变量和值为undefined的变量都返回undefined。
字符串,typeof返回"string"。
数字,typeof返回"number"。
布尔值,typeof返回"boolean"。
undefined,typeof返回"undefined"。
若要检测null,直接使用 === 或 !== 。
检测引用值
最佳的选择是使用instanceof运算符。
但instanceof不能跨frame。
函数和数组一般不用instanceof。
检测函数
检测函数最好的方法是使用 typeof ,因为它可以跨frame。
但在IE8和更早版本中,使用typeof检测用于获取DOM节点的方法(例如,getElementById等方法)会返回object而不是function。因此检测DOM的方法的最好的方法是 in运算符(如果需要兼容IE8及以下)。例如"querySelectorAll" in document。
检测数组
最优雅的检测方法:
jsfunction isArray(value){ return Object.prototype.toString.call(value) === "[object Array]"; }
检测属性
检测属性最好的方法就是 in 运算符。
如果只想检测实例对象的某个属性是否存在,则使用hasOwnProperty()。在IE8
将配置数据从代码中分离出来
什么是配置数据
URL
需要展现给用户的字符串
重复的值
设置
任何可能发生变更的值
抽离配置数据(重要)
保存配置数据——甚至可以提取到多带带的文件中
抛出自定义数据抛出错误就是自己留下告诉自己为什么失败的原因
抛出错误最佳的地方实在工具函数中,公共接口中。
一旦修复了一个很难调试的错误,尝试增加一两个自定义错误。当再次发生错误时,这将有助于更容易地解决问题。
如果正在 编写代码,思考一下:我希望「某些事情」不会发生,如果发生,我的代码会一团糟糕。这时如果某些事情发生,就抛出一个错误。
如果正在编写的代码别人也会使用,思考一下他们使用的方式,在特定的情况下抛出错误。
不是你的对象不要动 不能修改的原生对象
DOM对象
浏览器对象(BOM)
类库的对象(jquery)
不能修改的原则不覆盖方法
不新增方法
不删除方法
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/85859.html
摘要:为可恢复的错误使用检查型异常,为编程错误使用非检查型错误。检查型异常保证你对错误条件提供异常处理代码,这是一种从语言到强制你编写健壮的代码的一种方式,但同时会引入大量杂乱的代码并导致其不可读。在编程中选择检查型异常还是运行时异常。 异常处理是Java 开发中的一个重要部分。它是关乎每个应用的一个非功能性需求,是为了处理任何错误状况,比如资源不可访问,非法输入,空输入等等。Java提供了...
摘要:在结对编程的模式下,可以互相监督,高效地交流想法。通过这次的作业让我体验到了结对编程与个人编程的不同,和后者相比起来,前者的工作目的会更加明确,工作时间更加紧凑。 ...
摘要:会用其它人的分析结果,并付诸实践,更偏向于执行,通过错误来学习。四语言学习的方法有些人可能通过感受和观察就能很好的学习了,比如我们所熟知的一些学霸。 小推广讲堂《60分钟徒手撸出Spring框架》,别只会用,干脆自己撸一个轮子吧 一 前言 1984年, 大卫·库伯曾在他的著作《体验学习:体验——学习发展的源泉》提出了学习圈理论,与他认为经验学习过程是由四个适应性学习阶段构成的环形结构,...
摘要:大家好,我是冰河有句话叫做投资啥都不如投资自己的回报率高。马上就十一国庆假期了,给小伙伴们分享下,从小白程序员到大厂高级技术专家我看过哪些技术类书籍。 大家好,我是...
阅读 2807·2021-11-25 09:43
阅读 959·2021-10-11 10:57
阅读 2462·2020-12-03 17:20
阅读 3695·2019-08-30 14:05
阅读 2391·2019-08-29 14:00
阅读 1976·2019-08-29 12:37
阅读 1637·2019-08-26 11:34
阅读 3181·2019-08-26 10:27