JavaScript常用代码片段

JavaScript常用代码片段

最后修改时间:7 months ago

# 获取前一天、后一天

// 明天
new Date(new Date().getTime()+(60*60*24*1000))
// 昨天
new Date(new Date().getTime()-(60*60*24*1000))
1
2
3
4

# 日期 farmat (内含补零方法)

/**
 * 获取当前日期
 * 
 * @param foramt    array      格式化数组,共8个参数,-1则不显示(-1 , 不是 "-1"),末尾若省缺,则默认为显示,具体看示例
 * @param foramt    Date对象
 * 
 * @example formatDate(["年", "月", "日 " ,":",":",":"," ",true])  => "2021年5月15日 21:29:21:300  星期六"
 * @example formatDate(["-", "-", " " ,":",":"," ",-1,true])  => "2021-5-15 21:34:59  星期六"
 * @example formatDate(["/", "/", " " ,":"," ",-1,-1,true])  => "2021/5/15 21:36  星期六"
 * @example formatDate(["/", "/", " " ,":"," ",-1,-1,-1])  => "2021/5/15 21:37"
 */
function formatDate(format = ["年", "月", "日 ", ":", ":", ":", " ", true], d = new Date()) {
    const week = ["日", "一", "二", "三", "四", "五", "六"];
    return (format[0] !== false ? addZero(d.getFullYear(), 4, format[0]) : "") +
        (format[1] !== -1 ? addZero(d.getMonth() + 1, 2, format[1]) : "") +
        (format[2] !== -1 ? addZero(d.getDate(), 2, format[2]) : "") +
        (format[3] !== -1 ? addZero(d.getHours(), 2, format[3]) : "") +
        (format[4] !== -1 ? addZero(d.getMinutes(), 2, format[4]) : "") +
        (format[5] !== -1 ? addZero(d.getSeconds(), 2, format[5]) : "") +
        (format[6] !== -1 ? addZero(d.getMilliseconds(), 3, format[6]) : "") +
        (format[7] !== -1 ? " 星期" + week[d.getDay()] : "")
}
/**
 * 后向前切割 length 位
 * 
 * @param str       String/Number   任意字符串 或者 数字
 * @param length    Number          str切割后的长度
 * @param pad       String          切割后末尾添加的字符串 default 空
 * @returns         String          切割结果
 * 
 * @example addZero("abc", 4 , "_")  => "0abc_"
 * @example addZero(4, 3 , "_")  => "0003_"
 * @example addZero(2589, 3)  => "589"
 * @example addZero(2589, 0)  => ""
 * @example addZero(2589, -1)  => "2589"
 */
function addZero(str, length, pad = "") {
    if (length == 0) return "";
    if (length < 0) return str; //真没必要这样用。。
    return ((new Array(length)).join("0") + str).slice(0 - length) + pad;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

# 返回n个重复相同的字符串

/**
 * @example new Array(3).join(0)  => "00"
 * @example new Array(3).join("01")  => "0101"
 * 
*/
(new Array(n + 1)).join(src);
1
2
3
4
5
6

# 判断空对象

// 方法 1
JSON.stringify(data) == "{}"

// 方法 2
var obj = {};
var b = function(obj) {
  for(var key in obj) {
    return false;
  }
  return true;
}
b(obj)

// 方法 3
var obj = {};
var arr = Object.keys(obj);
arr.length == 0;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 补零

// 前补零 padStart()
'abc'.padStart(10);         // "       abc"
'abc'.padStart(10, "foo");  // "foofoofabc"
'abc'.padStart(6,"123465"); // "123abc"
'abc'.padStart(8, "0");     // "00000abc"
'abc'.padStart(1);          // "abc"

// 后补零 padEnd()
'abc'.padEnd(6,"123465");  // "abc123"
'abc'.padEnd(1,"123465");  // "abc"

// 还可以使用 ### 日期 farmat (内含补零方法)  所使用的方法,有些场景更灵活  
1
2
3
4
5
6
7
8
9
10
11
12

# 字符串转对象

JSON.parse(string)eval("("+string+")")
1
2
3
4
5

扩展阅读:JSON.parse方法是如何工作的?

- 更新中 -

留下一条留言?
默认颜色

主题颜色

标准颜色

更多颜色...