索尼外包,这位面试官人很好,非常客气,当时就给了offer,然后问的题目也不难,都是非常简单的八股,他们甲方很不错我确实是很想去的,只是感觉不能一直做外包了,得想办法跳出这个坑。

难度: 简单

我百度加上自己理解尝试写的答案,不对的请务必指正

说说面向对象的三大特性
封装:封装就是在类里面定义私有字段,外面想获取它的数据无法直接访问只能通过get方法来访问,在js里面我们通过闭包的方式实现封装
继承:就是子类可以继承父类的属性和方法,一个父类被多个子类继承,就相当于在它的基础上衍生出各种不同的功能,也体现了代码的复用。在js里面我们通过原型链的方式实现继承
多态:多态就是父类的引用可以指向不同的子类对象,从而表现出不同的行为,由于js是弱类型,我个人没看出来js中体现了多态

ts中的泛型是什么
在定义类的时候可以用尖括号设置泛型,在类的属性和函数中使用,在new的时候把具体类型传入,这样一来就对这个类中涉及到的数据起到一个限制作用

js垃圾回收机制
目的是为了释放内存防止内存泄漏。垃圾回收的gc算法实现方式有两种,一个是采用标记清除法, 另一个是引用计数法
其中标记清除法比较常用,它是把所有的活动对象进行标记,随后清除没有标记的对象。
引用计数法是每当一个对象被指向一个引用时,这个对象的引用数值加1,不指向的时候数值减1,清除所有引用数值为0的对象。但是这种方法没办法解决循环引用的问题。

讲讲虚拟dom树
dom是树形数据结构,然后虚拟dom是一种不同的树形数据结构,两棵树的节点一一对应,虚拟dom树的节点比真实dom节点体积更小,它减少了许多属性和事件,因此减少了内存占用,加快了加载速度。

diff算法通过广度优先搜索来找出两颗树的区别,就是比较每个树节点的类型和属性是否相同,把其中存在差异的节点放到一个补丁数组里面,最后就按照补丁数组来更新真实的dom树,这样一来就减少了重排的次数,提升了效率

diff算法的时间复杂度是如何从o(n^3)降到o(n)的
传统的diff算法需要首先对两个树的每个节点进行两两对比,就是O(n^2 ),然后还需要再遍历一次进行树的修改,因此加起来是O(n^3)
而React的diff算法按照层次遍历,每个节点只会对比一次,这是因为当年脸书对于dom节点有了全新的认识,因此大幅度提升了效率

react中是如何进行传值的?
父传子: 直接在调用子组件的时候写上属性即可,子组件里面用prop调用
子传父:可以在父组件中写一个set方法,并把这个方法作为属性传到子组件中,然后在子组件中调用这个set方法,即完成对父组件的传值

多页面如何共享一个值?
可以通过sessionStorage把数据保存在一个会话中,同个请求中的会话在整个浏览器都可以访问到

// 保存数据到sessionStorage
sessionStorage.setItem('key', 'value');
// 从sessionStorage获取数据
var data =sessionStorage.getItem('key');
// 从sessionStorage删除保存的数据
sessionStorage.removeItem('key');
// 从sessionStorage删除所有保存的数据
sessionStorage.clear();

promise什么用途,什么是回调地狱?
回调地狱就是回调函数里面嵌套了回调函数,嵌套次数过多显得很不美观
这时候我们可以把异步回调函数写成Promise的形式,先用all()初始化promise实例,再在下面不断的调用then,里面传入需要回调函数,这样一来就只以一层的形式完成了回调,看上去就比较美观。平时我们一般用于ajax请求

对敏捷开发有了解吗?
.

