JavaScript实用技巧总结
前言
总结一下最近接触到的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实用技巧总结的更多相关文章
- javascript实用技巧、javascript高级技巧
字号+作者:H5之家 来源:H5之家 2016-10-31 11:00 我要评论( ) 三零网提供网络编程. JavaScript 的技术文章javascript实用技巧.javascript高级技巧 ...
- 【JavaScript实用技巧(二)】Js操作DOM(由问题引发的文章改版,新人大佬都可)
[JavaScript实用技巧(二)]Js操作DOM(由问题引发的文章改版,新人大佬都可!) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人 ...
- JavaScript 实用技巧和写法建议
1.前言 从大学到现在,接触前端已经有几年了,感想方面,就是对于程序员而言,想要提高自己的技术水平和编写易于阅读和维护的代码,我觉得不能每天都是平庸的写代码,更要去推敲,去摸索和优化代码,总结当中的技 ...
- javascript实用技巧,js小知识
一.js整数的操作 使用|0和~~可以将浮点转成整型且效率方面要比同类的parseInt,Math.round 要快,在处理像素及动画位移等效果的时候会很有用.性能比较见此. var foo = (1 ...
- Javascript实用技巧
1. 给参数赋默认值 //通常写法 function dateRender(format){ if(format){ format = 'Y-m-d'; } // code } //强推 functi ...
- 41个Web开发者必须收藏的JavaScript实用技巧
1. 将彻底屏蔽鼠标右键 oncontextmenu=”window.event.returnValue=false” < table border oncontextmenu=return(f ...
- 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 ...
- 12个十分实用的JavaScript小技巧
12个非常实用的JavaScript小技巧 在这篇文章中将给大家分享12个有关于JavaScript的小技巧.这些小技巧可能在你的实际工作中或许能帮助你解决一些问题. 使用!!操作符转换布尔值 有时候 ...
- 实用Javascript调试技巧
摘要: 高效调试JS代码. 原文:实用Javascript调试技巧分享 作者:MudOnTire Fundebug经授权转载,版权归原作者所有. 见过太多同学调试Javascript只会用简单的con ...
随机推荐
- 一个用php实现的获取URL信息的类
获取URL信息的类 使用这个类,你能获得URL的如下信息: - Host - Path - Statuscode (eg. 404,200, ...) - HTTP Version - Ser ...
- java与微信企业号交互
微信企业号接收消息(使用SpringMVC): http://blog.csdn.net/omsvip/article/details/39480577 微信企业号api: http://qydev. ...
- python sort和sorted的区别以及使用方法
iteralbe指的是能够一次返回它的一个成员的对象.iterable主要包括3类: 第一类是所有的序列类型,比如list(列表).str(字符串).tuple(元组). 第二类是一些非序列类型,比如 ...
- usb host驱动
参考 http://blog.csdn.net/star530/article/details/8019604
- AJAX向服务器发送请求
使用 XMLHttpRequest 对象的 open() 和 send() 方法: 方法 描述 open(method,url,async) 规定请求的类型.URL 以及是否异步处理请求. metho ...
- (八) 一起学 Unix 环境高级编程 (APUE) 之 信号
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- (转) Lua使用心得一 LUA和VC整合
这几天研究了一下lua,主要关注的是lua和vc之间的整合,把代码都写好放在VC宿主程序里,然后在lua里调用宿主程序的这些代码(或者叫接口.组件,随便你怎么叫),希望能用脚本来控制主程序的行为.这实 ...
- oracle学习-存储过程返回一个值,和返回一个结果集
一.返回一个值 --创建存储过程 create or replace procedure sp_hu_test(spcode in varchar2,spname out varchar2)is be ...
- 应该了解的Python模块
Python很优雅.使用以下模块有助于保持你的代码整洁.易于维护.欢迎补充. Docopt.忘了optparse和argparse吧,使用docstring来构建优雅的.高可读性.复杂(如果你有这个需 ...
- nop 添加字段
一.Libraries 1.core 层------------实体字段 2.data-Map----------映射到数据库 二.Admin 1.Models --------admin界面模型 ...