• js常用小技巧


    下面是js 的常用小技巧,持续更新中

    1,js跳出each循环

    在each 循环中 直接退出不执行下面的for循环中的东西 ,return false;

    2,函数写法

    在Javascript中定义一个函数,有两种写法:

      function foo() { }

      var foo = function () { }

    两种写法完全等价。但是在解析的时候,前一种写法会被解析器自动提升到代码的头部,因此违背了函数应该先定义后使用的要求,所以建议定义函数时,全部采用后一种写法。

    3,如何才能求出一个数组中的最大值呢

    哈哈遍历循环这是大家首先想到的,代码如下:

    function getMaxNum(arr){

     maxNum=0;

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

    maxNum=Math.max(maxNum,arr[i]);

    }

    return maxNum;

    }

    直接调用就可以了,

    当然还有下面的一个方法,直接上代码啦

    Math.max.apply(null, [1,23,3]);

    结果呢当然是23,自己试试,为什么不用Math.max这个函数呢,Math.max(1,23,3)  可以直接输出23,但是Math.max([1,23,2])输出的结果却是NAN,也就是说Math.max不能带数组,所以着了巧用了apply的一个小特性,

    4,Map的一些小用法(http://msdn.microsoft.com/zh-cn/library/ie/ff679976(v=vs.94).aspx)

    虽然MDN是个好东西,感觉msdn也不赖啊


    对数组的每个元素调用定义的回调函数并返回包含结果的数组

    现实中咱们会经常遇到这样的问题,比如说双十一到了,tm的东西都要打折,就是说所有的东西都半价,想想怎么实现呢,最完美的实现方法应该是操作数据库,但是比如说这些数据都保存在一个数组中怎么办呢,哈哈,这个是假设啊,想想几十亿调数据放在一个数组中得由多大呢,我们下面就帮tm的工程师实现下面的功能

    function getProductHalfPrice(price){

    var halfprice=price/2;

    return halfprice;

    }

    var price=[12,34,45,67];

    price.map(getProductHalfPrice)

    这样商品全部打半价了。

     5,break 和continue的常用方法

    看下面的例子,你知道结果是什么吗?

    function whatDoesItDo(){
        var values = [];
        myBlock: {
            values.push('1');
            values.push('2');
            break myBlock;
            values.push('3');
        }
        values.push('4');   
        return values.join(',');
    }

    结果是[1,2,4],为什么呢,下面我们就来看看break的一些用法:

    用法一:在循环中终止这个循环,直接跳出循环,这个循环不再执行,比如说

    var num=0;

    var numB=[1,2,3,4,5,6,7,8,9];

    for(var i=1;i<numB.length;i++){

    if(i%4==0){break;}

    num++;

    }

    num结果是3,在循环执行到i=4时不执行了,也就是num只被执行了3次

    用法二:通过标签引用直接可以跳出js相关的代码块:

    continue 语句(带有或不带标签引用)只能用在循环中。

    break 语句(不带标签引用),只能用在循环或 switch 中($.each(arr,function(index,value){})要跳出这个函数直接用return false就好了,break 用不了的)

    通过标签引用,break 语句可用于跳出任何 JavaScript 代码块:

    这就是可以解释刚开始的小例子了,下面再给大家看看一个break标签的小例子:

    car=[1,2,3,4];b=[];

    list:{b.push(car[0]);b.push(car[1]);break list;b.push(car[2]);b.push(car[3])}

    break 将直接跳出list这个标签下面的语句都不在执行

  • 相关阅读:
    ES查询直方图聚合区间结果min越界问题
    yarn命令操作
    Hve on Spark left join的hashTable问题
    基于HUE可视化的大数据权限管理
    Android 制作圆角阴影的卡片
    Android 解决问题“Failed to resolve: com.android.support:design:26.1.0”
    Android 修改虚拟键栏背景颜色
    ArrayList的传值问题
    swift 网络请求中含有特殊字符的解决方案
    Android适配器
  • 原文地址:https://www.cnblogs.com/huchaoheng/p/4047547.html
Copyright © 2020-2023  润新知