FED

©FrontEndDev.org
2015 - 2024
web@2.22.0 api@2.20.0

前端进阶计划第43周作业

2015年第43周——标准对象

typeis

更健壮的 typeis,可以判断任何数据类型

Object.prototype.toString

constant

定义一个不可修改的对象

constant('a', 1)
// => {a: 1}
constant({a: 1, b: 2})
// => {a: 1, b: 2}
var o = {c: 3};
constant(o, 'a', 1)
// => {c:3, a: 1}
constant(o, {a: 1, b: 2})
// => {c: 3, a: 1, b: 2}

extend

实现对象的深度拷贝。

var o = {a: 1, b: [1, 2]};
var ret = extend(o);

ret !== o;
ret.b !== o.b;

数组中的最小、大值

max([1, 2, 3, 10, 8])
// => 10
min([1, 2, 3, 10, 8])
// => 1

柯里化

(1).add(2).add(3);
// => 6
(1).add(2).add(3).add().add(4);
// => 10

base64

实现base64debase64

var str1 = '您好 javascript';
var str2 = base64(str1);
var str3 = debase64(str2);

str3 === str1;

random

实现randomNumberrandomString

// 实现 3-10 之间的随机整数
randomNumber(3, 10);
// 实现 10 位随机字符串,随机包含大小写英文字、数字
randomString(10);

第几周

计算本周是今年的第几周。

字符串模板

解析YYYY-MM-DD HH:mm:ss SSS2015-10-26 17:57:30 100

// 当前时间
parseDate('YYYY--MM-DD')
// => "2015-10-26"

字符串短横线分隔符

实现separator方法。

// 首字母小写
separator('getElementById')
// => "get-element-by-id"

删除特殊注释

实现removeComments完成(注释格式为:每一行的开通为“-”):

<!--
- abc
- def
- ghi
-->

<!--abc-->

=>


<!--abc-->