超实用 JS 代码段笔记(一)
序1:30段简单代码段(有删减)
1 . 区分 IE 和 非 IE 浏览器
if(!+[1,]){
console.log('ie浏览器');
}else{
console.log('非ie浏览器');
}
2. 将日期直接转换为数值。

3. 最简单的选择运算符 ||
var a = 0 || 3;
console.log(3);

4. 单链式运算 ( 如:a++ - 1 )
var a = 10;
console.log(a++ - 1); // 先执行 a - 1, 在执行 a = a + 1

5. 跳转至新页面,并且保证浏览器不会在回退。
// 一开始我打开的是 baidu , 使用 location.repalce 跳转之后浏览器返回不到百度了。
location.replace('http://www.wiz.cn');

6. 验证是否为负数的正则表达式
/^-\d+$/.test(num);

7. 用 JS 打印页面, window.print() 属于浏览器内置的 API
window.print();
8. 把一个值转换成 布尔型值的最简单方式, 使用 " ! " 操作符两次,可以把一个值转换为布尔类型
!! 'demo'; // true
!!''; // false
!!'0' // true
!!{} // true
9. 判断浏览器是否支持 HTML5, 在 HTML5 中 navigator.geolocation; 可以获取当前设备的位置,通过 双 "!" 就可以判断是否支持此 API, 即是否支持 HTML5
!!navigator.geolocation;

10. 判断浏览器是否支持 Canvas
function isCanvas(){
return !!document.createElement('canvas').getContext;
}
isCanvas();

11. 判断浏览器版本
window.navigator.appVersion;

12. 实现对 Windows、Mac、Linux、UNIX 操作系统的判断
var osType="",
windows = (navigator.userAgent.indexOf("Windows", 0) != -1) ? 1 : 0,
mac = (navigator.userAgent.toLowerCase().indexOf("mac", 0) != -1) ? 1 : 0,
linux = (navigator.userAgent.indexOf("Linux", 0) != -1) ? 1 : 0,
unix = (navigator.userAgent.indexOf("X11", 0) != -1) ? 1 : 0; if(windows) osType = "Windows";
else if(mac) osType = "Mac";
else if(linux) osType = "Linux";
else if(unix) osType = "UNIX"; console.log(osType);

13. 使用原生 JS 判断是否是移动设备浏览器
var mobileReg = /iphone|ipad|android.*mobile|windows.*phone|blackberry.*mobile/i;
if(mobileReg.test(window.navigator.userAgent.toLowerCase())){
console.log('移动设备');
}else{
console.log('非移动设备');
}

2. 常用代码段收集
超实用 JS 代码段笔记(一)的更多相关文章
- 超实用js代码段一
1: 过滤首尾空格trim.2:过滤左边空格ltrim 3:过滤右边空格 一:用正则方法写成三个函数. <script type="text/javascript" ...
- 我们为什么要看《超实用的Node.JS代码段》
不知道自己Node.JS水平如何?看这张图 如果一半以上的你都不会,必须看这本书,一线工程师用代码和功能页面来告诉你每一个技巧点. 都会一点,但不知道如何检验自己,看看本书提供的面试题: 1. ...
- 《超实用的Node.js代码段》连载三:Node.js深受欢迎的六大原因
<超实用的Node.js代码段>连载一:获取Buffer对象字节长度 <超实用的Node.js代码段>连载二:正确拼接Buffer Node.js是一种后起的优秀服务器编程语言 ...
- 实用的JS代码段(表单篇)
整理了下比较实用的Javascript代码段,完整的代码参考 1 多个window.onload方法 由于onload方法时在页面加载完成后,自动调用的.因此被广泛的使用,但是弊端是只能实用onloa ...
- 《超实用的Node.js代码段》连载二:正确拼接Buffer
对于初学Node.js框架的开发人员来说,可能认为Buffer模块比较易学.重要性也不是那么突出.其实,Buffer模块在文件I/O和网络I/O中应用非常广泛,其处理二进制的性能比普通字符串性能要高出 ...
- 《超实用的Node.js代码段》连载一:获取Buffer对象字节长度
我们知道Node.js框架下的Buffer对象能够对二进制数据提供很好的支持,那么获取一个Buffer对象真实的字节长度则是必须要用到的功能了.Node.js框架为开发人员提供了一个Buffer.by ...
- JS代码段:返回yyyy-mm-dd hh:mm:ss
最近做项目的时候正好用到,本着能抄就抄的心态去百度搜索现成的代码, 没想到抄下来的好几个都是错的,要么getMonth没有加1,要么10以下的数字前面没有加0, 我真是日了狗了,这次把写好的正确的直接 ...
- 验证表单的js代码段
JS常用功能 转载自:http://blog.csdn.net/kalision/article/details/12516103 引用js文件: <script src="js/d ...
- 实际项目中积累的一些关于事件的简单应用JS代码段(能力有限,不喜轻喷,23333)
1:鼠标移入移出显示另一张图片 var yuanquan_1 = document.getElementById("yuanquan_1" ); yuanquan_1. onmo ...
随机推荐
- Slide-out Sidebar Menu
IOS学习之路十(仿人人滑动菜单Slide-out Sidebar Menu) 2013-09-03 22:13 by lixingle, 270 阅读, 0 评论, 收藏, 编辑 最近滑动菜单比较流 ...
- MyEclipse修改默认的workspace路径
在此只提供一个自己认为可行的办法(已验证可行) 已MyEclipse8.5为例 打开安装路径C:\Program Files\Genuitec\MyEclipse 8.5\configuration下 ...
- Web软件开发工具WebBuilder试用手记
最近公司在使用WebBuilder做项目开发,感觉很不错. 官方主页在这里:http://www.putdb.com/ 可以看到,这货不仅能使用可视化的方式拖拽出界面,还能直接在页面上完成数据库相关的 ...
- Oracle PLSQL笔记(过程的创建和及调用)
过程(procedure): 用于在数据库中完成特定的操作或者任务.是一个PLSQL程序块,可以永久的保存在数据库中以供其他程序调用. 一.创建所需的表USERS create table users ...
- STM8S ADC初始化设置及应用
//ADC通道号定义 #define ADC_Chanel0 (unsigned char)0x00 #define ADC_Chanel1 (unsigned char)0x01 #define A ...
- head first--------------------template method pattern
head first---------模板方法模式 浅谈谈模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以在不改变算法结构的情况下,重新定义 ...
- hdu 3333 Turing Tree(线段树+离散化)
刚看到是3xian大牛的题就让我菊花一紧,觉着这题肯定各种高端大气上档次,结果果然没让我失望. 刚开始我以为是一个普通的线段树区间求和,然后啪啪啪代码敲完测试没通过,才注意到这个求和是要去掉相同的值的 ...
- JavaScript中的call 和apply的用途以及区别
apply 接受两个参数,第一个参数指定了函数体内this 对象的指向,第二个参数为一个带下标的集合,这个集合可以为数组,也可以为类数组,apply 方法把这个集合中的元素作为参数传递给被调用的函数: ...
- java参数传递(值传递还是引用传递)
Java中的参数传递机制一直以来大家都争论不休,究竟是“传值”还是“传址(传引用)”,争论的双方各执一词,互不相让.不但“菜鸟”们一头雾水,一些“老鸟”也只知道结果却说不出所以然来.我相信看过下面的内 ...
- [avalon]data-repeat-rendered循环渲染完毕后的回调函数
有些时候需要在渲染完毕后,引用其他类似JQ插件的初始化工作.这时候需要使用data-repeat-rendered的回调函数. 应用场景: 在metro-start界面下,需要给每个tile引用cli ...