• [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的参数必须是数组,此处正是利用了这一点!

  • 相关阅读:
    [chrome]click事件会触发mouseleave
    鼠标的指针状态 以及 事件禁用
    CSS3 线性渐变(linear-gradient)
    css 的函数 calc() 、linear-gradient()、、、
    1.闰年的计算方法。 2.某一月的周数
    moment.js 使用方法总结
    Echarts 版本查看
    如何使用 onscroll / scrollTo() / scrollBy()
    水平居中、垂直居中
    【LeetCode】22. Generate Parentheses (I thought I know Python...)
  • 原文地址:https://www.cnblogs.com/hustcser/p/3631214.html
Copyright © 2020-2023  润新知