冲刺大厂要知道的二三事

205 阅读6分钟

前言

在万物互联的时代,互联网行业已然成为热度最高的行业,很多互联网职场人都在努力追逐着自己的“大厂梦” 。想要实现“大厂梦”,那肯定要一步一个脚印来,下面就来介绍冲刺大厂要知道的二三事。

一、面向对象

在JavaScript中,面向对象编程(Object-Oriented Programming,简称OOP)是一种编程模式,它组织代码的方式主要基于“对象”的概念。这些对象包含属性和方法,属性和方法分别代表对象的状态和行为。JavaScript 是一种多范式编程语言,它支持面向过程的编程、函数式编程和面向对象编程。

以下是JavaScript中面向对象编程的一些核心概念:

  1. 对象(Object):对象是包含属性和方法的实体。属性是对象的数据值,方法是对象可以执行的操作。例如,一个“汽车”对象可能包含“颜色”、“品牌”等属性,以及“启动”、“停车”等方法。
  2. 类(Class):类是对象的模板或蓝图,它定义了如何创建对象。
class Car {
    constructor(color, brand) {
        this.color = color;
        this.brand = brand;
    }

    start() {
        console.log('汽车已启动');
    }

    stop() {
        console.log('汽车已停止');
    }
}

在这个例子中,Car 是一个类,它有两个属性(colorbrand)和两个方法(startstop)。

  1. 实例化(Instantiation):创建类的新实例的过程叫做实例化。在JavaScript中,你可以使用 new 关键字来创建一个新的对象实例。
let myCar = new Car('红色', '宝马');
myCar.start();  // 输出 "汽车已启动"
  1. 继承(Inheritance):在面向对象编程中,继承是一种机制,它允许我们在已有的类(父类或超类)的基础上创建新的类(子类)。子类会继承父类的所有属性和方法,并可以添加新的特性或覆盖现有方法。
class ElectricCar extends Car {
    constructor(color, brand, batteryCapacity) {
        super(color, brand);  // 调用父类的构造函数
        this.batteryCapacity = batteryCapacity;
    }

    charge() {
        console.log('正在为电动车充电');
    }
}

在这个例子中,ElectricCar 类继承了 Car 类的所有属性和方法,并添加了一个新的 batteryCapacity 属性和一个 charge 方法。

  1. 封装(Encapsulation):封装是面向对象编程的一个重要概念,它隐藏了对象的内部状态,只允许通过对象的方法进行访问和修改。这有助于保持代码的整洁和安全。
  2. 多态(Polymorphism):多态是面向对象编程的另一个重要概念,它允许我们使用相同的接口来处理不同的对象类型。在JavaScript中,由于它是一种动态类型语言,多态的实现通常是通过方法的覆盖和方法的重载来实现的。

以上就是JavaScript中面向对象编程的一些核心概念。通过学习和理解这些概念,可以更好地组织和编写复杂的代码,并更有效地解决各种编程问题。

二、代码如何健壮

健壮性(Robustness) 是指程序在遇到规范以外的输入,错误和异常时,仍能正常运行。简单来说,健壮代码的适应性很强,不会因为一些异常,就导致程序崩溃。

        sendFlower:function(receiver){
            receiver && receiver.receiverFlower(this);//提高代码健壮性,防止用户传空值
        }

receiver && receiver.receiverFlower(this); 代替receiver.receiverFlower(this); 可以提高代码的健壮性,JavaScript中的逻辑运算符“&&”运算方法:1、只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;2、只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;这样就可以防止用户传空值。

三、代理模式(proxy)和接口(interface)

小艾同学要将花送给阿美,但阿美心情低于80时会拒绝收花,这时候就需要一个工具人阿红(让阿红也具有收花的函数,实现接口),小艾同学先把花给阿红,让阿红把花给阿美,送出花的概率增大。小艾同学把花先给阿红,让阿红再给阿美,这就是一个代理模式(proxy)。

const xa={
        name:'小艾同学',//字符串类型 简单数据类型
        age:22,//数值类型
        hometown:'南昌',
        girlFriend:null,//null空
        city:undefined,//未定义
        hobbies:['看小说','看电视','唱歌'],//对象(js中没有数组,数组也是对象)
        isSingle:true,//布尔值
        //形参
        sendFlower:function(receiver){
            receiver && receiver.receiverFlower(this);
        }
    }
    const am={
        name:'阿美',
        xq:60,//心情为60
        hometown:'抚州',
        receiverFlower:function(sender){
            console.log(this.name+'收到'+sender.name+'鲜花');
            if(this.xq<80){
                console.log('我想还是算了吧');//每句后面加分号
            }else{
                console.log('我们在一起吧!');
            }
        }
    }
    //对象字面量 字面上就了解这个对象
    const ah={
        name:'阿红',
        hometown:'赣州',
        //实现了和阿美一样的接口,就可以互换
        receiverFlower:function(sender){
            console.log(this.name+'收到'+sender.name+'鲜花');
            setTimeout(function(){//设置定时器,2秒后阿美心情变好
                am.xq=88;
                am.receiverFlower(sender);
            },2000)   
        }
    }
    xa.sendFlower(ah);//小艾同学先把花给阿红,让阿红把花送给阿美

代理模式是指在某些情况下,出于种种考虑/限制,一个对象不能直接访问另一个对象,需要一个第三者(代理)牵线搭桥从而间接达到访问目的,这样的模式就是代理模式。在生活中也有很多种情况,租客通过中介找房东租房子,房东将房子托管给了中介,房东是目标对象,但是租赁行为是中介来执行的,中介是代理类,租客就是客户端;中介代理房东进行租赁行为 , 相当于代理类对目标对象进行了增强;客户端通过代理类与目标对象进行交互,客户端不直接接触目标对象。

四、代码规范

  • 大厂都有严谨的代码要求,写代码前读一读。
  • 用驼峰式命令法。当变量名或函数名是由一个或多个单词连结在一起构成的唯一识别字时,第一个单词以小写字母开始,从第二个单词开始以后的每个单词的首字母都采用大写字母,例如:myName、myAge。
  • 在JS中每句代码结尾要用分号结束。
  • 要多写注释,不仅仅要你自己可以读懂,要让别人也可以读懂你的代码。
     @func 代理送花 //实现的功能
     @desc 通过实现receiverFlower,互换对象 //描述,具体怎么实现的
     @author ar //作者
     @data  2024/4/17 //时间

写在最后

每个人代码人心里都有一个冲刺大厂的心,俗话说的好,细节决定成败,不要小看这些基础。最后的最后,有什么不对的地方希望大佬们指出。

image.png