zoukankan      html  css  js  c++  java
  • javascript技术大全

    这更像是一篇为自己而写的文章,没有过多的解释,sorray。

    关于:return

    function fn(num){
      var a = num;
      if(a>1){
        a = num + 1;
        return a;
      }else if(a<1){
        a = 0;
        return a;
      }
    }

    可以写成这样

    function fn(num){
      var a = num;
      if(a>1){
        a = num + 1;
      }else if(a<1){
        a = 0;
      }
      return a;
    }

    利用return替代if..else..

    function fn(num){
      if(num==5){
        ...........
        return;
      }
      // 否则语句
      .........
    }

    利用return跳出多重循环

    function fn(){
      for(var i=0;i<10;i++){
        for(var j=0;j<10;j++){
          ............
          if(xx===xx){
            return;
          }
        }
      }
    }

    利用return this实现链式调用

    var Fn = function(dom){this.dom = dom;};
    Fn.prototype.click = function(fn){
      this.dom.onclick = function(){
        fn();
      };
      return this;
    };

    Fn.prototype.mouseover = function(fn){
      this.dom.onmouseover = function(){
        fn();
      };
      return this;
    };

    var fn = new Fn(box);
    fn.click(function(){
      console.log('click');
    }).mouseover(function(){
      console.log('mouseover');
    })

    合理利用 || &&

    if(fn()!=='undefined'){
      .........
    }

    可以这样

    fn()&&要执行的代码

    如果需要在&&或者||中使用赋值语句需要加()

    return fn() && (a = 10);

    利用||替程序实现默认值

    var a = name || '追梦子';


    function相关性...

    参数较多的情况下使用透明参数(使用对象)

    function fn(obj){
      for(var k in obj){
        ..............
      }
    }

    fn({a:1,b:2,c:3,d:4,e:5})

    -------------------------

    减少函数参数,如果内部可以计算出的话。

    利用函数解决变量污染问题

    (function(){
      // 代码块
    }())

    利用函数创建私有变量

    var fn = (function(){
      var name = 'xxx';
      return function(){
        .............
      };
    }());

    利用闭包保存上下文

    for(var i=0;i<10;i++){
      (function(i){
        lis[i].onclick = function(){
          ..........
        };
      }(i))
    }

    合理利用apply

    var arr = [2,3];
    function add(a,b){
      console.log(a + b);
    }

    add.apply(null,arr); //5

    关于:for

    简写1:

    var arr = [2,3,4,5];

    for(var i=-1;(arr.length-1)>i++;){
      console.log(arr[i]);
    }

    var arr = [2,3,4,5];
    var i = -1;

    for(;(arr.length-1)>i++;){
      console.log(arr[i]);
    }

    简写2:

    var arr = [2,3,4,5];

    for(var i=0,c;c=arr[i++];){
      console.log(c);
    }

    空白

    var that = this; // 可以这样

    varthat = this; // 不可以这样

    varthat本身就会被当成是一个变量,没有人会知道你这是在声明一个变量,就好象如果你想要使用varthat而不是声明一样。


    数字

    javascript没有区分数字类型所以“ 1 和 1.0 ” 是一样的。

    对象属性

    在低版本浏览器中对象属性如果是保留字或者关键字必须加引号,不然会报错,并且使用的时候也必须通过[]来访问这个属性,在高版本浏览器中已经不存在这个问题。

    数组

    javascript并没有提供真正的数组而是通过对象提供了一种类似数组的结构。因此数组在大部分情况下和对象非常相似。

    因为数组也是对象我们也可以使用for in来遍历数组

    var arr = [2,3];

    for(var k in arr){
      console.log(k,arr[k]);
    }

    数组有一个length属性,这个length只包含数字,如果是其他的这个长度是不会包含进来的。比如:

    var arr = [2,3];

    arr.fn = function(){};

    这个fn是不会包含在length里面的

    只能这样

    var arr = [2,3];
    arr[5] = 10;

    console.log(arr.length);

    因此对象没有length属性也很正常。但是也说了数组就是对象,所以我们想让对象也实现数组的一些特性也是很正常不过的。

    因为设计的原因数组的类型也是Object所有给了我们不少小麻烦,不过我们可以自己实现一个。

    通过length = 0可以用来清空数组。

  • 相关阅读:
    arcgis pro加载其他数据
    ArcGIS Pro运行Python脚本
    获得ArcGIS Pro的版本
    ArcGIS Pro使用键盘控制地图平移
    ArcGIS Pro添加注记工具
    ArcGIS Pro二次开发添加网络图层
    ArcGIS Pro放大缩小按钮
    ArcGIS Pro做一个矩形选择按钮
    ArcGIS Pro获得一个图层的样式
    ArcGIS Pro二次开发闪烁对象
  • 原文地址:https://www.cnblogs.com/pssp/p/5799113.html
Copyright © 2011-2022 走看看