技术面
汇川一面(好多基础)
- 数组对象
数组也是一种对象,是对象的特殊形式
typeof arr返回的是object- DOM各种操作
获取节点:getElementById、querySelector、querySelectorAll
增删改:creatElement、appendchild、removechild、repalcechild、insertBefore- 怎么复制一个DOM结点
cloneNode- DOM事件
鼠标事件:onclick、onmouseover、onmousedown、onmouseup
键盘事件:onkeydown、onkeyup
表单事件:onsubmit、onchange
其他:onload、onmousewheel- 注册一个事件(三种)
1、标签中写名称,再在js中编写代码
2、直接js中对象.οnclick=function
3、addeventlistener- 闭包及其优缺点
js有全局变量和局部变量,函数内部可以访问函数外部的变量,但是函数外部无法读取函数内部的局部变量。
但是闭包可以做到,闭包是定义在一个函数内部的子函数,它有权访问这个函数作用域中的变量。我的理解闭包是函数内部和函数外部连接起来的桥梁。
优点:函数外访问函数内的值,可以封装对象的私有属性和私有方法。避免变量被垃圾回收。
缺点:变量会驻留在内存中,造成内存损耗。(解决:数据设置为null)
- 作用域链
函数都会有作用域,在函数中找变量,先查找当前作用域,没有再去上级查找,直到查到全局作用域。- 函数(方法)的作用——开放性问题
1、作为构造函数来new新对象
2、作为闭包
3、封装方法、执行事件- 事件循环
JavaScript是单线程的语言
js代码执行顺序是:同步任务=》进入任务队列的异步任务进行事件循环(微任务全部完成=》宏任务)
- html常用标签
p、div、span、input、ul、li、
百度提前批一面
- css居中布局
1、margin:0 auto
2、flex布局
3、gird布局
4、position+transform的translate- transform
旋转:rotate
缩放:scale
移动:translate
拉伸:skew- js基本数据类型
string、number、Boolean、null、undefined、symbol、bigint- typeof
六种结果:number、string、Boolean、undefined、object、function- 原型链
所有的函数都有prototype属性(原型),所有的对象都有__proto__属性。逐层深入直到Object对象的原型,这样就形成了原型链。- 闭包
js有全局变量和局部变量,函数内部可以访问函数外部的变量,但是函数外部无法读取函数内部的局部变量。
但是闭包可以做到,闭包是定义在一个函数内部的子函数,它有权访问这个函数作用域中的变量。我的理解闭包是函数内部和函数外部连接起来的桥梁。
- 垃圾回收
(闭包使函数的引用依然存在,不会被垃圾回收。)
定时找到不再使用的变量和函数,释放掉其占用的内存。
函数的变量被标记,函数执行完释放内存,其他的先复制进空闲区域。
引用计数,引用+1,用完-1,直到0释放。- 数组方法
Javascript常用的数组方法_Humor_Mr的博客-CSDN博客_js数组方法- reduce方法
也是一种循环操作,两个参数,第一个参数是回调函数,函数可以有四个参数分别为(上一步计算的返回值,当前元素,当前元素索引,当前的数组对象),
arr.reduce(function(){},初始值(任意类型))- vue响应式原理
vue2
原理是object.defineproperty数据挟持,
数据改变时,首先遍历data,使用defineproperty拦截所有属性,当用户操作视图会触发set拦截器,set首先改变当前的数据,然后通知watch(观察者)使视图更新,页面重绘,再从get中获取相应数据。
vue3
原理是proxy数据代理
proxy代理拦截data中属性的所有操作,包括属性的镀锡,属性的添加删除,其次使用reflect进行反射,动态地对被代理对象的相应属性进行特定的操作。代理对象和反射对象必须相互配合- vue生命周期
create、mount、update、destroy
activated、deactivated
上海汉得一面
- 相对定位和绝对定位的使用场景
- js数据类型检测
- 深拷贝和浅拷贝
- this指向,回调函数的this指向
- 浮点计算的精度问题解决方法
parseFloat(a.fixed(2))- 防抖实现
- promise用法
- async和处理异常
try-catch- vue循环中key的作用
给每个dom元素加上key作为唯一标识 ,diff算法可以正确的识别这个节点,使页面渲染更加迅速。- vue的ref作用
获取dom,相当于起了一个id名字
使用this.$refs.refname
父使用子组件的ref,调用子组件的方法- vue2如何实现数据双向绑定
- vue如何设置深层对象值
vm.$set("demo",a.b.c.d)- proxy原理
- echarts创建和销毁
销毁myChart.dispose();- vue3的好处
- vue状态管理vuex
- node、js用了什么
- git和webpack
中新赛克一面
路由传参两种方式
1、query(类似get请求)
获取:
2、params (类似post)
获取:
京东方一面
1、已过
海康一面
地图
中新赛克二面
https
tcp
设计模式
对称加密算法和非对称加密算法
创维一面
elementui二次封装
网络安全
父子传值
同程旅行一面
重绘回流
http状态码
富士通南大一面
伪元素选择器和使用场景
webpack配置
websocket
map和forecah的区别
数组找的某个值就退出。
some 当内部return true时跳出整个循环
对象判断是否有某个key
!("key" in obj) 返回值
hasownproperty
美的群面
海量数据处理
家具系统
浩鲸科技一面
post和put的区别
1、PUT时,必须明确知道要操作的对象,post不需要
2、put具有幂等性,执行多次为同一结果
webpack作用和一些配置
json的深拷贝有哪些缺点
1、如果 obj 里面有时间对象,则 JSON.stringify 后再 JSON.parse 的结果,时间将转 为字符串的形式,而不是对象的形式
2、将正则、ERROR对象转化为空对象
sass使用
$声明变量
嵌套
&代替
支持运算支持判断
HR面
汇川技术二面(hr面)
自我介绍
大学难玩的事,小程序
学生会社团
家庭成员
未来规划
薪资
游戏
喝酒
运动
加班看法
是否写文章放抖音
对汇川的了解
是否有别的面试
tcl一面
小程序及遇到的困难
字节跳动项目
其他无关紧要的。
thought works一面(结对编程)
购物车项目编程
git相关
代码库