Javascript常见问题(三)
2021-07-04 本文已影响0人
small_zeo
一. 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才能表示当月是几月份
三. 开发中编码和解码的使用场景
- 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"
- 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"