前端进阶计划第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
实现base64
、debase64
var str1 = '您好 javascript';
var str2 = base64(str1);
var str3 = debase64(str2);
str3 === str1;
random
实现randomNumber
和randomString
。
// 实现 3-10 之间的随机整数
randomNumber(3, 10);
// 实现 10 位随机字符串,随机包含大小写英文字、数字
randomString(10);
第几周
计算本周是今年的第几周。
字符串模板
解析YYYY-MM-DD HH:mm:ss SSS
为2015-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-->
</>