总结
技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
✨95. offsetWidth/offsetHeight, clientWidth/clientHeight 与 scrollWidth/scrollHeight 的区别
参考答案:
offsetWidth / offsetHeight 返回值包含content + padding + border,效果与 e.getBoundingClientRect()相同
clientWidth / clientHeight 返回值只包含content + padding,如果有滚动条,也不包含滚动条
scrollWidth / scrollHeight 返回值包含content + padding + 溢出内容的尺⼨
✨96. 谈谈你对 AMD、CMD 的理解
参考答案:
-
CommonJS
是服务器端模块的规范,Node.js
采⽤了这个规范。 -
CommonJS
规范加载模 块是同步的,也就是说,只有加载完成,才能执⾏后⾯的操作。AMD 规范则是⾮同步加载 模块,允许指定回调函数
AMD 推荐的⻛格通过返回⼀个对象做为模块对象, CommonJS
的⻛格通过对module.exports
或 exports
的属性赋值来达到暴露模块对象的⽬的
es6模块 CommonJS、AMD、CMD
-
CommonJS
的规范中,每个 JavaScript ⽂件就是⼀个独⽴的模块上下⽂(module context
),在这个上下⽂中默认创建的属性都是私有的。也就是说,在⼀个⽂件定义的 变量(还包括函数和类),都是私有的,对其他⽂件是不可⻅的 -
CommonJS
是同步加载模块,在浏览器中会出现堵塞情况,所以不适⽤ -
AMD
异步,需要定义回调define
⽅式 -
es6
⼀个模块就是⼀个独⽴的⽂件,该⽂件内部的所有变量,外部⽆法获取。如果你希 望外部能够读取模块内部的某个变量,就必须使⽤export
关键字输出该变量es6
还可以导出类、⽅法,⾃动适⽤严格模式
✨97. web 开发中会话跟踪的方法有哪些
参考答案:
会话跟踪就是浏览器和服务器通信
1、cookie
2、session
3、隐藏input
4、url重写
5、ip地址
✨98. 说几条写 JavaScript 的基本规范?
参考答案:
1、不要在同一行声明多个变量
2、使用===或!==来比较
3、使用字面量的方式来创建对象、数组,替代new Array这种形式
4、不要使用全局函数
5、switch语句必须要带default分支
6、函数不应该有的时候有return,有的时候没有return
7、fon-in循环中的变量,用var关键字说明作用域,防止变量污染
8、变量的声明遵循驼峰命名法,用let替代val,声明构造函数时首字母大写,定义常量的时候尽量用大写字母,用_分割
9、三元表达式可以替代if语句
10、&&和||是可以短路的,使用&&时如果前面一个值是错的,那么后面的值不用判断,使用||时,如果前面一个值是对的,那么后面的值不用判断
11、比较数据类型以下6中情况是false,其他都是true------false、“”、0、null、undefined、NaN
12、数据类型检测用typeof,对象类型检测用instanceof
13、异步加载第三方的内容
14、单行注释//,多行注释/**/
15、使用命名空间解决变量名冲突
16、多人协作开发,新建一个js文件,const声明常量,在js文件中引用,用常量名替代方法名,这样做可以防止命名冲突
✨99. JavaScript 有几种类型的值?你能画一下他们的内存图吗?
参考答案:
数据类型是所有程序都会涉及到的,是计算机语言比较基础知识,这种问题被问到的可能性其实并不大,这样的题目只要花点时间把它记下来就好了,难易程度一般。
两大类:
栈:原始数据类型(Undefined,Null,Boolean,Number、String)
堆:引用数据类型(对象、数组和函数)
区别:
两种类型的区别是:存储位置不同;
原始数据类型直接存储在栈(stack)中的简单数据段,占据空间小、大小固定,属于被频繁使用数据,所以放入栈中存储;
引用数据类型存储在堆(heap)中的对象,占据空间大、大小不固定,如果存储在栈中,将会影响程序运行的性能;引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其
在栈中的地址,取得地址后从堆中获得实体
✨100. eval 是做什么的?
参考答案:
1. 它的功能是把对应的字符串解析成 JS 代码并运行
2. 应该避免使用 eval,不安全,非常耗性能(2 次,一次解析成 js 语句,一次执行)
最后
基础知识是前端一面必问的,如果你在基础知识这一块翻车了,就算你框架玩的再6,webpack、git、node学习的再好也无济于事,因为对方就不会再给你展示的机会,千万不要因为基础错过了自己心怡的公司。前端的基础知识杂且多,并不是理解就ok了,有些是真的要去记。当然了我们是牛x的前端工程师,每天像背英语单词一样去背知识点就没必要了,只要平时工作中多注意总结,面试前端刷下题目就可以了。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
再给你展示的机会,千万不要因为基础错过了自己心怡的公司。前端的基础知识杂且多,并不是理解就ok了,有些是真的要去记。当然了我们是牛x的前端工程师,每天像背英语单词一样去背知识点就没必要了,只要平时工作中多注意总结,面试前端刷下题目就可以了。