文档章节

js学习笔记

z
 zxl911400
发布于 2016/12/05 15:12
字数 739
阅读 0
收藏 0
点赞 0
评论 0

///////////////////////////////////////////
/*global*/
/////////////////////////////////////
//lurk.Dom.append(lurk.Dom.query('head', true) || document.documentElement, 'script').text = res.responseText;
/**
 * 根据方法名获取方法
 */
function getFunction(func)
{
  if(func.isFunction())
    return func;
  return new Function(func + "()");
}
/**
 * 设置方法为不可枚举类型
 * @param objs
 */
hideFunctions = function(objs) {
  var i = 0, p;
  for (; i < objs.length; i++) {
    p = objs[i].prototype;
    for ( var o in p) {
      if (p[o].isFunction()) {
        Object.defineProperty(p, o, {
          enumerable: false
        });
      }
    }
  }
}
// /////////////////////////////////////
/* Date 扩展 */
// ////////////////////////////////////
/**
 * 判断指定值是否是数组
 * 
 * @return 如果是数组,返回true
 * 
 */
Object.prototype.isArray = function() {
  return Array.isArray(this);
}
/**
 * 判断指定值是否是字符串
 * 
 * @return 如果是字符串,返回true
 * 
 */
Object.prototype.isString = function() {
  return typeof this == 'string';
};
/**
 * 判断指定值是否是数字
 * 
 * @return 如果是数字,返回true
 * 
 */
Object.prototype.isNumber = function() {
  return typeof this == 'number';
};
/**
 * 判断指定值是否是函数
 * 
 * @return 如果是函数,返回true
 * 
 */
Object.prototype.isFunction = function() {
  return typeof this == 'function';
};

/**
 * 判断是否是日期
 * @param value
 * @returns {Boolean}
 */
Object.prototype.isDate = function(value)
{
  return typeof this == 'date';
}

/**
 * 
 * @returns
 */
Object.prototype.clone = function()
{
  var me = this, o;
  o = (me.isString() || me.isNumber) && me;
  if(o) return o;
  o = me.isArray() && [];
  o = !o && {};
  for(var k in me){
    (o[k] = me[k]);
  };
  return o;
}
// /////////////////////////////////////
/* Date 扩展 */
// ////////////////////////////////////
Date.prototype.format = function(fmt) {
  var d = this, f = fmt, k;
  var o = {
    "M+": d.getMonth(),
    "d+": d.getDate(),
    "h+": d.getHours(),
    "m+": d.getMinutes(),
    "s+": d.getSeconds(),
    "S": d.getMilliseconds()
  }
  if (/(y+)/.test(f)) {
    f = f.replace(RegExp.$1, d.getFullYear());
  }
  for (k in o) {
    if (new RegExp("(" + k + ")").test(f)) {
      f = f.replace(RegExp.$1, ((k === 'S' ? "000" : '00') + o[k]).substr(("" + o[k]).length));// ms值为三位数
    }
  }
  return f;
}
Date.prototype.formatDate = function() {
  return this.format('y-M-d');
}
Date.prototype.formatDateTime = function() {
  return this.format('y-M-d h:m:s');
}
// ///////////////////////////////////////////////////
/* Number扩展方法 */
// /////////////////////////////////////////////
/**
 * 格式化日期
 * 
 * @param time
 *          Date对象或者毫秒值
 * @param fmt
 *          返回日期格式,Example: 'yyyy-MM-dd hh:mm:ss' or 'y-M-d h:m:s'
 * @return 日期格式的文本,Example: '2016-01-01 19:00:00'
 */
Number.prototype.formatDate = function(fmt) {
  return new Date(this).format(fmt);
}
/**
 * 格式化货币
 * 
 * @return 货币格式的文本,Example: '1,000,000.00'
 */
Number.prototype.formatCurrency = function() {
  var n = this.toFixed(2) + "", r = /(\d)(\d{3}[\.,])/;
  while (r.test(n))
    n = n.replace(r, "$1,$2");
  return n;
}
/**
 * 格式化字节大小
 * 
 * @param size
 *          字节大小
 * @return 格式后文本,Example: '1.03 GB','430 Byte(s)',etc.
 */
Number.prototype.formatByteSize = function() {
  var v = ["Byte(s)", "KB", "MB", "GB"], i = 0, s = this;
  while (s > 1024 && i < 4) {
    s = s / 1024;
    i++;
  }
  return (i ? s.toFixed(2) : s) + " " + v[i];
}
/**
 * 舍弃指定精度后的小数,对保留的末位数字舍入
 * 
 * @parem precision 要保留的小数位数
 * @return 结果值
 */
