`

前端开发,如何写出优秀js代码

 
阅读更多

1.性能好效率高,浏览器中运行效率高的代码。

    1.避免全局查找,变量搜索顺序为:先局部,后全局;先解析,后赋值 

var num=1;
;((w)=>{//添加分号,主要为了防止匿名函数调用上一行定义的函数
    console.log(num);//输出nudefined
    console.log(w.num);//输出1
    var num=10;
    console.log(num);//输出10,代表先搜索局部变量
})(window)


    2.条件判断,按可能性从高到低,减少条件执行次数

function getStr(){
var num=Math.floor(Math.random()*10+1);//1到10的随机数
switch(true){//注意:如果改为num,case里不能写为范围,只能是变量
case num<8:
return '1-7之间数字'+num;
case num===8 || num===9:
return '8-9之间的数字:'+num;
case 10:
return num;
default:
return 'default'
}
}
console.log(getStr());


    3.各种类型转换,通过js特殊方式

//将数字转换成字符串
var num=1,
    num_str=""+num;
console.log(num_str+'类型是'+(typeof num_str));//1类型是string
//将字符串转换为其他类型
var str="13.14",
    str_int = ~ ~str,
    str_float = 1 * str,
    str_bool = !!str,
    str_array = [str];
console.log(str_int+'类型是'+(typeof str_int));//13类型是number
console.log(str_float+'类型是'+(typeof str_float));//13.14类型是number
console.log(str_bool+'类型是'+(typeof str_bool));//true类型是boolean
console.log(str_array+'类型是'+(typeof str_array));//13.14类型是object

虽然看上去有点丑,但效率却要比parseInt(),parseFloat()等高些,当然使用toString()方法来进行类型转换的也是值得推荐的。


    4.优化js的加载

比如通过使用defer,async属性实现js的延迟加载,使用document.createElement ("script")的方式动态加载js等,合并压缩js文件来减少http请求等等


    5.其它

能不使用with语句的时候尽量不要使用with语句。

尽量少使用eval ,每次使用eval需要消耗大量时间。

少使用document.write来给页面生成内容,多用innerHtml来添加。

删除dom节点之前,一定要删除注册在该节点上的事件。

通过javascript创建的dom对象,必须append到页面中。

......


2.简洁优雅,用最少的字符写出同样的功能。

    1.使用三目运算

var a=1,b=2;num;
if (a>b){
num = a;
}else{
num=b;
}
//可以替换为:
var num = a > b ? a : b;


    2.变量递增/递减/乘/除

var num=10
num =num + 1;
num =num - 1;
//改下为
++num;
--num;
/*其它加减乘除*/
num += 2;
num -= 2;
num *= 2;
num /= 2;


    3.数组和遍历

var a=new Array();
a[0]="ab"
a[1]="ac"
a[2]="ad"
for(var x=0;x<a.length;x++)
{
   console.log(a[x]);
}
//简洁的写法是
var a=['ab','ac','ad'];
for(var x in a)
{
    console.log(a[x]);
}


    4.一个function就做一件事,拥有统一的属性通过继承实现

function person(name){//定义一个公用类代表:人
  this.name = name || 'default';//属性-名称
  this.eat= function(){//方法-吃饭
    console.log(this.name + '在吃饭!');
  };
  this.sleep=function(){//方法-睡觉,不同的方法分开写,只用于处理一件事
    console.log(this.name+'在睡觉');
   };
}
function man(name){//男人
  person.call(this);//拥有人类的特征
  if(name!=undefined){
  this.name = name;
  }
}

(function(){
  var Super = function(){};
  Super.prototype = person.prototype; 
  man.prototype = new Super();
})();
var m = new man('tony');
console.log(m.name);//tony
console.log(m.eat());//tony在吃饭
console.log(m instanceof person); // true
console.log(m instanceof man); //true


3.通俗易懂,除了自己他人很快能读懂你的思想。

    1.命名规范

const RUNTIME_PATH= "./Runtime/";//常量定义不要使用var,名称用大写“_”隔开。
_fn: function () {} //对象内提供给内部调用的接口,通过“_”作为开头。
let num=0;//作用域被限制在块级中的变量的定义。
function fnGetName(){};//方面命名尽量使用驼峰式。

原则是:

变量名区分大小写,允许包含字母、数字、美元符号($)和下划线,但第一个字符不允许是数字,不允许包含空格和其他标点符号

变量命名长度应该尽可能的短,并抓住要点,尽量在变量名中体现出值的类型

尽量避免使用没有意义的命名

禁止使用JavaScript关键词、保留字全名

变量名命名方法常见的有匈牙利命名法、驼峰命名法和帕斯卡命名法


    2.变量定义始终在前

无论使用let,var来定义变量,我们尽量把它们写在最前面,多个变量可以用过逗号隔开


    3.多使用try catch语句

try {
   //语句
}catch (e) {
  //出错怎么办
}finally{
   //无论结果都会执行的
}

这样能很好的让我们捕获错误。当错误发生时JavaScript 会停止执行,并生成一个错误信息。如果你将 throw 和 try 、 catch一起使用,就可以控制程序输出的错误信息。

 

分享到:
评论

相关推荐

    Web前端开发详细教程, Web前端开发代码大全, 包含各种框架详解

    ### Web前端开发详细教程 #### 一、引言 随着互联网技术的发展,Web前端开发已成为一个重要的领域。它不仅涉及到网站的设计与实现,还涵盖了用户体验、交互设计等多个方面。本教程旨在为初学者提供全面而深入的...

    基于Vue.js框架的Web前端开发工具的设计与实现

    本课题利用Vue.js框架开发了一款前端开发工具,该工具可以辅助UI设计师和前端工程师进行页面设计工作,提髙前端开发的效率,减少前端工程师的工作量。 本文论述了该工具的设计和实现过程,该工具提供了页面...

    疯狂前端开发讲义——jQuery+AngularJS+Bootstrap前端开发实战

    《疯狂前端开发讲义——jQuery+AngularJS+Bootstrap前端开发实战》是一本深入浅出的前端开发教程,它涵盖了三个核心的前端技术:jQuery、AngularJS和Bootstrap。这些技术在现代网页开发中扮演着至关重要的角色,使得...

    分享自己长期关注的前端开发相关的优秀网站博客以及活跃开发者

    以下是一些我长期关注的前端开发相关的优秀资源,它们涵盖了广泛的知识点,包括JavaScript开发的学习教程。 1. **网站与平台** - **MDN Web Docs**:Mozilla 开发者网络提供了全方位的Web技术文档,包括HTML、CSS...

    华为网站前端代码

    【华为网站前端代码】是华为公司内部用于学习和分享的前端开发资源,涵盖了构建现代Web应用所需的各种技术和实践。这份资料对于想要深入了解华为网站前端架构、设计模式以及最佳实践的人来说,是一份非常宝贵的学习...

    前端开发框架介绍&项目代码

    本文将深入探讨几个主流的前端开发框架,并结合提供的"前端开发框架介绍&项目代码.pdf"文件,为你详细解读这些框架的关键特性、适用场景以及如何在实际项目中应用。 1. **React** React是由Facebook开发的...

    HBuilder前端开发工具

    总结来说,HBuilder作为一款优秀的前端开发工具,凭借其强大的功能和人性化的设计,深受开发者喜爱。无论是初学者还是经验丰富的开发者,都能从中受益,提升开发效率,打造更优质的Web应用。在日常工作中熟练运用...

    web前端开发工具代码编辑器、浏览器(谷歌、火狐)等

    总结来说,Web前端开发依赖于高效的代码编辑器、精准的设计工具和强大的浏览器。选择合适的工具组合,能够极大地提高开发效率和质量。无论是初学者还是经验丰富的开发者,了解并熟练掌握这些工具都将为他们的职业...

    程序员web前端视频教程(文档+代码+视频).rar

    Web前端开发是IT行业中至关重要的一环,它涉及到用户在浏览器端看到和交互的所有内容。本教程资源包"程序员web前端视频教程...记住,持续学习和实践是成为优秀前端开发者的关键,祝你在web前端开发的道路上越走越远!

    Web前端开发中级样题一理+实.zip

    【标签】"1+x web前端开发" 标签表明这是根据1+x认证体系设计的Web前端开发课程内容,该体系覆盖了前端开发的基础到高级技能,包括但不限于HTML5、CSS3、JavaScript、React、Vue.js等热门框架的使用。 【压缩包子...

    前端作品,swatow二等奖代码

    本文将深入探讨这些核心知识点,旨在帮助读者理解和学习优秀的前端开发实践。 1. **HTML(HyperText Markup Language)**:HTML是构建网页的基础,定义了网页的结构。在这个项目中,我们可能看到各种HTML标签的使用...

    推荐2款前端代码压缩工具minifier 推荐2款压缩css代码,js代码的工具

    在前端开发中,优化网页加载速度是至关重要的,其中一项关键任务就是对CSS和JavaScript代码进行压缩,以减少文件大小,提高页面加载效率。这里,我将详细介绍两款常用的前端代码压缩工具:Closure Compiler和YUI ...

    JavaScript前端开发模块化教程_PPT.rar

    JavaScript前端开发模块化教程 在当今的Web开发领域,JavaScript作为客户端编程的首选语言,其重要性不言而喻。随着项目的复杂度增加,管理代码的难度也随之上升,因此,模块化成为了解决这一问题的关键。本教程将...

    前端开发框架vue.js

    Vue.js 是一款轻量级、高...总的来说,Vue.js 是前端开发的重要工具,它简化了前端开发流程,提高了开发效率,并且有着丰富的生态系统支持。无论是初学者还是经验丰富的开发者,都能从中受益,打造出优秀的Web应用。

    前端开发教程推荐不定期更新

    前端开发不仅仅是写JavaScript,还需要熟悉DOM操作。了解如何通过JavaScript动态修改页面内容,添加事件监听,以及使用Ajax进行异步通信都是前端开发者必备的技能。此外,理解BOM(浏览器对象模型)也是十分重要的,...

    1500个前端开发常用javascript特效2013js特效

    本资源“1500个前端开发常用javascript特效2013js特效”显然是一个集合,包含了大量用于增强网页用户体验的JavaScript代码片段和特效。 首先,JavaScript特效在前端开发中的作用不可忽视。它们可以使网页变得生动、...

    前端开发公司HTML5模板

    开发者可以通过简单地修改模板中的CSS和JavaScript代码,来定制适合自己品牌和需求的颜色、字体、动画效果等。此外,模板还可能包含了图标库,如Font Awesome,提供大量的矢量图标供选择,增强页面视觉吸引力。 ...

    web前端开发模仿代码

    在web前端开发中,模仿优秀的网站是初学者和专业开发者提升技能、学习新设计趋势的常见方式。"web前端开发模仿代码"这个项目提供了一种实践性极强的学习方法,通过实际操作,你可以深入理解网页设计和开发的各个环节...

    一款基于当前最前沿的前端(Vue3 + Vite + Antdv)和后台(Spring boot)实现的低代码开发平台

    总之,这个基于Vue3 + Vite + Antdv + Spring Boot的低代码开发平台充分利用了现代开发工具和技术,实现了高效、可扩展的软件开发流程,降低了开发门槛,是企业级应用开发的一个优秀选择。对于希望提升开发效率和...

    web前端开发计划.rar

    在“web前端开发计划.rar”这个压缩包中,我们可以预见到一份详尽的Web前端开发指南,涵盖了从项目启动到最终实现的整个流程。这份资料不仅教导开发者如何规划和实施Web开发项目,还强调了核心的技术栈,包括HTML、...

Global site tag (gtag.js) - Google Analytics