位置:首页 > web前端 > javascript

2021年JS面试题总结

dearweb 发布:2021-05-09 22:50:13阅读:

这段时间在面试的过程中遇到了不少问题,今天将最近遇到的问题总结分享给大家,希望能够帮助到各位。

闭包指的是什么,具体特性有哪些,对页面安全有影响吗?

->闭包通俗理解就是能够读取其他函数内部变量的函数,使得函数不被GC回收,如果在开发过程中使用过多或者不规范,容易导致内存泄露,出现安全问题。

如何阻止默认事件

(1)return false;(2) event.preventDefault();

JS添加、删除、替换、插入到某个接点的方法

1)创建新节点
createElement() //创建一个具体的元素
createTextNode() //创建一个文本节点

2)添加、移除、替换、插入
appendChild() //添加
removeChild() //移除
replaceChild() //替换
insertBefore() //插入

3)查找
getElementsByTagName() //通过标签名称
getElementsByName() //通过元素的Name属性的值
getElementById() //通过元素Id,唯一性

document.load()和document.ready()的区别

document.onload 是在结构和样式,外部js以及图片加载完才执行js;document.ready是dom树创建完成就执行的方法,原生种没有这个方法,jquery中有 $().ready(function)

函数声明与函数表达式的区别在哪?

在Javscript中,解析器在向执行环境中加载数据时,对函数声明和函数表达式并非是一视同仁的,解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问),至于函数表达式,则必须等到解析器执行到它所在的代码行,才会真正被解析执行。

Javascript的事件流模型都有什么? 

“事件冒泡”:事件开始由最具体的元素接受,然后逐级向上传播;

“事件捕捉”:事件由最不具体的节点先接收,然后逐级向下,一直到最具体的;

“DOM事件流”:三个阶段:事件捕捉,目标阶段,事件冒泡; 

判断字符串以字母开头,后面可以是数字,下划线,字母,长度为6-30

var reg=/^[a-zA-Z]\w{5,29}$/;

null和undefined的区别在哪? 

null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。 当声明的变量还未被初始化时,变量的默认值为undefined。 null用来表示尚未存在的对象 undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。

典型用法是:

1)变量被声明了,但没有赋值时,就等于undefined。

2)调用函数时,应该提供的参数没有提供,该参数等于undefined。

3)对象没有赋值的属性,该属性的值为undefined。

4)函数没有返回值时,默认返回undefined。

 null表示"没有对象",即该处不应该有值。

典型用法是: 

1) 作为函数的参数,表示该函数的参数不是对象。 

2) 作为对象原型链的终点。

new操作符具体做了什么事情 

1、创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。 

2、属性和方法被加入到 this 引用的对象中。 

3、新创建的对象由 this 所引用,并且最后隐式的返回 this 。

对象的方法有哪些?

Object.assign()

通过复制一个或多个对象来创建一个新的对象。

Object.create()

使用指定的原型对象和属性创建一个新对象。

Object.defineProperty()

给对象添加一个属性并指定该属性的配置。

Object.defineProperties()

给对象添加多个属性并分别指定它们的配置。

Object.entries()

返回给定对象自身可枚举属性的[key, value]数组。

Object.freeze()

冻结对象:其他代码不能删除或更改任何属性。

Object.is()

比较两个值是否相同。所有 NaN 值都相等(这与==和===不同)。

Object.isExtensible()

判断对象是否可扩展。

Object.isFrozen()

判断对象是否已经冻结。

Object.isSealed()

判断对象是否已经密封。

Object.keys()

返回一个包含所有给定对象自身可枚举属性名称的数组。

Object.values()

返回给定对象自身可枚举值的数组。

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

defer和async、动态创建DOM方式(创建script,插入到DOM中,加载完毕后callBack)、按需异步载入js。

 javascript语言特性中,有哪些方面是相比于其他语言,有哪些不一样的地方

 javascript语言实现继承机制的核心就是原型,而不是Java语言那样的类式继承。Javascript解析引擎在读取一个Object的属性的值时,会沿着原型链向上寻找,如果最终没有找到,则该属性值为undefined;如果最终找到该属性的值,则返回结果。与这个过程不同的是,当javascript解析引擎执行“给一个Object的某个属性赋值”的时候,如果当前Object存在该属性,则改写该属性的值,如果当前的Object本身并不存在该属性,则赋值该属性的值。

24人点赞 返回栏目 提问 分享一波

小礼物走一波,支持作者

还没有人赞赏,支持一波吧

留言(问题紧急可添加微信 xxl18963067593) 评论仅代表网友个人 留言列表

暂无留言,快来抢沙发吧!

本刊热文
网友在读
手机扫码查看 手机扫码查看