关于前端开发我所遇到的面试题目记录

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.快递柜为什么只需要输入密码就可以弹开柜门?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值