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篇》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

互联网寡头战争

互联网寡头战争

屈运栩 / 浙江大学出版社 / 2017-5-1 / CNY 49.00

本书意在复盘2015年下半年资本寒冬袭来之后,互联网行业发生的小巨头并购等连锁反应,揭示其背后推手——以BAT(百度、阿里巴巴、腾讯)为首的互联网巨头在零售、出行、本地生活、金融等行业的布局竞争,记录和呈现行业新贵的选择与博弈,深度剖析中国互联网生态的演进过程。一起来看看 《互联网寡头战争》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换