008.前端面试排雷之唱、跳、rap三步曲( 三 )rap篇
栏目: JavaScript · 发布时间: 5年前
内容简介::blush:前面两篇讲述的,简历、面试,那么这一篇将会告诉你,怎么练习。人的记忆都是线性的记忆,对于大部分人来说,笔、背、看,都是绝对正义的方法。"局限"。面试了很多人,发现很多萌新甚至一些3年经验以上的人,都有一个误区,那就是太过局限自己。把自己局限在前端,局限在React、Vue、Css、ECMAscript、Node。举个例子,不知道多少人还记得当年很火的ActionScript。当年大部分网页的交互,都是用这个完成的。可惜最后被html+javascript+css给干死了。flash工程师们,我
:blush:前面两篇讲述的,简历、面试,那么这一篇将会告诉你,怎么练习。人的记忆都是线性的记忆,对于大部分人来说,笔、背、看,都是绝对正义的方法。
请思考如何成为一个合格的"程序员"
"局限"。面试了很多人,发现很多萌新甚至一些3年经验以上的人,都有一个误区,那就是太过局限自己。把自己局限在前端,局限在React、Vue、Css、ECMAscript、Node。举个例子,不知道多少人还记得当年很火的ActionScript。当年大部分网页的交互,都是用这个完成的。可惜最后被html+javascript+css给干死了。flash工程师们,我并不是要诋毁你们,但是就现在的市场而言,确实缩水了。我可不敢保证现在的前端,会不会步入ActionScript的后尘。世事难料,谁知道呢。
"为了钱"。我不排斥为了钱,转行来做前端的人,大家都是要恰饭的嘛。就算你只是为了讨生活,也请敬畏这门技术。不要张口就来,夸夸其谈。你面对的老大不见的都是不懂行,你面对的就是一位开发了N个项目+保持长久学习的人。既然为了钱,那么你更加应该保持旺盛的学习精力。学好ts,工资+1k,学好node,工资+3k,学好react,工资+1k。学好算法,工资+5k,学好网络基础,工资+5k…...
"ctrl+v/ctrl+c"。复制/粘贴的代码,其实一点问题都没有,在一些特殊场景之下,这是很实用的技巧。例如:短线项目、快速上线项目。但是请归纳总结,沉淀出自己的代码。当你提炼出一些符合当前pm逼数的代码,我相信你的工作会更加游刃有余。
分重点
例子:
Q: ES6方法Object.getOwnPropertyNames、Object.keys、for...in三者之间的区别? A: - Object.getOwnPropertyNames:获取对象可枚举和不可枚举的属性名 - Object.keys():获取对象可枚举的属性名 - for...in:遍历对象可枚举属性 扩展: - 什么是可枚举属性, - 什么是不可枚举属性 - 如何设置 - 用途 参考: - [Object.getOwnPropertyNames()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames) - [Object.keys()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/keys) - [for...in](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/for...in) 复制代码
将一个问题拆分为Q、A、扩展、参考。养成一个习惯,那就是不只是回答问题,也要思考问题会被如何扩展。一般来说,一个正常的面试官,最多只会将一个问题扩展三次。当扩展到第四次时,大部分人都很难回答出来。你可以尝试一下,将一个问题从深度扩展四次之后的情况会是怎样。
分析业务
例如:
// 初次业务 // 简单的input输入框,btn提交 export default function Search(){ let [val,setVal] = useState(''); function handleEmit(e){ props.emit(val) }; function handleChange(e){ setVal(e.target.value) }; return( <> <Input detailValue={value} placeholder='用户名' name='value' onChang={()=>handleChange(e)}> <Button onClick={()=>handleEmit()}>提交<Button> </> ) } 复制代码
// 增加业务 // 增加搜索条件,根据手机号搜索 export default function Search(props){ let [val,setVal] = useState({ value: '', phone: '', }); function handleEmit(e){ props.emit({ value: e.target.value, name: e.target.name, }) }; return( <> <Input defaultValue={val.value} placeholder='用户名' name='value' onChang={()=>handleChange(e)}> <Input defaultValue={val.phone} placeholder='手机号' name='phone' onChang={()=>handleChange(e)}> <Button onClick={()=>handleEmit()}>提交<Button> </> ) } 复制代码
当这种业务无限扩展的时候,每次改具体的业务代码是一件特别乏味的事情。你完全可以
const map = [ { value: '', placeholder: '', type: 'input', name: 'phone' }, { value: '', placeholder: '', type: 'input', name: 'value' } ]; <Inputs map={map} emit={(e)=>{}}/> 复制代码
这就是分析业务,在可预见的情况下,扩展你代码的可用、健壮、稳定。 UI = render(data)
是阶段最适合GUI编程的方法,没有之一。
以上所述就是小编给大家介绍的《008.前端面试排雷之唱、跳、rap三步曲( 三 )rap篇》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 甲小蛙战记:PHP2Java 排雷指南
- 前端科普系列(三):CommonJS 不是前端却革命了前端
- 前端科普系列(三):CommonJS 不是前端却革命了前端
- 前端技术演进(三):前端安全
- 【前端优化】前端常见性能优化
- 【前端学习笔记】前端安全详解
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。