2022.08.22 索尼外包面试相关推荐

  1. 2022.7.14 花旗银行外包面试

    提了离职,又开始出来找工作了,总体来说面试官人很好,问的都是老生常谈的问题,很有诚意,但是我好久没背八股,加上是最近第一次面试,没有准备好,寄了! 难度: 简单 我百度加上自己理解尝试写的答案,不对的 ...

  2. 2022.08.31 特赞面试

    毕竟大厂的面试,不得不说是真的难,一点八股都没问,上来就是一道题,要求给出优化的思路,详细讲讲,讲不出来基本就凉了,后面也就随便问问而已. 对于大厂感觉还是自己实力远远不够,有没有大佬知道这个怎么优化 ...

  3. spring注解方式 2022/08/22

    spring注解方式 代码整体布局: 代码如下: pom.xml: spring-1.xml: Student: Test: Test2: spring-2.xml: Car: Driver: Tes ...

  4. 目标检测第5步:如何在Windows 10系统下,搭建YOLOv5(5.0)环境?保姆级,没有人比这个更详细了(更新时间2022.3.22)

    (请先看置顶博文)本博打开方式!!!请详读!!!请详读!!!请详读!!!_Cat-CSDN博客 目录 一.安装Anaconda或Miniconda 二.安装CUDA 三.安装cuDNN 四.安装Pyt ...

  5. 1168:大整数加法--2022.01.22 AC

    /* 1168:大整数加法--2022.01.22 AC http://ybt.ssoier.cn:8088/problem_show.php?pid=1168c++中 cin.cin.get().c ...

  6. H5在线CAD,网页CAD,MxDraw云图平台2022.08.24更新

    SDK开发包下载地址: MxDraw云图平台 2022.08.24更新_梦想CAD控件 1. 增加对像扩展数据功能 2. 增加CAD结合GIS使用功能 https://www.mxdraw3d.com ...

  7. CSP-J1 CSP-S1 初赛 第1轮(2022.08.09)

    2022年CSP-J1 CSP-S1 第1轮初赛 报名指南 ​​​​​​2022年CSP-J1 CSP-S1 第1轮初赛 报名指南_dllglvzhenfeng的博客-CSDN博客 [教程]图文详解 ...

  8. 论文阅读笔记 1.《Open Flow: Enabling Innovation in Campus Networks》(2022.12.22)

    论文阅读笔记 1.<Open Flow: Enabling Innovation in Campus Networks>(2022.12.22) 一.论文主要内容 二.对 OpenFlow ...

  9. 八股文-- 2022.08.31

    途虎养车2022.08.31 在Java中,LinkedList类有而ArrayList类没有的方法是:removeLast()方法 LinkedList :底层基于双向链表实现,不支持高效的随机元素 ...

最新文章

  1. 牛年前的一小结——打响本命年的第一枪,继续刷题!
  2. 订阅了李笑来的“通往财富自由之路”栏目
  3. C++ 编译器多态与运行时多态
  4. 【译】Notes on Blockchain Governance
  5. Ubuntu 安装极点五笔 for ibus
  6. Keras-Sequential模型(2)
  7. 自然语言处理基础技术工具篇之NLTK
  8. python安装tensorflow失败解决办法_pip安装tensorflow总是失败怎么办?
  9. 2021年中国百香果果汁进出口贸易分析:贸易逆差明显,越南是主要进口国[图]
  10. 【蓝桥杯】真题训练 2014年C++A组 题4 史丰收速算
  11. win7浏览器IE9升级到IE10后无法启动的问题
  12. ES文件浏览器访问电脑共享文件夹,输入正确的密码、账号,始终在登录界面
  13. poi批量导入导出Excel(一、需要建数据库表)
  14. 支付机构违规已成常态 盛付通再次被央行处罚
  15. java 中定义整形变量_智慧职教: 在Java语言中,一条语句可以定义多个变量。例如int a; b;就定义了两个整型变量a 和b。...
  16. Linux 入门基本操作
  17. photoshop颈纹去除
  18. 前端webap下新增后缀名字类型。前台报错404,访问不到的解决办法是:
  19. 移动硬盘安装debian,支持BIOS和uefi双引导
  20. 使用OpenVINO运行PPTracking下FairMOT多目标跟踪模型

热门文章

  1. 手把手教你实现一个微信自动回复机器人
  2. 国家计算机类的部门,国考部门
  3. 《荒野之息》关卡设计中的“精神控制”
  4. 《51单片机》用Proteus8画仿真电路的步骤
  5. 浅谈一下安装了conda之后安装miniconda带来的一系列问题
  6. python怎么定义常量_Python定义常量
  7. MVC框架与MVVC框架的区别
  8. C++设置默认的控制台前景和背景颜色
  9. 联迪商用入围通联支付2017年度POS设备集中采购
  10. mac linux 压缩解压gz