首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
audio
uri
数组
process
loops
email
timezone
subset
timestamp
random
get
input
node.js
range
copy
typescript
require
bit
heatmap
regex
eval
php5
ip
scala
c语言
cpython
shell
byte
filter
golang
perl
select
text
spring
go
bytecode
md5
datetime
join
solr
sum
cPlusPlus
jsp
fetch
dll
schema
hashcode
string
char
include
usb
cmd
flutter
instance
frameworks
vba
search
actionscrip
case
controller
heap
nodejs
emoji
install
netty
command
lua
replace
chat
io
function
settings
foreach
cookie
callback
python2
uml
stream
utf-8
当前位置:
开发笔记
>
编程语言
> 正文
JavaScript库开发规则_javascript技巧
作者:铁打的岳小野 | 来源:互联网 | 2018-05-14 09:17
1.保持无侵入性,标记不想知道你的JavaScript代码;2.严禁修改和扩展Object.prototype!;3.对JavaScript内建对象的扩展越少越好;4.跟随标准;5.或着跟随主导;6.保持灵活;7.管理内存;8.淘汰浏览器嗅探;9.小巧更佳……
1. 保持无侵入性
我的HTML标记不想知道你的Javascript代码。
2. 严禁修改和扩展Object.prototype!
这条很重要,因此需要一条完全针对它的规则。对象是Javascript功能的基本构建模块,不要搞乱它们。
3. 不要过分扩展
对Javascript内建对象的扩展越少越好。别误解我的意思。Javascript的原生对象中有用的方法是有点少,有时不得不添加一两个自己的方法。但是,对于富有创造力的(库)程序员来说,添加这“一两个”方法是不够的。然而,请停下来!添加需要的就好。你对Javascript内建对象的扩展越少,你的代码与其它框架产生的冲突的概率就越少。
4. 跟随标准
作为一个库的
开发
者,你定义Javascript代码的模式。设计模式是编程语言能力弱的体现。 记住,Javascript和DOM还在不断地被规格化。如果你想“修正”某些东西,最好先看看是否已经被修正,考虑已有的解决方案。 如果你跟随标准,就紧紧的跟着标准走(比如:别遗漏了forEach 方法的某个参数)。
5. 或着跟随主导
Mozilla引领着Javascript. Javascript语言的创建者Brendan Eich, 还在持续
开发
。和其它浏览器相比,在Mozilla浏览器中这些新的语言特性最先可用。 如果你想给Javascript添加新的语言特性,可以先瞧瞧Mozilla标准。例如,你想给Array对象扩展一个枚举方法时,最好把这个方法取名为forEach而不是each. 如果你的确想提供尚不存在的语言特性,那么请紧紧跟随着现有的标准走(参考上面的例子)。
6. 保持灵活
如果我想修改行为而不改变你的源码,这容易不?如果不够容易,让它更容易些。
7. 管理内存
大家担心内存泄漏,你要尽力而为。
8. 淘汰浏览器嗅探
貌似浏览器厂商们将永远通过添加新特性来竞争;-) 作为库的
开发
者,你要跟得上最新的潮流。偶尔浏览一次Ajaxian是不够的,你必须奴隶般地阅读每一篇博客文章以找到下一个hack. 浏览器嗅探会上瘾的。
9. 小巧更佳
各种Javascript库已经成熟。某些库已经应用在主流网站上。但并不是所有人都装了2MBit的DSL带宽,因此请保持库的小巧。更好的做法是,提供一个打包页面,允许按照我的需求有效地构建自己的库。
10. 第十条规则 Good ol' tenth rule(好像是一个口语用法,不知道怎么翻译好).
你可以始终依赖第十条规则。这就是: 保持可预测。 我应该可以猜到你的方法是用来干嘛的。如果我不知道某个方法的名字,也应该能让我猜出来。
11. 附加规则
文档,恼人但绝对是需要去做的。
你用的命名空间越多,我就越难记住,就如你的电话号码一样。
记住:可能有数百万人将执行你的代码。
html
javascript
程序员
ajax
go
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
ip
Google Contacts API未返回输出 - Google Contacts API not returning output
Itwasworkingcorrectly,butyesterdayitstartedgiving401.IhavetriedwithGooglecontactsAPI ...
[详细]
蜡笔小新 2023-10-15 16:40:16
ip
AJAX操作授权过期的全局处理方式
本文介绍了一种处理AJAX操作授权过期的全局方式,以解决Asp.net MVC中Session过期异常的问题。同时还介绍了基于WebImage的图片上传工具类。详细内容请参考链接:https://www.cnblogs.com/starluck/p/8284949.html ...
[详细]
蜡笔小新 2023-12-11 19:17:35
ip
使用jQuery / AJAX实现两个div的动态更新
本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ...
[详细]
蜡笔小新 2023-12-11 10:07:32
ip
1 Vue基础
Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ...
[详细]
蜡笔小新 2023-10-17 19:45:53
get
ppurl
Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ...
[详细]
蜡笔小新 2023-10-17 18:30:39
ip
使用粘性页眉和页脚切换侧栏 - Toggle Sidebar with sticky header and footer
Iwouldliketobeabletohaveasidebarthatcanbetoggledinandoutonabuttonpress.However ...
[详细]
蜡笔小新 2023-10-13 12:28:22
ip
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
但有时候,需要当某事件触发时,我们先做一些操作,然后再跳转,这时,就要用JAVASCRIPT来实现这一跳转功能。下面是具体的做法:一:跳转到新页面,并且是在新窗口中打开时:复制代码代码如下:fu ...
[详细]
蜡笔小新 2023-10-13 12:25:13
copy
OC学习笔记之@property和@synthesize
本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ...
[详细]
蜡笔小新 2023-12-14 12:05:06
ip
前端人员必须知道的三个问题及其发展阶段
本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ...
[详细]
蜡笔小新 2023-12-12 12:45:59
ip
一次上线事故,30岁+的程序员踩坑经验之谈
本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ...
[详细]
蜡笔小新 2023-12-10 17:25:31
ip
关于extjs开发实战pdf的信息
本文目录一览:1、extjs实用开发指南2、本 ...
[详细]
蜡笔小新 2023-10-17 13:23:21
ip
用JavaScript实现《铁甲无敌奖门人》“开口中”猜数游戏
JavaScript在常人看来都是门出不了厅堂的小语言,仅管它没有明星语言的闪耀,但至少网页的闪耀还是需要它的,同时它是一门很实用的语言,本人平时就喜欢拿它来写点实用工具或应用,本文演示用JavaSc ...
[详细]
蜡笔小新 2023-10-13 09:49:41
ip
JavaScript实现在页面间传值的方法
JavaScript实现在页面间传值的方法-本文实例讲述了JavaScript实现在页面间传值的方法。分享给大家供大家参考。具体如下:问题如下:在a.html页面中,的 ...
[详细]
蜡笔小新 2023-10-13 01:38:28
ip
如何将json数据传递给highcharts系列? - How to pass json data to highcharts series?
Ihavefollowingjsonarraywhichisgeneratedatruntime.Hencethenumberofnamedatapairsvarie ...
[详细]
蜡笔小新 2023-10-12 21:52:44
ip
与Internet Explorer的Fancybox Iframe错误 - Fancybox Iframe bug with internet explorer
ImgettingabugwithInternetExplorer.Theiframedoesnthavecorrectsizeanditisdisplayedo ...
[详细]
蜡笔小新 2023-10-12 20:54:23
铁打的岳小野
这个家伙很懒,什么也没留下!
Tags | 热门标签
audio
uri
数组
process
loops
email
timezone
subset
timestamp
random
get
input
node.js
range
copy
typescript
require
bit
heatmap
regex
eval
php5
ip
scala
c语言
cpython
shell
byte
filter
golang
RankList | 热门文章
1
最最最经典的背包九讲【dd大牛】
2
burp 安装 license key not recognized
3
org.springframework.web.context.request.ServletWebRequest.getNativeResponse()方法的使用及代码示例
4
CoolMining 打金BTC?丨追风社 AMA
5
前端应用开发架构图谱
6
android 相机变焦_我的傻瓜相机的“ 8倍”变焦与我的数码单反相机相比如何?...
7
跟大家介绍一下关于Spring Cloud Consul
8
MySQL 日期:创建时间+更新时间
9
如何自行编译ESP8266 ESPEasy 固件
10
看别人文章有感
11
整数划分问题解法2动态规划
12
PHP如何严格获取真实用户IP?
13
MLlearning(2)——simHash算法
14
vscode必备插件(vscode需要安装的插件有哪些)
15
C语言:求第N个斐波那契数
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有