前言

总结一下最近接触到的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<nsArray.length;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

JavaScript实用技巧总结的更多相关文章

  1. javascript实用技巧、javascript高级技巧

    字号+作者:H5之家 来源:H5之家 2016-10-31 11:00 我要评论( ) 三零网提供网络编程. JavaScript 的技术文章javascript实用技巧.javascript高级技巧 ...

  2. 【JavaScript实用技巧(二)】Js操作DOM(由问题引发的文章改版,新人大佬都可)

    [JavaScript实用技巧(二)]Js操作DOM(由问题引发的文章改版,新人大佬都可!) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人 ...

  3. JavaScript 实用技巧和写法建议

    1.前言 从大学到现在,接触前端已经有几年了,感想方面,就是对于程序员而言,想要提高自己的技术水平和编写易于阅读和维护的代码,我觉得不能每天都是平庸的写代码,更要去推敲,去摸索和优化代码,总结当中的技 ...

  4. javascript实用技巧,js小知识

    一.js整数的操作 使用|0和~~可以将浮点转成整型且效率方面要比同类的parseInt,Math.round 要快,在处理像素及动画位移等效果的时候会很有用.性能比较见此. var foo = (1 ...

  5. Javascript实用技巧

    1. 给参数赋默认值 //通常写法 function dateRender(format){ if(format){ format = 'Y-m-d'; } // code } //强推 functi ...

  6. 41个Web开发者必须收藏的JavaScript实用技巧

    1. 将彻底屏蔽鼠标右键 oncontextmenu=”window.event.returnValue=false” < table border oncontextmenu=return(f ...

  7. JavaScript 实用技巧

    1数组中删除重复 let arr = [1,2,4,3,6,4] Array.from(new Set(arr)) // es6中 .from()[1,2,4,3,6] [...new Set(arr ...

  8. 12个十分实用的JavaScript小技巧

    12个非常实用的JavaScript小技巧 在这篇文章中将给大家分享12个有关于JavaScript的小技巧.这些小技巧可能在你的实际工作中或许能帮助你解决一些问题. 使用!!操作符转换布尔值 有时候 ...

  9. 实用Javascript调试技巧

    摘要: 高效调试JS代码. 原文:实用Javascript调试技巧分享 作者:MudOnTire Fundebug经授权转载,版权归原作者所有. 见过太多同学调试Javascript只会用简单的con ...

随机推荐

  1. 一个用php实现的获取URL信息的类

    获取URL信息的类 使用这个类,你能获得URL的如下信息: - Host  - Path  - Statuscode (eg. 404,200, ...)  - HTTP Version  - Ser ...

  2. java与微信企业号交互

    微信企业号接收消息(使用SpringMVC): http://blog.csdn.net/omsvip/article/details/39480577 微信企业号api: http://qydev. ...

  3. python sort和sorted的区别以及使用方法

    iteralbe指的是能够一次返回它的一个成员的对象.iterable主要包括3类: 第一类是所有的序列类型,比如list(列表).str(字符串).tuple(元组). 第二类是一些非序列类型,比如 ...

  4. usb host驱动

    参考 http://blog.csdn.net/star530/article/details/8019604

  5. AJAX向服务器发送请求

    使用 XMLHttpRequest 对象的 open() 和 send() 方法: 方法 描述 open(method,url,async) 规定请求的类型.URL 以及是否异步处理请求. metho ...

  6. (八) 一起学 Unix 环境高级编程 (APUE) 之 信号

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  7. (转) Lua使用心得一 LUA和VC整合

    这几天研究了一下lua,主要关注的是lua和vc之间的整合,把代码都写好放在VC宿主程序里,然后在lua里调用宿主程序的这些代码(或者叫接口.组件,随便你怎么叫),希望能用脚本来控制主程序的行为.这实 ...

  8. oracle学习-存储过程返回一个值,和返回一个结果集

    一.返回一个值 --创建存储过程 create or replace procedure sp_hu_test(spcode in varchar2,spname out varchar2)is be ...

  9. 应该了解的Python模块

    Python很优雅.使用以下模块有助于保持你的代码整洁.易于维护.欢迎补充. Docopt.忘了optparse和argparse吧,使用docstring来构建优雅的.高可读性.复杂(如果你有这个需 ...

  10. nop 添加字段

    一.Libraries 1.core 层------------实体字段 2.data-Map----------映射到数据库 二.Admin 1.Models  --------admin界面模型  ...