• 技术文章 >web前端 >js教程

    JavaScript常用小技巧小结_javascript技巧

    2016-05-16 16:23:41原创553
    前言

    总结一下最近接触到的JavaScript语法糖,与大家共享。

    每块糖都有详细的说明和示例,就不多说了。

    准确的类型检查

    复制代码 代码如下:

    /*
    * @function:
    * 类型检查示例
    * 通过此方法,可以检查某个变量是否为期望的数据类型
    * @params:
    * obj 需要检查的变量,必选
    * config 数据类型白名单,可选,默认为全部类型
    * @return:
    * true 表示检查通过,false 未通过
    * @examples:
    * typeCheck("str"); //return true
    * typeCheck({},{"[object Array]": 1}); //return false
    */
    function typeCheck(obj,config){
    var hasOp = Object.prototype.hasOwnProperty,
    toStr = Object.prototype.toString,
    _config = config || {
    "[object Object]": 1,
    "[object Array]": 1,
    "[object Regex]": 1,
    "[object String]": 1,
    "[object Number]": 1,
    "[object Boolean]": 1,
    "[object Function]": 1,
    "[object Undefined]": 1,
    "[object Null]": 1
    };

    return hasOp.call(_config,toStr.call(obj));
    }

    优雅的添加原型方法

    复制代码 代码如下:

    /*
    * @description:
    * 优雅的添加原型方法
    * 在公共作用域执行此代码片段即可
    */
    if(typeof Function.prototype.method !== "function") {
    Function.prototype.method = function(name,fn){
    this.prototype[name] = fn;
    return this;
    };
    }
    /*
    * 使用示例
    */
    //定义一个“测试类”
    function testFn(){
    }
    //添加测试类的成员方法
    testFn.method("add",function(a,b){
    return a + b;
    }).method("sub",function(a,b){
    return a - b;
    });
    //实例化
    var testObj = new testFn();
    //调用成员方法
    testObj.add(1,5); //return 6
    testObj.sub(7,2); //return 5

    快捷创建命名空间

    复制代码 代码如下:

    /*
    * @function:
    * 创建命名空间
    * @params:
    * ex 命名空间表达式,例如:NSROOT.service.impl
    * 此表达式必须从根节点开始写起
    * @return:
    * 返回Object,此Object是表达式的最后一个节点
    * @others:
    * 如果您不喜欢NSROOT这个命名,简单的查找替换即可
    */
    var NSROOT = NSROOT || {};
    NSROOT.namespace = function(ex){
    var _ex = ex || "",
    nsArray = _ex.split("."),
    parentNode = NSROOT,
    _s = "",
    i = 0;
    //判断命名空间是否从根节点开始
    if(nsArray[0] !== "NSROOT"){
    throw("命名空间必须从根节点开始!");
    }
    //去掉root节点
    nsArray = nsArray.slice(1);
    for(i = 0;i _s = nsArray[i];
    if(parentNode[_s] === undefined){
    parentNode[_s] = {};
    }
    parentNode = parentNode[_s];
    }
    return parentNode;
    };
    /*
    * 使用示例
    */
    //创建新的命名空间
    var impl = NSROOT.namespace("NSROOT.service.impl");
    alert(impl === NSROOT.service.impl); //return true
    //创建已有的命名空间,不覆盖原来的数据
    NSROOT.namespace("NSROOT.service.impl");
    alert(impl === NSROOT.service.impl); //return true
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:JavaScript 小技巧
    上一篇:深入分析原生JavaScript事件_基础知识 下一篇:小米公司JavaScript面试题_javascript技巧
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 深入了解Node的模块机制,聊聊模块实现流程• angular学习之详解状态管理器NgRx• JavaScript字符串常见基础方法精讲• angular学习之浅析HttpClientModule模块• JavaScript高级语法学习之严格模式
    1/1

    PHP中文网