本菜鸡终于找到工作了

419 阅读3分钟

科二连续挂了2次后😢😢😭😭,下定决心离开长沙去广州找工作了,就在前2天终于入职了新公司,今天也在广州租了房,算是稳定了下来,也分享一下这些日子里,面试遇到的一些面试问题,希望能帮助到大家,先声明我是个菜鸡,如果问题或者解答有误,欢迎直接在评论区指出。

前端基础

1.考parseInt的第二个传参

parseInt的第二个参数是进制

// 下面输出的结果
['1', '2', '3'].map(parseInt)
// [1, NaN, NaN]

2. 数组有哪些方法?

// map, forEach, filter,some,reduce,every

3.讲一下javascript里面的消息队列与事件循环

JavaScript异步机制 | 知识整理

4.谈谈你对原型链和继承的理解

帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)

vue框架

推荐这篇文章

1. Vue 组件间通信有哪几种方式

props / $emit 适用 父子组件通信

ref 与 $parent / $children 适用 父子组件通信

EventBus ($emit / $on) 适用于 父子、隔代、兄弟组件通信

$attrs/$listeners 适用于 隔代组件通信

provide / inject 适用于 隔代组件通信

Vuex 适用于 父子、隔代、兄弟组件通信

2. v-model 的原理

我们在 vue 项目中主要使用 v-model 指令在表单 input、textarea、select 等元素上创建双向数据绑定,我们知道 v-model 本质上不过是语法糖,v-model 在内部为不同的输入元素使用不同的属性并抛出不同的事件:input和textarea:(value/input), select: (value/change), checkbox: (checked/change)

3. 什么是 MVVM?

基本的算法题

1.判断链表里面是否有环leetcode-link

用2个指针,一个指针走的慢,一个指针走的快

/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */

/**
 * @param {ListNode} head
 * @return {boolean}
 */
var hasCycle = function(head) {
    var slow , fast, res = false
    slow  = head
    fast = head && head.next
    while(slow !== null && fast!== null){
        fast = fast.next
        fast = fast && fast.next
        if(fast !== null && fast === slow){
            res = true
            break
        }
        slow = slow.next
        if(slow !== null && fast === slow){
            res = true
            break
        }
    }
    return res
};

2. 判断字符串里面的括号是否匹配leetcode-link

考察栈相关的知识

var isValid = function(s) {   
    const stack = [];
    
    for (let i = 0 ; i < s.length ; i++) {
        let c = s.charAt(i);
        switch(c) {
            case '(': stack.push(')');
                break;
            case '[': stack.push(']');
                break;
            case '{': stack.push('}');
                break;
            default:
                if (c !== stack.pop()) {
                    return false;
                }
        }
    }
    
    return stack.length === 0;
};

3. 在有序的数组里面找一个值leetcode-link

二分查找

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number}
 */
var search = function(nums, target) {
    var s = 0, e = nums.length, res = -1, m
    while(s < e){
        m = Math.floor((s + e) / 2)
        if(nums[m] === target){
            res = m
            break
        }else if(nums[m] < target){
            s = m + 1
        }else{
            e = m
        }
    }
    return res
};

计算机网络

我这块很鸡肋,下面贴一些别人写的好的文章

1.解释DNS

DNS基础知识

2. 解释CDN

面向前端的CDN原理介绍

CDN与DNS知识汇总

3. http与https的区别

HTTP和HTTPS详解

总结

前端面试的考察内容大致为以上几个部分,前端基础,框架相关的,简单的算法和数据结构,计算机网络还有工具相关的问题等等,我知道自己菜,技术渣,这次从长沙来广州找工作也是为了改变现状,努力工作改善生活,提高技术。

2020年过去了1/4我们每天都在见证历史,见证了像2003年一样的"非典",见证了像1988美股那样的熔断,见证了1931年那样资本家把牛奶倒入河里,同时也见证了历史首次原油期货价格为负,不知道未来还会有哪些意外等着我们,现在能做的就是努力工作,多存一点钱,让自己过的更好一点,5月加油⛽️⛽️⛽️。