【前端领域高频笔试面试】—— JavaScript相关(二,web前端开发面试会问啥

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
img

正文

6.简述创建函数的几种方式

7.Javascript如何实现继承?

(1)构造继承法;

(2)原型继承法;

(3)实例继承法。

8.Javascript创建对象的几种方式

9.iframe的优缺点

优点:

(1)解决加载缓慢的第三方内容如图标和广告等的加载问题;

(2)Security sandbox;

(3)并行加载脚本。

缺点:

(1)iframe会阻塞主页面的Onload事件;

(2)即时内容为空,加载也需要时间;

(3)没有语意。

10.请你谈谈Cookie的弊端

(1)Cookie数量和长度的限制。每个domain最多只能有20条cookie,每个cookie长度不能超过4KB,否则会被截掉。

(2)安全性问题。如果cookie被人拦截了,拦截者就可以取得所有的session信息,即使加密也与事无补,因为拦截者并不需要知道cookie的意义,他只要原样转发cookie就可以达到目的了。

(3)有些状态不可能保存在客户端。例如为了防止重复提交表单,我们需要在服务器端保存一个计数器。如果我们把这个计数器保存在客户端,那么它起不到任何作用。

11.js延迟加载的方式有哪些?

(1)defer和async;

(2)动态创建DOM方式(创建script,插入到DOM中,加载完毕后callBack);

(3)按需异步载入js。

12.documen.write和 innerHTML 的区别是什么?

document.write 只能重绘整个页面;

innerHTML 可以重绘页面的一部分。

13.哪些操作会造成内存泄漏?

内存泄漏指任何对象在不再拥有或需要它之后仍然存在。

(1)setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏;

(2)闭包;

(3)控制台日志;

(4)循环,在两个对象彼此引用且彼此保留时,就会产生一个循环。

14.判断一个字符串中出现次数最多的字符并统计这个次数

15.事件委托是什么?

让利用事件冒泡的原理,让自己的所触发的事件的父元素代替执行。

16.闭包是什么,有什么特性,对页面有什么影响?

闭包就是能够读取其他函数内部变量的函数,在本质上闭包就是将函数内部和函数外部连接起来的一座桥梁。

17.解释jsonp的原理,以及为什么不是真正的ajax

jsonp就是动态创建script标签,回调函数;

Ajax是页面无刷新请求数据操作。

18.javascript的本地对象,内置对象和宿主对象各有什么?

本地对象:array、obj、regexp等可以new实例化的;

内置对象:gload、Math等不可以实例化的;

宿主对象:浏览器自带的document、window等。

19.将数字12345678转化成RMB形式:12,345,678

20.生成5个不同的随机数

21.去掉数组中重复的数字

22.javascript中的垃圾回收机制是指?

在Javascript中,如果一个对象不再被引用,那么这个对象就会被回收。

如果两个对象互相引用,而不再被第3者所引用,那么这两个互相引用的对象也会被回收。

函数a被b引用,b又被a外的c引用,这样函数a执行后就不会被回收。

23.解释以下代码

function f1() {

var tmp = 1;

this.x = 3;

console.log(tmp); //代码A

console.log(this.x); //代码B

}

var obj = new f1(); //代码1

console.log(obj.x) //代码2

console.log(f1()); //代码3

这道题让我重新认识了对象和函数,首先代码1实例化了f1这个类,相当于执行了f1函数;所以这个时候 A 会输出1,而代码B这个时候的this代表的是实例化的当前对象obj,B输出3;代码2毋庸置疑会输出3;而代码3这里将不再是一个类,只是一个函数,所以A输出1,代码B的this代表的其实就是window对象,那么this.x 就是一个全局变量,相当于在外部的一个全局变量,所以B输出3。最后代由于f1没有返回值所以将会返回underfined。

答案:1, 3, 3, 1, 3, underfined 。

24.以下代码输出结果为

var o1 = new Object();

var o2 = o1;

o2.name = “CSSer”;

console.log(o1.name);

js中有两种数据类型,分别是基本数据类型和引用数据类型(object Array);对于保存基本类型值的变量变量是按值访问的,因为实际操作的是变量实际保存的值;对于保存引用类型值的变量,变量是按引用访问的,我们操作的是变量值所引用(指向)的对象。

答案:CSSer;

25.JS的继承性

26.加减运算

alert(‘5’+3);   //53 string

alert(‘5’+‘3’);  //53 string

alert(‘5’-3);   //2 number

alert(‘5’-‘3’);  //2 number

27.什么是同源策略?

同协议、端口和域名的安全策略,由王景公司提出来的安全协议。

28.声明对象,添加属性,输出属性

29.匹配输入的字符:第一个必须是字母或下划线开头,长度5-20

  • 21
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值