JS面试题汇总(十),2024年最新计算机小白学什么语言

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

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

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

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

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

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

正文

  • 原型对象也是普通的对象,是对象一个自带隐式的 __proto__ 属性,原型也有可能有自己的原型,如果一个原型对象的原型不为 null 的话,我们就称之为原型链。

  • 原型链是由一些用来继承和共享属性的对象组成的(有限的)对象链。

  • JavaScript 的数据对象有那些属性值?

writable:这个属性的值是否可以改。

configurable:这个属性的配置是否可以删除,修改。

enumerable:这个属性是否能在 for…in 循环中遍历出来或在 Object. keys 中列举出来。

value:属性值。

  • 当我们需要一个属性的时,Javascript 引擎会先看当前对象中是否有这个属性, 如果没有的话,就会查找他的 Prototype 对象是否有这个属性。

function clone(proto) {

function Dummy() {}

Dummy.prototype = proto;

Dummy.prototype.constructor = Dummy;

return new Dummy(); //等价于Object.create(Person);

}

function object(old) {

function F() {}

F.prototype = old;

return new F();

}

var newObj = object(oldObject);

✨94. 请解释什么是事件代理

参考答案:

事件委托本质上是利用了浏览器事件冒泡的机制。因为事件在冒泡过程中会上传到父节点,并且父节点可以通过事件对象获取到

目标节点,因此可以把子节点的监听函数定义在父节点上,由父节点的监听函数统一处理多个子元素的事件,这种方式称为事件代理。

使用事件代理我们可以不必要为每一个子元素都绑定一个监听事件,这样减少了内存上的消耗。并且使用事件代理我们还可以实现事件的动态绑定,比如说新增了一个子节点,我们并不需要单独地为它添加一个监听事件,它所发生的事件会交给父元素中的监听函数来处理。

👓参考

✨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.exportsexports 的属性赋值来达到暴露模块对象的⽬的

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语句

学习分享,共勉

题外话,毕竟我工作多年,深知技术改革和创新的方向,Flutter作为跨平台开发技术、Flutter以其美观、快速、高效、开放等优势迅速俘获人心

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-QwwJ0410-1713321151621)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 17
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值