1.var const let(定义、理解,要会读代码)(一定要明白var a = 10 ;a = 10 之类的代码问题 ,主要是变量作用域和变量提升问题)
2. 箭头函数与普通函数的区别在于:
(1)、箭头函数没有this,所以需要通过查找作用域链来确定this的值,这就意味着如果箭头函数被非箭头函数包含,this绑定的就是最近一层非箭头函数的this,
(2)、箭头函数没有自己的arguments对象,但是可以访问外围函数的arguments对象
(3)、不能通过new关键字调用,同样也没有new.target值和原型
3. 箭头函数和function有什么区别
参考回答:
箭头函数根本就没有绑定自己的this,在箭头函数中调用 this 时,仅仅是简单的沿着作用域链向上寻找,找到最近的一个 this 拿来使用
4. JS中继承实现的几种方式,
参考回答:
(1)、原型链继承,将父类的实例作为子类的原型,他的特点是实例是子类的实例也是父类的实例,父类新增的原型方法/属性,子类都能够访问,并且原型链继承简单易于实现,缺点是来自原型对象的所有属性被所有实例共享,无法实现多继承,无法向父类构造函数传参。
(2)、构造继承,使用父类的构造函数来增强子类实例,即复制父类的实例属性给子类,
构造继承可以向父类传递参数,可以实现多继承,通过call多个父类对象。但是构造继承只能继承父类的实例属性和方法,不能继承原型属性和方法,无法实现函数服用,每个子类都有父类实例函数的副本,影响性能
(3)、实例继承,为父类实例添加新特性,作为子类实例返回,实例继承的特点是不限制调用方法,不管是new 子类()还是子类()返回的对象具有相同的效果,缺点是实例是父类的实例,不是子类的实例,不支持多继承
(4)、拷贝继承:特点:支持多继承,缺点:效率较低,内存占用高(因为要拷贝父类的属性)无法获取父类不可枚举的方法(不可枚举方法,不能使用for in 访问到)
(5)、组合继承:通过调用父类构造,继承父类的属性并保留传参的优点,然后通过将父类实例作为子类原型,实现函数复用
(6)、寄生组合继承:通过寄生方式,砍掉父类的实例属性,这样,在调用两次父类的构造的时候,就不会初始化两次实例方法/属性,避免的组合继承的缺点
5. css权重
6. 有关闭包
闭包函数:声明在一个函数中的函数,叫做闭包函数。
闭包:内部函数总是可以访问其所在的外部函数中声明的参数和变量,即使在其外部函数被返回(寿命终结)了之后。
7. 闭包的特点:
1.让外部访问函数内部变量成为可能
2.局部变量会常驻内存中
3.可以避免使用全局变量,防止全局变量污染
4.会造成内存泄露(有一块内存被长期占用,得不到释放)
8. 值类型和引用类型区别
答:简单数据类型:即基本数据类型或值类型
值类型:简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型(null除外)
string number,bollen,undefined,null
简单数据类型null 返回的是一个空的对象 object
如果有个变量以后打算用来储存为对象,暂时不知道放什么,就给null
复杂数据类型:又叫引用类型
复杂数据类型:在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型
通过new关键字创建的对象(系统对象,自定义对象),object,array,date等
简单数据类型放在堆里面,复杂数据类型放到栈里面
简单数据类型:栈里面直接开辟一个存储空间,存放的是值
复杂数据类型:首先在栈里面存放地址,十六进制表示 ,然后这个地址指向堆里面的数据,真正的对象实例是放到堆里面的。
简单类型传参
函数的形参也可看作是一个变量,当我们把一个值类型变量作为参数传给函数的形参时,其实是把变量在栈空间里面的值复制了一份给形参,那么在方法内部对形参做任何修改,都不会影响到外部变量。
复杂类型传参
函数的形参也可看作是一个变量,当我们把引用类型变量传给形参时,其实是把变量在栈空间里保存的堆地址复制给了形参,形参和实参起始保存的是同一个对地址,所以操作的是同一个对象
9.== 和===区别
==:判断相等,会默认转换数据类型
!== :不等号
=== :全等号,要求值和数据类型都一致(一模一样)
10.http协议、https协议、http2.0协议? 有关websocket?
11.三次握手、四次挥手
12.http和https哪个性能会更好一些?
13.UDP和TCP协议,udp传输报文的顺序?
14.了解的http的状态码有哪些
15.关于document.ready,和 window.onload 区别:
ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件)。
onload,指示页面包含图片等文件在内的所有元素都加载完成。
16.ajax是异步的请求吗?
17.场景:var a=0,然后写了ajax,在ajax成功函数里面定义a=2,在最外面打印a ,问a是多少?(异步)
答:应该为1
18.css实现一个下拉菜单(只用css,html,不用js)
用伪类选择器,鼠标经过就隐藏
19.不希望子盒子不撑大父盒子:
给父级盒子添加relative定位
20.希望子盒子相对于父盒子移动:子绝父相
21.css的float,子盒子都float:left,父盒子的高度是多少?无高度
22.jquery语法的es6,箭头函数与普通函数有什么区别吗?
23.function a 里面有个function b,function b里面的this指向谁?
答:window
24.jquery 取元素,$("p"),全局匹配,$(".class")取带class名的元素
js 取元素,document.queryselector
25.vue,watch 和 computed 区别
watch:一个元素影响多个元素,比如搜索,监听,发生变化时才会
computed :多个属性影响一个,比如页面结算,计算,输出变化前和变化后的值
26.算法题:
回文,输入一串数字,输出它的回文,
用负数循环???
五子棋判断是否在一条45度的直线上
1.斜率,2.x偏移等于y偏移
27. 实现页面垂直居中的方式
28. 要设置输入内容为0-100,方式
<input type="text" οnchange="if(!/(^0$)|(^100$)|(^\d{1,2}$)/.test(value)){value='';alert('输入格式不正确!');}" />
29. 关于定位你知道哪些
30. 200 300 400 500分别代表什么
31. v-show,v-if区别
32. 设置类名,v-bind?语法
33. 本地存储方式和具体方法
setItem
34. 定时器的创建和删除
setTimeout,setInterval
35.vue生命周期,vueX
36. flex弹性布局,如何用flex实现水平居中
37. seo和sem区别?
38. 跨域是什么?怎么解决?
39.math内置对象,有两个取整函数的区别?
40.淘宝人员发送一个优惠券链接,客户是如何收到的?
41.圣杯布局,双飞翼布局?
42.如何实现白天模式和黑夜模式?
43.goole搜索引擎s8底层是什么算法?
44.img会自带一个白色边框,如何设置将其消失
45.js除了网页制作,还能做什么?(vscode就是用typescript写的)
46.数据库的索引
47.数据库第二第三范式
48.关于float和position,如果给一个盒子同时添加了这两个属性,会发生什么
49.var s = "123" , console.log(typeof typeof s);结果是什么?
50.关于原型对象--proto--的读程序题
51.实现筛选出歌曲名称大于等于二的算法,(遍历 foreach、fittle都可以)
52.网页游戏的外挂实现
53.远程手机遥控关闭车窗中间发生了什么?怎么实现的?(轮询/建立长久连接)
54.手机支付宝/微信二维码扫描取件发生了什么?用插件扫面可以吗? (不可以,因为在扫描时会传递个人信息)
55.快递柜为什么只需要输入密码就可以弹开柜门?