资讯专栏INFORMATION COLUMN

编程实践

tuniutech / 532人阅读

摘要:将从中抽离不允许使用属性比如来绑定一个事件处理程序。避免空比较检测原始值如果你希望一个值是字符串数字布尔值或。当再次发生错误时,这将有助于更容易地解决问题。

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异常处理 10 个最佳实践

    摘要:为可恢复的错误使用检查型异常,为编程错误使用非检查型错误。检查型异常保证你对错误条件提供异常处理代码,这是一种从语言到强制你编写健壮的代码的一种方式,但同时会引入大量杂乱的代码并导致其不可读。在编程中选择检查型异常还是运行时异常。 异常处理是Java 开发中的一个重要部分。它是关乎每个应用的一个非功能性需求,是为了处理任何错误状况,比如资源不可访问,非法输入,空输入等等。Java提供了...

    Forelax 评论0 收藏0
  • 2021秋软工实践第一次结对编程作业

    摘要:在结对编程的模式下,可以互相监督,高效地交流想法。通过这次的作业让我体验到了结对编程与个人编程的不同,和后者相比起来,前者的工作目的会更加明确,工作时间更加紧凑。 ...

    learn_shifeng 评论0 收藏0
  • 用Kolb学习模型来学编程

    摘要:会用其它人的分析结果,并付诸实践,更偏向于执行,通过错误来学习。四语言学习的方法有些人可能通过感受和观察就能很好的学习了,比如我们所熟知的一些学霸。 小推广讲堂《60分钟徒手撸出Spring框架》,别只会用,干脆自己撸一个轮子吧 一 前言 1984年, 大卫·库伯曾在他的著作《体验学习:体验——学习发展的源泉》提出了学习圈理论,与他认为经验学习过程是由四个适应性学习阶段构成的环形结构,...

    Flands 评论0 收藏0
  • 从小白程序员一路晋升为大厂高级技术专家我看过哪些书籍?(建议收藏)

    摘要:大家好,我是冰河有句话叫做投资啥都不如投资自己的回报率高。马上就十一国庆假期了,给小伙伴们分享下,从小白程序员到大厂高级技术专家我看过哪些技术类书籍。 大家好,我是...

    sf_wangchong 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<