那些精彩的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中this的使用说明
Sep 06 Javascript
JavaScript 小型打飞机游戏实现原理说明
Oct 28 Javascript
利用jQuery接受和处理xml数据的代码(.net)
Mar 28 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
Nov 13 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
Jan 26 Javascript
node.js Web应用框架Express入门指南
May 28 Javascript
浅析AngularJS Filter用法
Dec 28 Javascript
JavaScript+html5 canvas实现图片破碎重组动画特效
Feb 22 Javascript
JS封装的自动创建表格的实现代码
Jun 15 Javascript
js实现右键菜单功能
Nov 28 Javascript
jQuery设置和获取select、checkbox、radio的选中值方法
Jan 01 Javascript
JS使用正则表达式实现常用的表单验证功能分析
Apr 30 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
php 防止单引号,双引号在接受页面转义
2008/07/10 PHP
PHP 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
PHP __autoload函数(自动载入类文件)的使用方法
2012/02/04 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
IE6不能修改NAME问题的解决方法
2010/09/03 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
jQuery函数的等价原生函数代码示例
2013/05/27 Javascript
window.opener用法和用途实例介绍
2013/08/19 Javascript
php的文件上传入门教程(实例讲解)
2014/04/10 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
JavaScript中exec函数用法实例分析
2015/06/08 Javascript
基于jquery实现ajax无刷新评论
2020/08/19 Javascript
微信小程序 保留小数(toFixed)详细介绍
2016/11/16 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
微信小程序中实现手指缩放图片的示例代码
2018/03/13 Javascript
微信小程序js文件改变参数并在视图上及时更新【推荐】
2018/06/11 Javascript
Vue源码解读之Component组件注册的实现
2018/08/24 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
2019/04/14 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
2019/09/18 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
Python 序列的方法总结
2016/10/18 Python
Python实现将json文件中向量写入Excel的方法
2018/03/26 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
阿联酋团购网站:Groupon阿联酋
2016/10/14 全球购物
英国版MAC彩妆品牌:Illamasqua
2018/04/18 全球购物
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
大学生个人事迹材料
2014/01/21 职场文书
行政专员岗位职责说明书
2014/07/30 职场文书
群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
2016年感恩教师节校园广播稿
2015/12/18 职场文书
Django展示可视化图表的多种方式
2021/04/08 Python