全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

那些精彩的JavaScript代码片段

精彩的JavaScript代码片段,分享给大家

1.根据给定的条件在原有的数组上,得到所需要的新数组

var a = [-1, -1, 1, 2, -2, -2, -3, -3, 3, -3];
function f(s, e) {
  var ret = [];
  for (var i in s) { // 根据原有的数组长度进行循环
    ret.push(e(s[i]));
  }
  return ret;
}
f(a, function(n) {
  return n > 0 ? n : 0
}); // 传输一个匿名函数作为逻辑判断

2.比原生type或typeof更详细的类型监测方法

function type(p) {
  /function.(\w*)\(\)/.test(p.constructor); //通过其构造函数来获取对应的类型。
  return RegExp.$1;
}

3.对象或数组的深拷贝,用于解决对象引用时值一改全改的问题。

var copyObject = function(obj) {
  var result = {};
  for (var x in obj) {
    result[x] = typeof obj === "object" ? copyObject(obj[x]) : obj[x]
    //如果拷贝的值仍然是一个对象,那么重复执行当前方法。
  }  
  return result;
}

4.通过正则表达式来获取Cookie的值

function getCookie(name) {
  if (name && RegExp("(^| )" + name + "=([^;]*)(;|$)").exec(document.cookie)) return RegExp.$2;
  // (^| ) 不匹配第一个空格。
  // ([^;]*) 只匹配除了;号之外的所有字符。
  // (;|$) 匹配以;号或$为结尾的字符。
}

5.通过移位运算来替代”parseInt”

~~3.14 = > 3;

// ~~ 取整。~取当前数值的反码,~~表示再次取反,也就是得到当前自身(说明,JS中的“位”运算会将数值自动转换为整数)

6.将数值转换为16进制的字符串(常用于表示色彩)

(~~ (Math.random() * (1 << 24))).toString(16)

// ~~ 通过位运算来取整。
// << 左移位。将1的二进制数左移24位。而1<<24 == 2^24(RGB模式下最多可表示的色彩数量)
// toString(16) 将数值转换为16进制的字符串输出。

7.对象方法的兼容性检查

if ('querySelector' in document) {}

8.NodeList || HTMLCollection || Object转换为Array或具有Array的方法

NodeList: 是指通过集合方法获得到的DOM节点列表,例如:document.getElementsByTagNmae,document.forms…等方法。
HTMLCollection: HTML块,它与NodeList很像,但是NodeList只支持数字索引,而HTMLCollection可以支持名称作为索引。
NodeList与HTMLCollection都具有以下类似: 具有数组的外观,但没有数组的方法 、具有length属性、支持索引来读取内容

function makeArray(obj) {
  var rs = [],
    len = obj.length;
  try {
    rs = [].slice.call(obj, 0);
  } catch (e) { //for IE
    for (var i = 0; j = obj[i++];) {
      rs.push(j);
    }
  }
  return rs;
}

9. 正则匹配清除两侧空格

var trim = function(v){
  var patrn = /^\s*(.*?)\s+$/;
  return (patrn.test(v))? RegExp.$1 : '
  null ';
}

10. 时间格式化

function dateFormat(t){    // t 是以秒为单位的值。
  var h = ~~(t/3600),    // t除以3600,取整,得到的就是小时。
    m = ~~(t%3600/60),  // t求余3600,取模,得到的就是去除小时剩下的秒数(分钟 + 秒),再除以60,取整,得到的就是分钟。
    s = ~~(t%3600%60);  // t求余3600,再求余60,剩下的自然就是“秒数”。
 
   return h+'小时'+m+'分'+s+'秒';
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# js代码片段  # js时间格式化  # javascript代码片段  # 工作中常用的js、jquery自定义扩展函数代码片段汇总  # 15个非常实用的JavaScript代码片段  # 你一定会收藏的Nodejs代码片段  # JavaScript的漂亮的代码片段  # JS跨域代码片段  # JavaScript和JQuery实用代码片段(一)  # 总结AJAX相关JS代码片段和浏览器模型  # 一段非常简单的让图片自动切换js代码  # 一段超强的javascript代码解密方法  # 一起来写段JS drag拖动代码  # 转换为  # 是一个  # 第一个  # 最多  # 是指  # 给大家  # 会将  # 所需要  # 很像  # 它与  # 配以  # 大家多多  # 但没  # 不匹配  # 二进制数  # 模式下  # 在原有  # 正则表达式  # obj  # copyObject 


相关文章: 番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  如何选择域名并搭建高效网站?  如何快速搭建高效服务器建站系统?  如何用免费手机建站系统零基础打造专业网站?  如何用PHP工具快速搭建高效网站?  建站之星如何助力网站排名飙升?揭秘高效技巧  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  视频网站app制作软件,有什么好的视频聊天网站或者软件?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  如何构建满足综合性能需求的优质建站方案?  大连网站设计制作招聘信息,大连投诉网站有哪些?  制作网站的模板软件,网站怎么建设?  如何在建站宝盒中设置产品搜索功能?  视频网站制作教程,怎么样制作优酷网的小视频?  如何选择可靠的免备案建站服务器?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  三星网站视频制作教程下载,三星w23网页如何全屏?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  建站之星备案是否影响网站上线时间?  如何用花生壳三步快速搭建专属网站?  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  如何通过远程VPS快速搭建个人网站?  Swift中swift中的switch 语句  如何获取免费开源的自助建站系统源码?  如何在阿里云虚拟服务器快速搭建网站?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  如何在万网自助建站平台快速创建网站?  建站之星展会模版如何一键下载生成?  制作网站公司那家好,网络公司是做什么的?  公司门户网站制作流程,华为官网怎么做?  西安专业网站制作公司有哪些,陕西省建行官方网站?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  建站之星图片链接生成指南:自助建站与智能设计教程  一键网站制作软件,义乌购一件代发流程?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  建站三合一如何选?哪家性价比更高?  如何在阿里云香港服务器快速搭建网站?  如何在Windows服务器上快速搭建网站?  如何快速搭建高效香港服务器网站?  湖北网站制作公司有哪些,湖北清能集团官网?  如何在香港免费服务器上快速搭建网站?  南宁网站建设制作定制,南宁网站建设可以定制吗?  ,有什么在线背英语单词效率比较高的网站?  C#如何序列化对象为XML XmlSerializer用法  ,制作一个手机app网站要多少钱?  网站制作话术技巧,网站推广做的好怎么话术? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。