题目来源
- 公众号[前端剑解-143]
[html] 请说说和标签的区别?
标签的区别?
- pre多行显示
- code单行显示
- 【注】看到网上很多说,pre保留空格和换行,我认为更准确的说法是
code只是去除了换行符,其余两者都一样
对html使用的反思
- 除非是考虑语义化问题
- 单纯的追求样式的问题,还是css好一些
[css] 如何自定义radio按钮的样式
-webkit-appearance:none;清除默认样式
- 实战
[js] 自己实现数组的 map、filter、find 方法
map
Array.prototype._map = function(callback, thisArg) {
if (Object.prototype.toString.call(callback) != "[object Function]") {
throw new TypeError(callback + " is not a function");
}
const len = this.length;
const arr = JSON.parse(JSON.stringify(this))
for (let i = 0; i < len; i++) {
const val = callback.call(arr, arr[i], i, this)
arr[i] = val;
}
return arr;
}
filter
filter原理完成,every and some原理也完成了
Array.prototype._filter = function(callback, thisArg) {
if (Object.prototype.toString.call(callback) != "[object Function]") {
throw new TypeError(callback + " is not a function");
}
const len = this.length;
const arr = JSON.parse(JSON.stringify(this))
const rtn=[];
for (let i = 0; i < len; i++) {
const val = callback.call(arr, arr[i], i, this)
if(val){
rtn.push(arr[i])
}
}
return rtn;
}
find
find本质上也是filter的一种变种
Array.prototype._find = function(callback, thisArg) {
if (Object.prototype.toString.call(callback) != "[object Function]") {
throw new TypeError(callback + " is not a function");
}
const len = this.length;
const arr = JSON.parse(JSON.stringify(this))
const rtn=[];
for (let i = 0; i < len; i++) {
const val = callback.call(arr, arr[i], i, this)
if(val){
return arr[i];
}
}
return rtn;
}
总结
- 最近有些懒了,也在思考,接下来的技术路线和人生路怎么走
- 这道题,纠结了两天,主要是对于原型链理解的不深,这次也让我对于
callback.call有更加深刻的理解
- 同时,接下来除了每日任务之外,也要把
call/apply从新打实才行
- 同时有什么不懂的,应该参考
Polyfill
- 加油!!!
[软技能] 你有自己的博客吗?维护的频率是多久呢?
- 博客园
github page
- 基本不更新了,现阶段正在掘金上更新,开始主要侧重通过刷题,来提升自己对于知识的理解和实战能力