为了避免重复性劳动,日常开发中总会有哪些你曾经使用的过或者从各网站博客中找到一些特别有用的代码片段, 亦或者是某些比较好的能简化代码的片段. 在工作中,或者查看别人的代码时,总能看到一些不一样的处理方式,或者某些大神或前辈对同样的问题有更简单实用的使用方式.
JavaScript中!!操作符是什么
!!强制把右侧的值转化为布尔值
1
2
3
4console.log(!!10) //true
console.log(!!0) //false
console.log(!!"abc") //true
console.log(!!"") //falseJavaScript字符与ASCII码间的转换
1
2console.log("abc".charCodeAt(0)) // 97
console.log(String.fromCharCode(97)) // a判断一个对象是否为数组的最好方式
1
2
3
4function isArray(obj){
return Object.prototype.toString.call(obj) == "[object Array]";
}
// 不能用instanceof 和 constructor来判断取数组中的最大值/最小值
1
2
3
4var arr = [100, 50, 30]
var min = Math.min.apply(null, arr),
max = Math.max.apply(null, arr);
console.log(min, max) // 30 100统计一个字符串中某个字符出现的次数
1
2var temp = "This is a string."
var count = temp.match(/is/g).length // 2把arguments/NodeList转换为Array
1
2var args = Array.prototype.slice.call(arguments, 0)
var args = Array.form(arguments)检查是否包含子元素
const elementContains = (parent, child) => parent !== child && parent.contains(child)
检测移动/PC设备
1
2
3export const detectDeviceType = () => {
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ? 'Mobile' : 'Desktop'
}转义html(防XSS攻击)
1
2
3
4
5export const escapeHTML = str =>{
str.replace( /[&<>'"]/g, tag =>({
'&': '&', '<': '<', '>': '>', "'": ''', '"': '"'
}[tag] || tag))
}判断js运行环境
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15const inBrowser = typeof window !== 'undefined'
const inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform
const weexPlatform = inWeex && WXEnvironment.platform.toLowerCase()
const UA = inBrowser && window.navigator.userAgent.toLowerCase()
const isIE = UA && /msie|trident/.test(UA)
const isIE9 = UA && UA.indexOf('msie 9.0') > 0
const isEdge = UA && UA.indexOf('edge/') > 0
const isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android')
const isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios')
const isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge
const isPhantomJS = UA && /phantomjs/.test(UA)
const isFF = UA && UA.match(/firefox\/(\d+)/)