在当前竞争激烈的就业市场中,大厂无疑成为了众多程序员心目中的理想工作场所。随着科技的飞速发展和行业的日益壮大,大厂对于优秀程序员的需求也愈发迫切。然而,面对众多竞争者,如何在面试中脱颖而出,成功踏入大厂的门槛,成为了摆在程序员们面前的一道难题。在这一背景下,我将为大家分享一些面试大厂的实用技巧,帮助各位程序员朋友们更好地展示自己的实力,增加成功的机会。
成功上岸大厂必备的能力
- 注重代码规范。想要进入大厂,就必须重视代码规范。这是大厂对程序员的基本要求,也是你提升竞争力的关键所在。每家大厂都有代码规范,在面试前需要提前了解。
- 优质代码和优化代码。大家要明白,在大厂的竞争中,仅仅写出能运行的代码是不够的。优质代码和优化代码的能力才是脱颖而出的关键技能。
- 多写注释!!!在大厂的代码评审中,注释的质量和数量是重要的考量因素。因此,多写注释是非常有必要的良好习惯。
答题技巧
首先举个栗子
小明是一个爱吃炸鸡的宅男
小李是一个热爱工作的外卖小哥
李明是炸鸡店的老板,他家的炸鸡特别好吃
于是小明天天吃李明家的炸鸡
如果面试官要求我们用代码去实现小明得到炸鸡,那我们应该怎么做呢?
在面试的紧张气氛下遇到这样的问题是不是会感觉寄了,大脑一团浆糊。
不用慌,我来给你带来思路。
面向对象的思想
首先第一步也是最关键的一步,我们要选对语言。
我的建议是选择JavaScript,JavaScript的表现力是最强的,{}就可以声明一个对象,一个对象由属性和方法构成。
我们可以获取一些信息,小明爱吃炸鸡,小李是外卖员,李明是炸鸡店老板。
const xm{
name:'小明',
habits:['爱吃炸鸡','待在家里'],
identity:'无业游民',
}
const xl{
name:'小李',
habit:'送外卖',
identity:'外卖小哥'
}
const lm{
name:'李明',
habit:'炸炸鸡',
identity:'老板'
}
抽象思维
那我们要怎么让他们动起来呢?我们可以用js方法让他们动起来。
xm、xl和lm都是对象,当对象越来越多的时候世界越来越复杂,我们要抽象使用形参。
李明可以直接将炸鸡送给小明
const xm = {
name: '小明',
habit: '爱吃炸鸡',
identity: '无业游民',
receiveFood: function (sender) {
console.log(this.name + '收到' + sender.name + '的炸鸡');
}
}
const xl = {
name: '小李',
habit: '送外卖',
identity: '外卖小哥'
}
const lm = {
name: '李明',
habit: '炸炸鸡',
identity: '老板',
sendFood: function (receiver) {
receiver.receiveFood(lm)
}
}
结果是
代码健壮性
如果我们不知道sendFood方法需要引入参数,我们没有引入参数会发生什么情况呢?
如图所示,会报错。那该怎么办呢?
我们要让我们的代码具有健壮性。这样我们可以对可能出现的错误进行适当的处理,避免程序崩溃或出现意外结果。
const lm = {
name: '李明',
habit: '炸炸鸡',
identity: '老板',
sendFood: function (receiver) {
//receiver.receiveFood(lm)
receiver && receiver.receiveFood(lm)
}
}
结果是
接口
接口是同样的方法,从而实现互换。当多个对象具有相同的方法时,可以互换使用。
如果让李明送炸鸡给小明,那就没有人在炸炸鸡了。那我们可以让小李帮李明送炸鸡。
const xm = {
name: '小明',
habit: '爱吃炸鸡',
identity: '无业游民',
receiveFood: function (sender) {
console.log(this.name + '收到' + sender.name + '的炸鸡');
}
}
const xl = {
name: '小李',
habit: '送外卖',
identity: '外卖小哥',
receiveFood: function (sender) {
console.log(this.name + '收到' + sender.name + '的炸鸡');
}
}
const lm = {
name: '李明',
habit: '炸炸鸡',
identity: '老板',
sendFood: function (receiver) {
//receiver.receiveFood(lm)
receiver && receiver.receiveFood(lm)
}
}
代理模式
代理模式是一种设计模式,它为其他对象提供一个代理或中介,控制对这个对象的访问。其基本原理是创建一个代理对象,代替对真实对象的访问。代理对象可以在调用真实对象的方法前后执行一些额外的操作。
小李就是代理对象。则xl的方法和lm的方法的内容应该不一样。
优化代码
我们优化我们的代码,不仅是让我们的代码更优质而且具有更多功能,也需要注意代码规范。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//写代码从写注释开始
/*
*@func 功能
*@desc 功能介绍
*@author 创作者
*@date 创作日期
*/
const xm = {
name: '小明',
habit: '爱吃炸鸡',
identity: '无业游民',
hunger: Math.floor(Math.random() * 101), //随机生成一个1到100的整数表示小明的饥饿程度,数值越大就越饿
receiveFood: function (sender) {
console.log(this.name + '收到' + sender.name + '的炸鸡');
if (this.hunger < 70) {
console.log('小明:我现在不想吃炸鸡'); //小明的饥饿程度小于70时不想吃炸鸡
}
else {
console.log('小明:我现在想吃炸鸡了'); //小明的饥饿程度不小于70时想吃炸鸡
}
}
}
const xl = {
name: '小李',
habit: '送外卖',
identity: '外卖小哥',
receiveFood: function (sender) {
console.log(this.name + '收到' + sender.name + '的炸鸡');
if (xm.hunger >= 70) //小明想吃炸鸡就给他送
xm.receiveFood(sender);
else { //小明不想吃炸鸡就不给他送
console.log('小李:小明现在不想吃炸鸡');
}
}
}
const lm = {
name: '李明',
habit: '炸炸鸡',
identity: '老板',
sendFood: function (receiver) {
receiver && receiver.receiveFood(lm);
}
}
</script>
</body>
</html>
有两种结果
第一种是
第二种是
最后
首先要理清对象之间的关系,用方法实现相互联系;在写代码时要注意代码的健壮性;运用接口,当多个对象具有相同的方法时,可以互换使用;创建代理对象,代替对真实对象的访问;最后优化代码。
以上是我的分享,希望可以帮助到你们。
原文链接:https://juejin.cn/post/7358004857888931894 作者:睡着学