发布时间:2022-12-13 20:30
1、函数组合(compose)使用过吗?
var compose = function(f,g) {
return function(x) {
return f(g(x));
};
};
var toUpperCase = function(x) { return x.toUpperCase(); };
var exclaim = function(x) { return x + '!'; };
var shout = compose(exclaim, toUpperCase);
shout("send in the clowns");
//=> "SEND IN THE CLOWNS!"
// demo
var head = function(x) { return x[0]; };
var reverse = reduce(function(acc, x){ return [x].concat(acc); }
, []);
var last = compose(head, reverse);
last(['jumpkick', 'roundhouse', 'uppercut']);
//=> 'uppercut'
f 和 g 都是函数, x 是在它们之间通过“管道”传输的值。
组合 看起来像是在饲养函数。你就是饲养员,选择两个有特点又遭你喜欢的函数,让它们结合,产下一个崭新的函数.
代码从右向左运行,而不是由内而外运行
怎么写函数试的程序:即通过管道(柯里化和组合)把数据在一系列纯函数间传递的程序
2、命令式和声明式代码各什么意思?有什么区别?
let cars = [{make:1,id:'a'},{make:2,id:'b'}];
// 命令式
var makes = [];
for (i = 0; i < cars.length; i++) {
makes.push(cars[i].make);
}
// 声明式
var makes = cars.map(function(car){ return car.make; });
// [1, 2]
console.log(makes);
// 进阶,结合函数组合
// 命令式
var authenticate = function(form) {
var user = toUser(form);
return logIn(user);
};
// 声明式,compose从右往左执行,声明我们要做的任务是,先用户验证,再登录
var authenticate = compose(logIn, toUser);
命令式:指示计算机如何工作,“先做这个,再做那个”
声明式:明确希望得到的结果,声明式意味着我们要写表达式,而不是一步一步的指示
3、js里指数怎么表达的?比如1000可以怎么写?
1e2 === 100
true
3e4 === 30000
true
计算方式:e前面的数 乘以 10的e后面的数的次方
4、css伪元素有哪些?
::after | p::after | 在每个 元素之后插入内容。 |
---|---|---|
::before | p::before | 在每个 元素之前插入内容。 |
::first-letter | p::first-letter | 选择每个 元素的首字母。 |
::first-line | p::first-line | 选择每个 元素的首行。 |
::selection | p::selection | 选择用户选择的元素部分。 |
// :after 选择器在被选元素的内容后面插入内容。请使用 content 属性来指定要插入的内容。可以为图片和文字
h1::after {
content: url(smiley.gif);
}
5、css颜色线性渐变怎么定义?
// background-image: linear-gradient(direction, color-stop1, color-stop2, ...);
.grad {
background-image: linear-gradient(-90deg, red, yellow);
}
6、过渡(transition)允许您在给定的时间内平滑地改变属性值.