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. 如何批量更改linux文件的内容

    在工作当中,我们往往需要修改某个文件夹下面所有文件的内容,例如把里面的日期统一替换成新的日期,或者把某一串字符替换成另外一串字符,这时我们就可以使用sed命令: sed -i "s/olds ...

  2. 【spark】RDD创建

    首先我们要建立 sparkconf 配置文件,然后通过配置文件来建立sparkcontext. import org.apache.spark._ object MyRdd { def main(ar ...

  3. 【MAVEN】笔记

    引言 Maven是Java项目开发中的重要组成部分,了解它学习它是我们的必修课. Maven是什么? Maven是一个项目管理和综合工具.Maven是标准化的产物,使用标准的目录结构和默认构建生命周期 ...

  4. LeetCode OJ:Missing Number (丢失的数)

    Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missin ...

  5. EasyDSS流媒体服务器出现no compatible source was found for this media问题的解决

    在EasyDSS流媒体服务器的客户反馈中,我们遇到这样一个现象,在chrome中经常会出现RTMP/HLS流无法播放的问题: 这个问题复现的几率比较低,因为chrome禁止了flash的加载,这也从另 ...

  6. Keras GRU 文字识别

    GRU(Gated Recurrent Unit)是LSTM的一个变体,也能克服RNN无法很好处理远距离依赖的问题. GRU的结构跟LSTM类似,不过增加了让三个门层也接收细胞状态的输入,是常用的LS ...

  7. Gradle配置IDEA正常识别JPA Metamodel Generator动态生成的代码

    我们在使用JPA动态查询构建查询条件时,为了实现安全的类型检查,常常需要引用Hibernate JPA Metamodel Generator自动为我们生成静态元模型类. 而这些类由于编译时由Hibe ...

  8. python之random库

    random库是用于产生并运用随机数的标准库 1. random库函数 (1)random.seed(a) 设置随机种子数,可以是浮点数或整数,如果不设置的话,则random库默认以系统时间产生当作随 ...

  9. gogs docker 安装

     1.  gogs 镜像      docker pull gogs/gogs    2.  mysql    docker mysql    3.  本地数据卷配置 mkdir gogs & ...

  10. python 函数名,闭包

    1.函数名字的应用 函数名是什么? 函数名是函数的名字,本质:变量,特殊变量 函数名+() ———>执行此函数: 2.函数名的赋值: def func2(): print(44) f = fun ...