zoukankan      html  css  js  c++  java
  • javascript的小技巧

    1.parseInt太小的数字会产生bug
    parseInt(0.00000000454); // 4
    parseInt(10.23); // 10

    2.计算

    1 + null// 1
    1 + undefined// NaN
    Number(null) // 0
    Number(undefined) // NaN

    3.实参arguments和形参会保持同步关系

    function test(a, b, c) {
    console.log(a, b, c); // 2, 3, undefined
    arguments[0] = 100;
    arguments[1] = 200;
    arguments[2] = 300;
    console.log(a, b, c); // 100, 200, undefined
    }
    test(2, 3);

    4.void是个固执的老头(跟谁都不沾亲)

    void0 === undefined// true
    void1 === undefined// true
    void {} === undefined// true
    void'hello' === undefined// true
    voidvoid0 === undefined// true

    5.try/catch/finally也有特定的执行顺序

    function fn1() {
    console.log('fn1');
    return1;
    }

    function fn2() {
    console.log('fn2');
    return2;
    }
    function getData() {
    try {
    thrownewError('');
    } catch (e) {
    return fn1();
    } finally {
    return fn2();
    }
    }

    console.log(getData());
    // 打印顺序: 'fn1', 'fn2', 2

    解析:在try/catch代码块中,如果碰到return xxyyzz;关键词,那么xxyyzz会先执行并把值放在临时变量里,接着去执行finally代码块的内容后再返回该临时变量。如果finally中也有return aabbcc,那么会立即返回新的数据aabbcc

    6.是否存在这样的变量x,使得它等于多个数字?
    const x = {
    value: 0,
    toString() {
    return ++this.value;
    }
    }

    x == 1 && x == 2 && x == 3;

    7.clearTimeout 和 clearInterval 可以互换使用吗
    var timeout = setTimeout(() =>console.log(1), 1000);
    var interval = setInterval(() =>console.log(2), 800);
    clearInterval(timeout);
    clearTimeout(interval);
    解析:YES。大部分浏览器都支持互相清理定时器,但是建议使用对应的清理函数。

    8.null是object类型,但又不是继承于Object,它更像一个历史遗留的bug。鉴于太多人在用这个特性,修复它反而会导致成千上万的程序出错。
    typeofnull === 'object'; // true
    Object.prototype.toString.call(null); // [object Null]
    nullinstanceofObject; // false

    8.数据超过了安全值就变得不安全了
    Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2; // true
    // 等价于
    2 ** 53 === 2 ** 53 + 1; // true

    9.+0 和 -0 是有区别的
    1/+0 === Infinity
    1/-0 === -Infinity

  • 相关阅读:
    信息探测
    Hdu 1262 寻找素数对
    Hdu 1263 水果
    Hdu 1261字串数
    Hdu 1253 胜利大逃亡
    Hdu 1237简单计算器
    Hdu 1235 统计同成绩学生人数
    Hdu 1236 排名
    Hdu 1233 还是畅通工程
    Hdu 1234 开门人和关门人
  • 原文地址:https://www.cnblogs.com/zhangyue690811/p/14410795.html
Copyright © 2011-2022 走看看