格格不入 - 工具类
type: channel
link: https://www.jbea.cn/tag/%E5%B7%A5%E5%85%B7%E7%B1%BB/
items: JavaScript中的常见方法分享

JavaScript中的常见方法分享
type: item
date: 2021-12-26T21:57:00+08:00
description: 前言这篇文章是分享在JavaScript中的一些常见方法，比如说格式化时间、获取url参数、产生指定区间随机数等等。🎯获取URL请求参数此方法可用于获取url请求参数的值，如果没有该参数，则返回false/** * @description 获取URL请求参数 * @param {string} variable url参数名 * @returns {string} 参数对应的值 */ function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i = 0; i < vars.length; i++) { var pair = vars[i].split("="); if (pair[0] == variable) { return pair[1]; } } return (false); }数字格式化此方法可用于对数值形式的金额进行格式化/** * @description 数字格式化 * @param {number|string} number 要格式化的数字 * @param {number} decimals 保留几位小数 * @param {string} decimalPoint 小数点符号 * @param {string} thousandsSeparator 千分位符号 * @returns {string} 格式化后的数字 */ function priceFormat(number, decimals = 0, decimalPoint = '.', thousandsSeparator = ',') { number = (`${number}`).replace(/[^0-9+-Ee.]/g, '') const n = !isFinite(+number) ? 0 : +number const prec = !isFinite(+decimals) ? 0 : Math.abs(decimals) const sep = (typeof thousandsSeparator === 'undefined') ? ',' : thousandsSeparator const dec = (typeof decimalPoint === 'undefined') ? '.' : decimalPoint let s = '' const toFixedFix = function (n, prec) { const k = 10 ** prec return `${Math.ceil(n * k) / k}` } s = (prec ? toFixedFix(n, prec) : `${Math.round(n)}`).split('.') const re = /(-?\d+)(\d{3})/ while (re.test(s[0])) { s[0] = s[0].replace(re, `$1${sep}$2`) } if ((s[1] || '').length < prec) { s[1] = s[1] || '' s[1] += new Array(prec - s[1].length + 1).join('0') } return s.join(dec) }对象转URL参数该方法，可以将一个对象形式参数转换成get传参所需参数形式，如把{name: 'lisa', age: 20}转换成?name=lisa&age=20/** * @description 对象转url参数 * @param {object} data,对象 * @param {Boolean} isPrefix,是否自动加上"?" * @param {string} arrayFormat 规则 indices|brackets|repeat|comma */ function queryParams(data = {}, isPrefix = true, arrayFormat = 'brackets') { const prefix = isPrefix ? '?' : '' const _result = [] if (['indices', 'brackets', 'repeat', 'comma'].indexOf(arrayFormat) == -1) arrayFormat = 'brackets' for (const key in data) { const value = data[key] // 去掉为空的参数…