1,创造简短的写法

你可以这么写:

 var slice = Array.prototype.slice;
slice.call(arguments); //转化成数组

也可以这么写:(ie9+)

 var unboundSlice = Array.prototype.slice;
var slice = Function.prototype.call.bind(unboundSlice);
slice(arguments);//转化成数组

还可以这么写:

 (function(slice){
slice(); //可以直接调用该方法
})(Array.prototype.slice);

2,原型方法扩展:

你可以这么写:

 function   A(){};
A.prototype.fn1=function(){};
A.prototype.fn2=function(){};

也可以这么写:

  function A(){};
A.prototype={
constructor:A,
fn1:function(){},
fn2:function(){}
};

还可以这么写:

 function A(){};
$.extend(A.prototype,{
fn1:function(){},
fn2:function(0{}
});

3,返回一个由数组拼合成的字符串

你可以这么写:

 function A(){
var a=[]; a.push("str1");
a.push("str2");
a.push("str3"); return a.join("");
};

也可以这么写:

 function A(){
return [
"str1",
"str2",
"str3"
].join("");
};

4,逗号表达式

你可以这么写:

 var   a;
var b;
var c;

也可以这么写:

1 var  a,b,c;

5,巧用&&

你可以这么写:

1 if(a){
2 b();
3 };//如果a为真,则执行函数b

也可以这么写:

1 a && b();

6,巧用||

你可以这么写:

 if(!a){
c();
};//如果a为假,则执行函数c

也可以这么写:

 !a || c();

7,巧用三元表达式

你可以这么写:

 if(a){
b();
}else{
c();
}//如果a为真,则执行函数b,否则执行函数c;

也可以这么写:

 a ? b():c();

8,同一个对象上绑定多个事件

你可以这么写:

 1 $(obj).click(function (){});
2 $(obj).focus(function (){});
3 $(obj).blur(function (){});

也可以这么写:

 $(obj).bind({
click:function(){},
foucus:function(){},
blur:function:(){}
});

9,缓存对象属性,防止每次都去读取属性

你可以这么写:

 for(var i =0 ;i < obj.length; i++){};

也可以这么写:

for(var i=0, len=obj.length;  i < len; i++){};

10,数组拼合

你可以这么写:

 var a=[1,2,3];
var b=[4,5,6];
var a=a.concat(b);//a=[1,2,3,4,5,6]

也可以这么写:

 var a=[1,2,3];
var b=[4,5,6];
a.push.apply(a,b);//a=[1,2,3,4,5,6]

这个地方不能不call哦,apply的参数必须是数组,此处正是利用了这一点!

11,没有库时,应该做简易的封装

你可以这么写:

 var  dom1 = document.getElementById("id1");
var dom2 = document.getElementById("id2");

也可以这么写:

 function D(id){
return document.getElementById(id);
} var dom1=D("id1");
var dom2=D("id2");

12,善于使用正则:

你可以这么写:

 if(document.readyState==="loaded" || document.readyState==="complete"){}

也可以这么写:

 if (/loaded|complete/.test(document.readyState)){}

13,利用js内部的自我转换

你要将number和string转换,可以这么做:

 //number转化成string
var num=123;
var str=num.toString(); //"123" //string转化成number
var str="123";
var num = parseInt(str,10); //

也可以这么写:

 //number转化成string
var num=123;
var str=num+""; //"123" //string转化成number
var str="123";
var num = str-""; //

14,使用原型进行批量复制:

你可以这么写:

 function f(x){
x!=null && this.x=x;
};
var a = [];
for(var i = 0; i<100; i++){
a[i]=new f(10); //把实例分别存入数组
};

也可以这么写:

function f(x){
x!=null && this.x=x;
};
var a = [];
function temp = {};
temp.prototype=new f(10);
for(var i = 0; i<100; i++){
a[i]=new temp(); //把实例分别存入数组
};

假如你想修改数组的值,只需要修改类f的原型即可。

开心一刻:

让你的javascript代码高大上的更多相关文章

  1. 高级Javascript代码

    Javascript是一门很吊的语言,我可能学了假的JavaScript,哈哈,大家还有什么推荐的,补充送那啥邀请码. 本文秉承着:你看不懂是你SB,我写的代码就要牛逼. 1.单行写一个评级组件 &q ...

  2. javascript代码 调试方法

    你的代码可能包含语法错误,逻辑错误,如果没有调试工具,这些错误比较难于发现. 通常,如果 JavaScript 出现错误,是不会有提示信息,这样你就无法找到代码错误的位置. 在程序代码中寻找错误叫做代 ...

  3. 7个高性能JavaScript代码高亮插件

    本文由码农网 – 小峰原创,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 对于喜欢写技术博客的同学来说,一定对代码高亮组件非常熟悉.一款优秀的JavaScript代码高亮插件,将会帮助你渲染 ...

  4. JavaScript代码段整理笔记系列(二)

    上篇介绍了15个常用代码段,本篇将把剩余的15个补齐,希望对大家有所帮助!!! 16.检测Shift.Alt.Ctrl键: event.shiftKey; //检测Shift event.altKey ...

  5. JavaScript代码段整理笔记系列(一)

    30段JavaScript代码——上篇 1.如何区分IE及非IE浏览器: if(!+[1,]){ //IE 11 不支持 alert("这是 IE 浏览器"): }else{ al ...

  6. 如何让你的JavaScript代码更加语义化

    语义化这个词在 HTML 中用的比较多,即根据内容的结构化选择合适的标签.其作用不容小觑: 赋予标签含义,让代码结构更加清晰,虽然我们可以在标签上添加 class 来标识,但这种通过属性来表示本体的形 ...

  7. 推荐15个最好用的 JavaScript 代码压缩工具

    JavaScript 代码压缩是指去除源代码里的所有不必要的字符,而不改变其功能的过程.这些不必要的字符通常包括空格字符,换行字符,注释以及块分隔符等用来增加可读性的代码,但并不需要它来执行. 在这篇 ...

  8. 新书《编写可测试的JavaScript代码 》出版,感谢支持

    本书介绍 JavaScript专业开发人员必须具备的一个技能是能够编写可测试的代码.不管是创建新应用程序,还是重写遗留代码,本书都将向你展示如何为客户端和服务器编写和维护可测试的JavaScript代 ...

  9. FineUI(专业版)实现百变通知框(无JavaScript代码)!

    博客园已经越来越不公正了,居然说我这篇文章没有实质的内容!! 我其实真的想问哪些通篇几十个字,没任何代码和技术分享,嚷嚷着送书的文章的就能雄霸博客园首页几天,我这篇文章偏偏就为管理员所容不下. 其实我 ...

随机推荐

  1. Mac PyCharm专业版破解

    1. 先在PyCharm官网:http://www.https://www.jetbrains.com/pycharm/,下载PyCharm专业版安装包 2. 安装PyCharm 3. 终端执行: s ...

  2. 常见CSS浏览器兼容性问题与解决方案【转载自http://blog.csdn.net/chuyuqing/article/details/37561313/】

    所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们的系统,都应该是统一的 ...

  3. 【牛客练习赛12-B】迷宫(BFS)

    链接:https://www.nowcoder.net/acm/contest/68/B 题目描述 这是一个关于二维迷宫的题目.我们要从迷宫的起点 'S' 走到终点 'E',每一步我们只能选择上下左右 ...

  4. 初识Linux(二)--命令行基本操作

    安装完Ubuntu后,进入系统,呈现在眼前的是Ubuntu的界面,跟windows的差不太多.一般操作系统包含GUI和CLI.GUI就是我们现在看到的,也是windows常用的直接用拖拽,点击等操作对 ...

  5. How to Have a Healthy Relationship --shanbei 为单身节写

    我在扇贝发现一片好文. Sometimes relationships can seem like a lot of work until you sit back and realize just ...

  6. Leetcode 890. Find and Replace Pattern

    把pattern映射到数字,也就是把pattern标准化. 比如abb和cdd如果都能标准化为011,那么就是同构的. class Solution: def findAndReplacePatter ...

  7. Java虚拟机运行时数据区域划分

        Java虚拟机数据运行时区域 方法区(Method Area) 存储加载的类信息,常量,静态变量,编译器编译后的代码等数据.虽然JVM规范把方法区描述为堆的一个逻辑部分,但它却有一个别名叫做N ...

  8. 在Wifi网络中嗅探明文密码(HTTP POST请求、POP等)

    全世界,现在大约50%的网站没有使用SSL加密,天朝尤其多. 我们都知道通过HTTP发送的数据都是明文,没有使用任何加密,即使是在数据敏感的登录页面. 本文的目的是:如果你在不熟悉的网络环境中,要注意 ...

  9. MarkDown小技巧

    MarkDown编辑 MarkDown编辑的时候,可以直接插入HTML的编辑手法. 例如如果想要将一段话中的某一个或者某几个字设为其他颜色,但又不想将这几个字与这段话分割的时候,可以这样 你可以这样将 ...

  10. session不一定非得要cookie开启才能使用。也可以使用get传递参数

    session不一定非得要cookie开启才能使用.也可以使用get传递参数 可以将session_id();设置为一个常量. define(’s_id‘ ,$_COOKIE['session_nam ...