Number.prototype.roundUp = function(precision) {
  return Math.ceil(this * Math.pow(10, precision)) / Math.pow(10, precision);
}
/**
 * 舍弃指定精度后的小数
 * 
 * @parem precision 要保留的小数位数
 * @return 结果值
 */
Number.prototype.roundDown = function(precision) {
  return Math.floor(this * Math.pow(10, precision)) / Math.pow(10, precision);
}
// ///////////////////////////////////////////////////
/* String扩展方法 */
// /////////////////////////////////////////////
/**
 * 将日期格式的文本解析为时间值 Example:'2016-01-01'
 * 
 * @return 毫秒值
 */
String.prototype.parseDate = function() {
  return new Date(this.replace(/[^0-9/\s+:]/g, '/')).getTime();
}
/**
 * 判断文本是否含指定前缀
 * 
 * @param prefix
 * @return 如果包含指定前缀,返回true
 */
String.prototype.startWith = function(prefix) {
  return this.indexOf(prefix) == 0
}
/**
 * 判断文本是否含指定后缀
 * 
 * @param suffix
 * @return 如果包含指定后缀,返回true
 */
String.prototype.endWith = function(suffix) {
  return new RegExp(suffix + '$').test(this);
}
/**
 * 去除文本前后空白字符(如:空格、TAB字符等)
 * 
 * @param prefix
 * @return 结果字符串
 */
String.prototype.trim = function() {
  return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
}
// ///////////////////////////////////////////////////
/* Array扩展方法 */
// /////////////////////////////////////////////
Array.prototype.insert = function(index, items) {
  var i = items.isArray() ? items : [items];
  i.unshift(index, 0);
  this.splice.apply(this, i);
  return this;
}

///////////////////////////////////////////////////
/*隐藏自定义属性,不被for in 枚举*/
//////////////////////////////////////////////////
hideFunctions([Object, Date, Number, String, Array]);

© 著作权归作者所有

共有 人打赏支持
z
粉丝 0
博文 2
码字总数 956
作品 1
成都
高级程序员

暂无文章

Iterm2安装Zsh + Oh My Zsh+Solarized

安装Oh My Zsh curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh 安装Zsh: 1.安装zsh brew install zsh 2.配置iterm2 sudo vim /etc/shells输入:......

孟飞阳
9分钟前
0
0
缓解ddos攻击的有效解决办法

因为防火墙无法处理所有类型的ddos攻击,下一代防火墙生成内置的DDoS防御,但是无法处理所有类型的攻击。对抗DDoS攻击的最佳做法是有专属的设备或者服务在攻击透过防火墙或者其他的IT基础设施...

上树的熊
10分钟前
0
0
Spark Streaming如何使用checkpoint容错

在互联网场景下,经常会有各种实时的数据处理,这种处理方式也就是流式计算,延迟通常也在毫秒级或者秒级,比较有代表性的几个开源框架,分别是Storm,Spark Streaming和Filnk。 伦理片 http...

刺猬一号
11分钟前
1
0
Xamarin Essentials教程地理定位Geolocation

Xamarin Essentials教程地理定位Geolocation 通过地理定位功能,应用程序可以获取用户的当前地理位置,如经纬度值。利用地理位置,可以在地图上定位,也可以转化物理位置,划分用户的归属地。...

大学霸
24分钟前
0
0
vue 编译警告 Compiled with 4 warnings

There are multiple modules with names that only differ in casing. This can lead to unexpected behavior when compiling on a filesystem with other case-semantic. Use equal casing.......

落雪飞声
28分钟前
0
0
开篇文章,长期记录安全情形

密码位置 密码位于注释中 密码位于服务器端文件中 通过访问根目录下.htaccess、robots.txt查看禁查路径 密码文件可能存在的路径:/、/extra/、/extras/ 密码加密 binary to base16 sha256 彩虹...

hirainn
41分钟前
0
0
mysql数据库设置root可以远程登录的方法

mysql数据库设置root可以远程登录的方法 Posted on 2018-02-21 21:08 sishuisufeng 阅读(161) 评论(0) 编辑 收藏 允许root用户在任何地方进行远程登录,并具有所有库任何操作权限,具体操作如...

rootliu
46分钟前
1
0
TensorFlow 图的基本操作

图的创建,一般只需要使用默认图就能满足大部分的需求了 # 1 创建图的方法# 在默认图中创建常量c = tf.constant(0.0)# 新建一个图g = tf.Graph()# 设置上下文管理器,标明操作...

阿豪boy
今天
0
0
git 忽略文件失效

git update-index --assume-unchanged */.project

林子大鸟
今天
1
0
实现验证码功能

1、实现验证码,并存储 import com.dtb.pc_enterprise.entity.EnterUserEntity;import com.dtb.pc_enterprise.service.AdminService;import com.dtb.pc_enterprise.util.RedisService;......

木九天
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部