zoukankan      html  css  js  c++  java
  • JavaScript tips and tricks 1

    Produce boolean value from other types
    All objects in JavaScript can be converted to boolean implicitly, look at these examples:

    0 == false; // true
    1 == true; // true
    '' == false // true
    null == false // true
    

    but these values are not the type of boolean.
    Therefore if we compare empty string with false, the result is false:

    0 === false; // false
    1 === true; // false
    '' === false // false
    null === false // false
    

    Now, the problem is how to generate boolean values from other types:

    !!0 === false; // true
    !!1 === true; // true
    !!'' === false // true
    !!null === false // true
    

    pretty cool!

    Initialize default value
    JavaScript doesn’t have the overload feature of other object-oriented languages.
    But the arguments of JavaScript function are optional, missed arguments are passed in with the value of undefined:

    function plus(base, added) {
        return base + added;
    }
    plus(2); // NaN
    

    In this example, plus(2) is the same as plus(2, undefined), the result of 2 + undefined is NaN.

    Now the question is how to set the default value of the argument added:

    function plus(base, added) {
        added = added || 1;
        return base + added;
    }
    plus(2); // 3
    plus(2, 2); // 4
    

    Prevent your page from loading in frames
    If your site become famous, other people or feed aggregator may embed your page in there site with their interface. This most likely to steal data.

    Now it’s time to prevent this action:

    if(top !== window) {
    	top.location.href = window.location.href;
    }
    

    This piece of JavaScript code should be put in the head section of all your pages.

    Replace string
    The String.prototype.replace method always suprise somebody who are familar with C# or Java.
    Consider this code for example:

    'Hello world, hello world'.replace('world', 'JavaScript');
    // The result is "Hello JavaScript, hello world"
    

    The first parameter of replace is a Regular Expression.
    If it’s presented as a string, only the first found string will be replaced.

    To solve this problem, we must use Regular Expression in JavaScript like this:

    'Hello world, hello world'.replace(/world/g, 'JavaScript');
    // The result is "Hello JavaScript, hello JavaScript"
    

    Also, we can specify to ignore case when replace string:

    'Hello world, hello world'.replace(/hello/gi, 'Hi');
    // The result is "Hi world, Hi world"
    

    Transform the arguments object into an array
    Arguments variable that exist in function is a built-in, array-like object.
    It’s weird that the arguments has length properties, but doen’t support slice, push, sort, etc.

    Now it’s the show time to convert this fake array to a real array:

    function args() {
    return [].slice.call(arguments, 0);
    }
    args(2, 5, 8); // [2, 5, 8]
    
  • 相关阅读:
    【数据结构】算法 Invert Binary Tree 翻转二叉树
    雪碧图
    闭包
    正则那些事
    JS添加,删除表格中的行那些事
    三目运算
    10个不能重复的随机数要求为55-109的整数, 要将10个随机数打印出来,并且将10个随机数里面能够被5整除的数打印出来,最后将能够被5整除的数叠加的结果打印出来
    输出从小到大排序好的五个不重复的随机整数,范围[10-23)。努力的人全世界都为你让路!你的努力终将美好!
    随机取10个在55-80之间的数,按照从小到大排序输出,冒泡排序
    求10个随机数,随机数要求为25-99的整数.能够被3整除的数
  • 原文地址:https://www.cnblogs.com/sanshi/p/1454900.html
Copyright © 2011-2022 走看看