常用方法代码
jQuery实现点击除了特定div的页面其它地方,隐藏该div功能
$(document).bind('click', function (e) {
var e = e || window.event; //浏览器兼容性
var elem = e.target || e.srcElement;
while (elem) { //循环判断至跟节点,防止点击的是div子元素
if (elem.className && elem.className == '元素id或者class') {
return;
}
elem = elem.parentNode;
}
$('元素id或者class').hide()
});
判断是否是数组
- constructor
var arr = [];
arr.constructor == Array; //true
- jQuery
Object.prototype.toString.call(value) == '[object Array]'
// 利用这个方法,可以写一个返回数据类型的方法
var isType = function (obj) {
return Object.prototype.toString.call(obj).slice(8,-1);
}
ES5
新增方法isArray()
var a = new Array(123);
var b = new Date();
console.log(Array.isArray(a)); //true
console.log(Array.isArray(b)); //false
判断IE浏览器的具体版本
function IEVersion() {
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器
var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
if (isIE) {
var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
reIE.test(userAgent);
var fIEVersion = parseFloat(RegExp["$1"]);
if (fIEVersion == 7) {
return 7;
} else if (fIEVersion == 8) {
return 8;
} else if (fIEVersion == 9) {
return 9;
} else if (fIEVersion == 10) {
return 10;
} else {
return 6;//IE版本<=7
}
} else if (isEdge) {
return 'edge';//edge
} else if (isIE11) {
return 11; //IE11
} else {
return -1;//不是ie浏览器
}
}
判断是否是IE11及以下或者其他(其他里包括IE edge)
function isIE() {
//这里判断为true包括所有IE浏览器,包括IE11
if (!!window.ActiveXObject || "ActiveXObject" in window) {
document.body.innerHTML = '<h1>你的浏览器已过时,请更新你的浏览器</h1>';
return true;
} else {
return false;
}
}
JS 识别不同浏览器信息
function myBrowser() {
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
var isOpera = userAgent.indexOf("Opera") > -1;
if (isOpera) {
return "Opera"
}; //判断是否Opera浏览器
if (userAgent.indexOf("Firefox") > -1) {
return "Firefox";
} //判断是否Firefox浏览器
if (userAgent.indexOf("Chrome") > -1) {
return "Chrome";
} //判断是否Google浏览器
if (userAgent.indexOf("Safari") > -1) {
return "Safari";
} //判断是否Safari浏览器
if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) {
return "IE";
}; //判断是否IE浏览器
}
格式化金钱,每千分位加逗号
function format(str) {
let s = ''
let count = 0
for (let i = str.length - 1; i >= 0; i--) {
s = str[i] + s
count++
if (count % 3 == 0 && i != 0) {
s = ',' + s
}
}
return s
}
format('1000') //1,000
function format(str) {
return str.replace(/(\d)(?=(?:\d{3})+$)/g, '$1,')
}
如何将浮点数点左边的数每三位添加一个逗号,如12000000.11转化为『12,000,000.11』
function commafy(num) {
return num && num
.toString()
.replace(/(\d)(?=(\d{3})+\.)/g, function ($1, $2) {
return $2 + ',';
});
}
反转数组
要求 input: I am a student
output: student a am I
输入是数组 输出也是数组
不允许用
split
splice
reverse
function reverseArry(arr) {
const result = []
while (arr.length) {
result.push(arr.pop())
}
return result
}
console.log(reverseArry(['I', 'am', 'a', 'student']))
// ["student", "a", "am", "I"]
function reverseArry(arry) {
const result = []
const distance = arry.length - 1
for (let i = distance; i >= 0; i--) {
result[distance - i] = arry[i]
}
return result
}
时间戳
const timestamp = +new Date("2019-02-14");
// timestamp => 1550102400000
判断奇数偶数
const OddEven = num => !!(num & 1) ? "odd" : "even";
const num = OddEven(2);
// num => "even"
生成范围随机数
const RandomNum = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;
const num = RandomNum(1, 10);