IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 招银网络科技秋招补录前端面经 -> 正文阅读

[JavaScript知识库]招银网络科技秋招补录前端面经

笔试

  • 前面选择题都比较杂,后面专门的前端是两道编程题(感觉就leetcode简单题吧) + 一道html,css的情景应用

一面(11.17)

  • ① 自我介绍(由于提到最近看红宝书,因此提问相关知识点,这里我对第三章数据类型的印象很深,就提到了数据类型的隐式转换)
	let obj = {
		valueOf() {
			return 1;
		},
		toString() {
			return '1';
		}
	}
	// 引用类型转原始,优先调用valueOf >> toString
	+obj;
  • ② == 和 ===(第一时间忘记了,仅记得 nullundefined== 中相等,而在 === 中不相等)

    • 其实区别就在于 == 在比较的时候会隐式的进行数据类型的转换,再去比较它们,而 === 则不会,但null和undefined是规定的
    	'1' == 1 // true
    	'1' === 1 // false
    
    • 扩展一下,switch(ch)的ch比较与 == 一样
  • +- 的使用(优先转Number类型,引用则调用valueOf >> toString)

    	1 + '1' = '11'
    	1 - '1' = 0
    	[] + 1 = 1
    
  • ④ var,let,const的区别

    • 变量提升,但let,const由于TDZ因此不能在声明语句前去使用它
    • let,const(声明时候必须赋予初始值,后续不允许重新赋值)新增块级作用域,且存在 TDZ,变量 不可重复声明
  • ⑤ 继承(此处我仅答了基于原型链的继承)

    • 因为JS中的继承都是通过原型链来实现的,哪怕是class也仅是一个语法糖
    	function Person(bname,age) {
    		this.bname = bname;
    		this.age = age;
    	}
    	Person.prototype.className = 'Person';
    	
    	function People(bname,age) {
    		Person.call(this,bname,age);
    		this.className = 'People';
    	}
    	/*
    	let Fun = function() {};
    	Fun.prototype = Person;
    	let f = new Fun();
    	*/
    	let f = Object.create(Person);
    	Person.prototype.constructor = People;
    	People.prototype = f;
    	
    	let people = new People('moon',21);
    
    • 相应的 class 版本
    	 class Person {
    	    constructor(bname,age) {
    	      this.bname = bname;
    	      this.age = age;
    	    }
    	  }
    	  Person.prototype.className = 'Person';
    	  
    	  class People extends Person {
    	    constructor(bname,age) {
    	      super(bname,age); // Person.call(this,name,age);
    	      this.className = 'People';
    	    }
    	  }
    	  let people = new People('moon',21);
    	  console.log(people);
    
  • ⑥ this指向问题(对箭头函数认识不够清晰,当时答了1,1)

    • 首先都是通过对象调用方法,显然this应该在形成函数上下文时赋值为obj,但要注意 箭头函数 没有函数上下文的,它的 this 使用的是 当前的栈顶上下文(即全局上下文)
    	// 此处将var改为let或const,则第一个obj.f1()输出undefined,块级作用域的缘由
    	var a = 0; 
    	var obj = {
    		a: 1,
    		f1: () => {
    			console.log(this.a);
    		},
    		f2: function () {
    			console.log(this.a);
    		}
    	}
    	obj.f1(); // 0
    	obj.f2(); // 1
    
  • ⑦ call和apply

    • 均是改变this指向,区别在于后者传入的是数组形式
  • ⑧ React的生命周期(此处我说了React15和React16的不同构架)

  • ⑨ React.Component 和 React.PureComponent的区别

    • 这个其实就是在 类组件 中的 shouldComponentUpdate 添加传入的state或prop比较,防止前后没有变化但更新组件
    • 而在 函数式组件 中则对应了 useCallback或useMemo 搭配memo 的使用
    	shouldComponentUpdate(nextProp,nextState) {
    		return this.prop !== nextProp || this.state !== nextState;
    	}
    
  • ⑩ 浅克隆和深克隆

    • 浅克隆的实现方式
    	Object.assign()
    	...运算符
    	JSON.parse()JSON.stringify()
    
    • 深克隆的实现方式(像JSON方法实现的克隆就存在 特殊类型无法拷贝,箭头函数和非箭头函数,map,regexp,symbol为key等)
      • 之前对照神三元的实现了一遍,有兴趣的还是去看它的吧
  • END,反问:你怎么评价我呢(下次要换成对我学习上有什么建议才行,不然太明显了)

二面(11.19)

  • 由于自我介绍的时候说了自己用原生JS写了一个轮播图,不知道怎么的就扯到我喜欢原生JS(这个确实,但被问麻了)

    提到了那些烂大街的网易云音乐,面试官笑了笑,其实这个我很早就意识到了,所以没写在简历上

    • input标签 的值有几个

      text,password,radio,checkbox,button,submit,reset,file,range,date,number等

    • 有几种变量声明(function是提示的)

      	var let const function class *function
      
    • 原生与框架有什么不同:vdom,但不懂diff算法就没说了,其次使用方便

    • 如何border用css画三角形:其实就是利用border-width来控制三角形的高,然后其它方向的颜色设置为透明即可

      当时要画等腰三角形,其实等边也很容易画的,控制好比例即可

  • 由于是计科的,问为什么选前端 ?

  • 在学校还学过什么课程(提到数据库,计网等)

    • 然后考了个简单的sql,有字段name,type,统计不同选修课的人数(但由于太久没怎么用了,好多用法忘了(⊙﹏⊙))
      	select count(name) from cource group by type;
      
    • 有什么不同的数据结构(栈,队列,链表,树,图,堆,数组),追问数组和链表谁效率更好 ?
      • 链表的插入和删除更为简单,不需要移动元素,
      • 而数组的访问更为简单,插入和删除,需要移动元素,且达到申请的最大长度限制需要扩充
  • url 组成

    协议 : // 域名 : 端口 + 路径 + [请求参数] + #

    • 当时不知道#的用处和名称,面试官说叫 锚点,用于 定位
  • 编程:翻转一维数组,空间复杂度O(1)

    当时直接口诉了双指针解决,就没在追问和coding,直接进入反问环节


20min左右,当时很绝望,觉等自己挂了,但转念一想继续学习吧

  • 项目经验不足,好好做毕设
  • 原生不足,好好看书巩固知识,慢慢来吧

hr(11.23)

  • 常见的一些问题,就不多写了

后续

  • 博主由于没有更好的offer,因此就选择接受它了,之后还是要持续学习的。
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 17:32:12  更:2022-04-18 17:34:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:13:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码