• [JavaScript]转--如何让JS代码高大上


    原文出处:http://www.cnblogs.com/wenber/p/3630373.html

    1,创造简短的写法

    你可以这么写:

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

    也可以这么写:(ie9+)

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

    还可以这么写:

    1 (function(slice){
    2       slice(arguments);
    3 })(Array.prototype.slice);

    2,原型方法扩展:

    你可以这么写:

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

    也可以这么写:

    1 function A(){};
    2 A.prototype={
    3    fn1:function(){},
    4    fn2:function(){}
    5 };

    还可以这么写:

    1 function A(){};
    2 $.extend(A.prototype,{
    3     fn1:function(){},
    4     fn2:function(0{}
    5 });

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

    你可以这么写:

    复制代码
    1 function A(){
    2     var a=[];
    3     
    4     a.push("str1"); 
    5     a.push("str2");
    6     a.push("str3"); 
    7 
    8     return a.join("");
    9 };
    复制代码

    也可以这么写:

    复制代码
    1 function A(){
    2     return [
    3         "str1",
    4         "str2",
    5         "str3"
    6        ].join("");
    7 };
    复制代码

    4,逗号表达式

    你可以这么写:

    1 var   a;
    2 var   b;
    3 var   c;

    也可以这么写:

    1 var  a,b,c;

    5,巧用&&

    你可以这么写:

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

    也可以这么写:

    1 a && b();

    6,巧用||

    你可以这么写:

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

    也可以这么写:

    1 !a || c();

    7,巧用三元表达式

    你可以这么写:

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

    也可以这么写:

    1 a ? b():c();

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

    你可以这么写:

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

    也可以这么写:

    1 $(obj).bind({
    2     click:function(){},
    3     foucus:function(){},
    4     blur:function:(){}
    5 });

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

    你可以这么写:

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

    也可以这么写:

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

     10,数组拼合

    你可以这么写:

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

    也可以这么写:

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

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

  • 相关阅读:
    cf round #421 div2 D. Mister B and PR Shifts
    cf round #421 div2 C. Mister B and Boring Game(trick)
    UVa 12716 GCD XOR
    cf 821E Okabe and El Psy Kongroo(矩阵快速幂)
    hdu 6109 数据分割(并查集+set)
    poj 2887 Big String(块状链表)
    hdu 6119 小小粉丝度度熊(区间双指针)
    hdu 6118 度度熊的交易计划(可行费用流)
    hdu 6015 Gameia(树上博弈)
    hdu 6096 String(AC自动机巧妙建图)
  • 原文地址:https://www.cnblogs.com/hustcser/p/3631214.html
Copyright © 2020-2023  润新知