关于全局变量
Js定义的变量默认都会放到window下,window下还会放一些浏览器自己的变量。当要使用某个变量时,浏览器会去window下去查找。当变量(包括方法)声明了很多时,查找效率会越来越慢。优秀的设计一般都是定义一个全局变量,其他变量采用命名空间的方式挂到这个变量下面。比如网站可以定义一个名叫XXX的全局变量,下面可以按照模块设计各个变量和方法。比如有一个金额验证地方法,就可以放到XXX.Money.validate(money)下。
关于方法的传参
由于设计会进行修改,一些方法的参数有可能会出现不断的变动,有些参数又不是必须传递的,故会出现调整接口导致的全局搜索修改方法。有一种设计是把参数包装成一类一类的对象,再通过对象的属性类传递。比如有一个方法open(),他需要业务对象,业务类型,动画类型,动画时间,动画回调方法,动画回调方法参数,是否有动画等参数。这样就可以把参数设计成两个。第一个是业务类参数,包括业务对象,业务类型;第二个是动画参数,包括动画类型等其他参数。这样设计有一个缺陷,就是不许约定好对象中属性的名称与对应的作用。
关于json对象级联取值
对对象级联进行取值时,容易出现undefined错误。解决方法是在一个方法中通过try...catch...进行处理,如果出现undefined错误就放回默认值。这样有一个缺陷就是代码可阅读性下降。
关于jquery对象
jquery对象是一个在原生对象的基础上进行而外的扩展。既然为扩展,原生自然是不会舍弃。jquery实际上吧原生对象放在下标为0内,既$('#id')[0]。
关于ajax请求和websocket
后续会发表一遍ajax和websocket。
ajax和websocket的区别:
ajax
ajax:我想要吃药!
服务器:好,张嘴!
websocket
服务器:你有病我有药你吃吗?
ajax:不!
服务器:我觉得你该吃药了!
ajax:不!
服务器:那我请你吃饭吧?
ajax:好哇好哇!
关于第三方组件
Jquery
layUI
Validate
artTemplate
Amcharts
Echarts
JqueryUi
AngularJS
Vue
MUI
关于开发工具
Dreamweaver(呀的!上古软件了)
Atom(老夫用了一段时间了)
sublime
Hbuider(老夫现在用的IDE)
Notepad++
最后
其实本来这一部分会涉及到交互的东西,但是既然是基础,交互和特效就放在最后。ajax算是本部分最难得地方了。