初学JavaScript七大注意事项
知识说明:
初学JavaScript,注意以下七大细节,在实现同样功能的情况下,让我们的代码更易懂、效率更高。
一、简化代码
例如:创建对象
之前是这样的:
Var car = new object();
Car.color = “red”;
Car.wheels = 4;
Car.age = 8;
而现在可以写成这样子:
Var car = {color:’red’, wheels:4, age:8}
例如:创建数组
之前是这样的:
Var studentArray = new Array(‘zhangsan’, ’lisi’, ‘zhaowu’, ‘wuliu’);
而现在可以写成这样子:
Var studentArray = {‘zhangsan’, ‘ lisi’, ‘zhaowu’, ‘wuliu’};
例如:使用三元运算符简化代码
之前的写法是:
Var result;
if(x > 100)
{
Result = 1;
}else{
Result = -1;
}
而现在可以写成:
Var result = x >100 ? 1 : -1;
二、使用JSON作为数据格式
使用Json格式来存储数据:
var band = {
"name":"The Red Hot Chili Peppers",
"members":[
{
"name":"Anthony Kiedis",
"role":"lead vocals"
},
{
"name":"Michael 'Flea' Balzary",
"role":"bass guitar, trumpet, backing vocals"
},
{
"name":"Chad Smith",
"role":"drums,percussion"
},
{
"name":"John Frusciante",
"role":"Lead Guitar"
}
],
"year":"2009"
}
也可以使用JS来存储数据,代码如下:
<div id = “dataDiv”></div>
<script>
Function saveData(data)
{
Var out =“<ul>”;
For(var i=0; i<data.length; i++)
{
Out += “<li><a href =”’+data[i].url+’”>+
data[i].d+</a></li>”;
}
Out += ‘</ul>’;
Document.getElementById(‘dataDiv’).innerHTML = out;
}
</script>
甚至可以将上面JS生成的存储数据的作为API的返回值
<script src="http://feeds.delicious.com/v2/json/codepo8/javascript?count=15&callback=delicious">
</script>
三、尽量使用JavaScript原生函数
例如:获取一组数据中的最大值
var maxData = Math.max(0,20,50,10);
alert(maxData); //返回的最大值为50
例如:使用JS给一个元素添加class样式,代码片段如下:
Function addClass(elm, newclass)
{
Var classes = elm.className.split(‘ ‘ );
Classes.push(newclass);
Elm.className = classes.join(‘ ’);
}
四、事件委托
例如:
<h2>Great Web resources</h2>
<ul id="resources">
<li><a href="http://opera.com/wsc">Opera Web Standards
Curriculum</a></li>
<li><a href="http://sitepoint.com">Sitepoint</a></li>
<li><a href="http://alistapart.com">A List Apart</a></li>
<li><a href="http://yuiblog.com">YUI Blog</a></li>
<li><a href="http://blameitonthevoices.com">Blame it on the
voices</a></li>
<li><a href="http://oddlyspecific.com">Oddly specific</a></li>
</ul>
最佳脚本书写方式:
(function(){
var resources = document.getElementById('resources');
resources.addEventListener('click',handler,false);
function handler(e){
var x = e.target; // get the link tha
if(x.nodeName.toLowerCase() === 'a'){
alert('Event delegation:' + x);
e.preventDefault();
}
};
})();
五、匿名函数
var myApplication = function(){
var name = 'Chris';
var age = '34';
var status = 'single';
function createMember(){
// [...]
}
function getMemberDetails(){
// [...]
}
return{
create:createMember, get:getMemberDetails
}
}();
//myApplication.get() and myApplication.create() now work.
六、代码可配置
你写的代码如果想让别人更容易进行使用或者修改,则需要可配置,解决方案是在你写的脚本中增加一个配置对象。要点如下:
1、在你的脚本中新增一个叫configuration的对象。
2、在配置对象中存放所有其它人可能想要去改变的东西,例如CSS的ID、class名称、语言等等。
3、返回这个对象,作为公共属性以便其它人可以进行重写。
七、代码兼容性
兼容性是初学者容易忽略的部分,通常学习Javascript的时候都是在某个固定的浏览器中进行测试,而这个浏览器很有可能就是IE,这是非常致命的,因为目前几大主流浏览器中偏偏IE对标准的支持是最差的。最终用户看到的结果也许就是,你写的代码在某个浏览器无法正确运行。你应该把你的代码在主流的浏览器中都测试一下,这也许很费时间,但是应该这样做。
初学JavaScript七大注意事项的更多相关文章
- H1标签使用的七大注意事项
H1标签使用的七大注意事项: 1 每个页面都应该有H1标签,H1标签是每个网页不可缺少的要素. 2 使用H1标签的内容应该简洁明了; 3 H1标签要尽量出现在源文件代码的开头的部分,这样可以让访问者和 ...
- javascript类型注意事项
以下是javascript类型的注意事项: null:表示尚未存在的对象,注意,尽管尚未存在,也是个对象啊,所以用typeof检测一个null值变量的结果是Object:不过,为了便于写if语句,在j ...
- 初学JavaScript
什么是 JavaScript? JavaScript 被设计用来向 HTML 页面添加交互行为. JavaScript 是一种脚本语言(脚本语言是一种轻量级的编程语言). JavaScript 由数行 ...
- javascript代码注意事项
1 代码行末要加分好.原因<<javascript高级程序设计第三版21页第三行>> 2 初始化变量应该加上默认值因为使用typeof时 未声明和声明为初始化的值都返回unde ...
- 初学JavaScript(入门一)
javaScript是世界上最流行的脚本语言 在我们的手机.电脑设备上所浏览的所有网页,以及基于HTML5手机App的交互都是通过javaScript驱动的,所以javascript是前端工作的一 ...
- 初学JavaScript须知道的七件事
1.1.缩略标记 //定义对象 //var car = new Object(); //car.colour = 'red'; //car.wheels = 4; //car.hubcaps = 's ...
- JavaScript使用注意事项
1.jQuery和JS中页面加载完后执行方法的写法 (1)在javascript中用来执行页面加载中的操作时候,我们会使用 window.onload=function(){} window.onlo ...
- javascript初学者注意事项
注:以下属于个人学习中的理解不能保证全部正确,如果有错误以后修正. 1.javascript和c#语言一样严格区分大小写,有没有类的概念. 2.所有的变量声明都使用var,虽然能打出蓝色int,但却不 ...
- 点滴的积累---初学Javascript
在学习知识的路上,我们须要的不断的去接触新的知识,同一时候我们也不要不停地对自己旧的知识进行总结.近期通过<牛腩Javascript>和姜昊的<Javascript专题视频>对 ...
随机推荐
- HTML5 UI框架Kendo UI Web中如何实现Grid网格控件本地化
Kendo UI Web包含数百个创建HTML5 web app的必备元素,包括UI组件.数据源.验证.一个MVVM框架.主题.模板等. 为了使得产品可以符合不同市场的本地化需求和语言,Kendo U ...
- #if、#ifdef、#if defined之间的区别【转】
转自:http://quanminchaoren.iteye.com/blog/1870977 #if的使用说明 #if的后面接的是表达式 #if (MAX==10)||(MAX==20) code. ...
- Dynamics AX 2012 R2 配置报表服务器
今天Reinhard在使用报表的过程中,发现以下错误: The default Report Server Configuration ID could not be found in the SRS ...
- 编写windows7 bat运行脚本
每天上班,打开电脑后,我总是会固定的打开几个软件.这是重复的工作,我要写脚本startup.bat,直接点击它,就可以启动这些软件了. 本文主要参考这里,只用到了start 和 @Rem 两个命令语句 ...
- Java线程锁一个简单Lock
/** * @author * * Lock 是java.util.concurrent.locks下提供的java线程锁,作用跟synchronized类似, * 单是比它更加面向对象,两个线程执行 ...
- QT笔记之VS开发添加类
1. 2. 3.
- 使用Rsync进行文件的同步与备份
Rsync是Linux下非常不错的文件同步备份工具,安全性高.备份迅速.支持增量备,功能强大且高效. 服务端配置 Rsync服务的配置文件/etc/rsyncd.conf,示例配置(带用户名密码配置) ...
- Struts2拦截器初涉
Struts2拦截器初涉 正在练习struts,本例是从一个pdf上摘抄的例子,那本pdf都不知道叫什么名字,不过感觉很适合初学者. 在这里要实现一个简单的拦截器"GreetingInter ...
- C#中静态与非静态方法比较
C#静态方法与非静态方法的区别不仅仅是概念上的,那么他们有什么具体的区别呢?让我们通过本文向你做一下解析. C#的类中可以包含两种方法:C#静态方法与非静态方法.那么他们的定义有什么不同呢?他们在使用 ...
- LTE Module User Documentation(翻译10)——网络连接(Network Attachment)
LTE用户文档 (如有不当的地方,欢迎指正!) 16 Network Attachment(网络连接) 正如前面章节 Basic simulation program 所述,连接用户到基站时通过调 ...