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这个标签下面的语句都不在执行

原文地址:https://www.cnblogs.com/huchaoheng/p/4047547.html