Javascript常见问题(三)

作者: small_zeo | 来源:发表于2021-07-04 18:08 被阅读0次

    一. sort是如何排序的,如何解决sort排序的问题?

    var arr = [1,3,4,2]
    console.log(arr.sort())  // 1 2 3 4
    
    var arr2 = [3,25,15,18,9,22] 
    console.log(arr2.sort())  // 15 18 22 25 3 9
    

    arr2使用sort排序结果错误了,什么原因?
    js在计算机中的排序默认是按升序排的,并将排序的元素转为字符串,找对应字符串的Unicode码表。
    解决方案:
    定义一个比较器函数sort(callback) :

    var arr2 =  [3,25,15,18,9,22] 
    arr2.sort(function(x, y) {
      return x - y
    })
    console.log(arr2)  // 3 9 15 18 22 25 
    

    二. Date 对象中getMonth()

    var now = new Date() 
    now.getTime()  // 1625392958947 是1970.1.1 至今的一个毫秒数
    now.getDay()  // 本周的第几天  0表示星期天从开始
    now.getDate() // 本月的几号
    now.getMonth() // 需要+1才能表示当月是几月份
    

    三. 开发中编码和解码的使用场景

    1. escape() 、unescape() 是js的全局函数,可以直接调用,目前用处不多。
      escape() 函数是对除了ASCII(a-z 0-9)码之外的进行编码
      unescape() 函数是对应escape()的解码
    let url = 'https://www.baidu.com?key=jianshu&title=javascript'
    let es = escape(url)  
     // "https%3A//www.baidu.com%3Fkey%3Djianshu%26title%3Djavascript"
    
    console.log(unescape(es))  
    // "https://www.baidu.com?key=jianshu&title=javascript"
    
    1. encodeURI() decodeURI() 用的较多
      encodeURI() 是根据unicode进行编码
      decodeURI() 对应的是encodeURI()的解码
    let url2 = 'https://www.baidu.com?key=简书&title=javascript'
    let ec = encodeURI(url)  
    // "https://www.baidu.com?key=%E7%AE%80%E4%B9%A6&title=javascript"
    
    console.log(decodeURI(ec))  
    // "https://www.baidu.com?key=简书&title=javascript"
    

    相关文章

      网友评论

        本文标题:Javascript常见问题(三)

        本文链接:https://www.haomeiwen.com/subject/ptqvultx.html