那些精彩的JavaScript代码片段


Posted in Javascript onJanuary 12, 2017

精彩的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+'秒';
}

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

Javascript 相关文章推荐
jQuery源码分析-04 选择器-Sizzle-工作原理分析
Nov 14 Javascript
JS实现淘宝幻灯片效果的实现方法
Mar 22 Javascript
实测jquery data()如何存值
Aug 18 Javascript
javascript生成随机数的方法
May 16 Javascript
jQuery中find()方法用法实例
Jan 07 Javascript
jQuery选择器总结之常用元素查找方法
Aug 04 Javascript
微信小程序 页面跳转和数据传递实例详解
Jan 19 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
Aug 17 Javascript
微信小程序实现即时通信聊天功能的实例代码
Aug 17 Javascript
基于vue+element实现全局loading过程详解
Jul 10 Javascript
详解vue中v-on事件监听指令的基本用法
Jul 22 Javascript
js调用网络摄像头的方法
Dec 05 Javascript
JavaScript实现星级评分
Jan 12 #Javascript
angular2倒计时组件使用详解
Jan 12 #Javascript
JavaScript中localStorage对象存储方式实例分析
Jan 12 #Javascript
利用VUE框架,实现列表分页功能示例代码
Jan 12 #Javascript
js中常用的Math方法总结
Jan 12 #Javascript
Vue数据驱动模拟实现4
Jan 12 #Javascript
移动端点击态处理的三种实现方式
Jan 12 #Javascript
You might like
微信支付开发教程(一)微信支付URL配置
2014/05/28 PHP
destoon实现首页显示供应、企业、资讯条数的方法
2014/07/15 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
2016/07/20 PHP
PHP实现根据密码长度显示安全条
2017/07/04 PHP
建议大家看下JavaScript重要知识更新
2007/07/08 Javascript
用JavaScript实现单继承和多继承的简单方法
2009/03/29 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
使用js检测浏览器的实现代码
2013/05/14 Javascript
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
jQuery使用prepend()方法在元素前添加内容用法实例
2015/03/26 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
Vuejs第十三篇之组件——杂项
2016/09/09 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
AngularJS双向绑定和依赖反转实例详解
2017/04/15 Javascript
JS中去掉array中重复元素的方法
2017/05/26 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
Angular 项目实现国际化的方法
2018/01/08 Javascript
利用Blob进行文件上传的完整步骤
2018/08/02 Javascript
详解如何模拟实现node中的Events模块(通俗易懂版)
2019/04/15 Javascript
es5 类与es6中class的区别小结
2020/11/09 Javascript
[02:11]2016国际邀请赛中国区预选赛全程回顾
2016/07/01 DOTA
python高手之路python处理excel文件(方法汇总)
2016/01/07 Python
python算法演练_One Rule 算法(详解)
2017/05/17 Python
python多线程并发实例及其优化
2019/06/27 Python
python 协程中的迭代器,生成器原理及应用实例详解
2019/10/28 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
STAY JAPAN台湾:预订日本民宿
2018/07/22 全球购物
施华洛世奇波兰官网:SWAROVSKI波兰
2019/06/18 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
《雕塑之美》教学反思
2014/04/24 职场文书
文明村镇申报材料
2014/05/06 职场文书
导盲犬小Q观后感
2015/06/11 职场文书
用python批量解压带密码的压缩包
2021/05/31 Python
python基于turtle绘制几何图形
2021/06/15 Python