javascript常用代码片段

为了避免重复性劳动,日常开发中总会有哪些你曾经使用的过或者从各网站博客中找到一些特别有用的代码片段, 亦或者是某些比较好的能简化代码的片段. 在工作中,或者查看别人的代码时,总能看到一些不一样的处理方式,或者某些大神或前辈对同样的问题有更简单实用的使用方式.

  • JavaScript中!!操作符是什么
    !!强制把右侧的值转化为布尔值

    1
    2
    3
    4
    console.log(!!10) //true
    console.log(!!0) //false
    console.log(!!"abc") //true
    console.log(!!"") //false
  • JavaScript字符与ASCII码间的转换

    1
    2
    console.log("abc".charCodeAt(0)) // 97
    console.log(String.fromCharCode(97)) // a
  • 判断一个对象是否为数组的最好方式

    1
    2
    3
    4
    function isArray(obj){
    return Object.prototype.toString.call(obj) == "[object Array]";
    }
    // 不能用instanceof 和 constructor来判断
  • 取数组中的最大值/最小值

    1
    2
    3
    4
    var arr = [100, 50, 30]
    var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
    console.log(min, max) // 30 100
  • 统计一个字符串中某个字符出现的次数

    1
    2
    var temp = "This is a string."
    var count = temp.match(/is/g).length // 2
  • 把arguments/NodeList转换为Array

    1
    2
    var args = Array.prototype.slice.call(arguments, 0)
    var args = Array.form(arguments)
  • 检查是否包含子元素
    const elementContains = (parent, child) => parent !== child && parent.contains(child)

  • 检测移动/PC设备

    1
    2
    3
    export const detectDeviceType = () => {
    return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ? 'Mobile' : 'Desktop'
    }
  • 转义html(防XSS攻击)

    1
    2
    3
    4
    5
    export const escapeHTML = str =>{
    str.replace( /[&<>'"]/g, tag =>({
    '&': '&amp;', '<': '&lt;', '>': '&gt;', "'": '&#39;', '"': '&quot;'
    }[tag] || tag))
    }
  • 判断js运行环境

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    const 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+)/)
-------------本文结束感谢您的阅读-------------
0%