zoukankan      html  css  js  c++  java
  • javascript实用技巧、javascript高级技巧

    字号+作者:H5之家 来源:H5之家 2016-10-31 11:00 我要评论( )

    三零网提供网络编程、 JavaScript 的技术文章javascript实用技巧、javascript高级技巧给大家,希望大家喜欢,关键词javascript实用技巧、javascript高级技巧

     下面为各位大家介绍一下 javascript实用技巧、javascript高级技巧,感兴趣的小伙伴一起来看看吧。

    1、 使用===取代==
        ==和!=操作符会在需要的情况下自动转换数据类型。但===和!==不会,它们会同时比较值和数据类型,这也使得它们要比==和!=快。

    if("1"=="1"){ //速度慢

    }
    if ("1" === "1") { //速度快

    }
    if ("1" != "1") {//速度慢

    }
    if ("1" !== "1") {//速度快

    }

    2、underfined、null、0、false、NaN、空字符串 的逻辑结果均为 false

    3、从数组中随机获取成员

    var array=[12,55,'a',5,8,9,4,94,'fv'];
    var randomItem=array[Math.floor(Math.random() * array.length)];

    4、获取指定范围内的随机数

    var x=Math.floor(Math.random() * (max -min +1))+min;

    5、函数在创建之后直接自动执行,通常称之为自调用匿名函数(Self-Invoked Anonymous Function)或直接调用函数表达式(Immediately Invoked Function Expression )。格式如下:

    (function (){
    //自动执行代码
    })();

    (function (a,b){
    //自动执行代码
    })(4,9);

    6、数组之间追加

    var arrary1=[45,958,68,98,669,85,34];
    var arrary2=[7,54,8,54,57,9,77];
    Array.prototype.push.apply(arrary1,arrary2); //arrary1 的值为:[45,958,68,98,669,85,34,7,54,8,54,57,9,77]

    7、获取数组中的最大值和最小值

    var numbers=[46,4,68,89,87,84,49,16,89,9];
    var maxNumber=Math.max.apply(Math,numbers); //最大值
    var minNumber=Math.min.apply(Math,numbers); //最小值

    8、清空数组

    var array=[15,9,68,76];
    array.length=0;

    9、不要直接从数组中delete或remove元素,  如果对数组元素直接使用delete,其实并没有删除,只是将元素置为了undefined。数组元素删除应使用splice。 删除对象的属性时可以使用delete。

    arrayObject.splice(index,howmany,item1,.....,itemX)

    参数 描述

    index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。

    howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。

    item1, ..., itemX 可选。向数组添加的新项目。

    说明

    splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。

    如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。

    10、保留指定小数位数

    var num=2.9932858;
    num=num.toFixed(4); //num=2.9932

    11、 浮点计算的问题

     0.1+0.2等于0.30000000000000004。JavaScript的数字都遵循IEEE 754标准构建,在内部都是64位浮点小数表示,具体可以参见JavaScript中的数字是如何编码的。
    可以通过使用toFixed()和toPrecision()来解决这个问题。

    toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。

    NumberObject.toFixed(num)

    参数 描述

    num 必需。规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。

    返回值

    返回 NumberObject 的字符串表示,不采用指数计数法,小数点后有固定的 num 位数字。如果必要,该数字会被舍入,也可以用 0 补足,以便它达到指定的长度。如果 num 大于 le+21,则该方法只调用 NumberObject.toString(),返回采用指数计数法表示的字符串。

    抛出

    当 num 太小或太大时抛出异常 RangeError。0 ~ 20 之间的值不会引发该异常。有些实现支持更大范围或更小范围内的值。

    当调用该方法的对象不是 Number 时抛出 TypeError 异常。

    toPrecision() 方法可在对象的值超出指定位数时将其转换为指数计数法。

    NumberObject.toPrecision(num)

    参数 描述

    num 必需。规定必须被转换为指数计数法的最小位数。该参数是 1 ~ 21 之间(且包括 1 和 21)的值。有效实现允许有选择地支持更大或更小的 num。如果省略了该参数,则调用方法 toString(),而不是把数字转换成十进制的值。

    返回值

    返回 NumberObject 的字符串表示,包含 num 个有效数字。如果 num 足够大,能够包括 NumberObject 整数部分的所有数字,那么返回的字符串将采用定点计数法。否则,采用指数计数法,即小数点前有一位数字,小数点后有 num-1 位数字。必要时,该数字会被舍入或用 0 补足。

    抛出

    当 num 太小或太大时抛出异常 RangeError。1 ~ 21 之间的值不会引发该异常。有些实现支持更大范围或更小范围内的值。

    当调用该方法的对象不是 Number 时抛出 TypeError 异常。

    12、传给setInterval()和setTimeout()时使用函数而不是字符串

    //不要使用:
    setInterval("Fun_1()",200);
    setInterval("Fun_2()",200);
    //使用:
    setInterval(Fun_1,200);
    setInterval(Fun_2,200);

  • 相关阅读:
    钱多多软件制作04
    团队项目01应用场景
    HDU 4411 arrest
    HDU 4406 GPA
    HDU 3315 My Brute
    HDU 3667 Transportation
    HDU 2676 Matrix
    欧拉回路三水题 POJ 1041 POJ 2230 POJ 1386
    SPOJ 371 BOXES
    POJ 3422 Kaka's Matrix Travels
  • 原文地址:https://www.cnblogs.com/yangmengsheng/p/6019222.html
Copyright © 2011-2022 走看看