程序员的知识教程库

网站首页 > 教程分享 正文

前端JS面试(前端面试 js)

henian88 2024-08-17 16:03:48 教程分享 67 ℃ 0 评论

1. 【基础】javascript的typeof返回哪些数据类型?

String、boolean、number、undefined、function、object。

2. 【基础】解释 JavaScript 中“null”和“undefined”之间的区别?

null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。

当声明的变量还未被初始化时,变量的默认值为undefined。 null用来表示尚未存在的对象

undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:

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

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

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

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

null表示"没有对象",即该处不应该有值。典型用法是:

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

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

3. 【基础】如何在 JavaScript 中比较两个对象?

对于两个非原始值,比如两个对象(包括函数和数组),== 和 === 比较都只是检查它们的引用是否匹配,并不会检查实际引用的内容。

对于对象的深度比较,可以使用 deep-equal 这个库,或者自己实现递归比较算法。

4. 【基础】说明如何使用JavaScript提交表单?

请使用document.form [0] .submit()。

5. 【中级】new操作符具体干了什么呢?

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

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

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

6. 【中级】document load 和document ready的区别?

document.onload 是在结构和样式,外部js以及图片加载完才执行js

document.ready是dom树创建完成就执行的方法,原生种没有这个方法,jquery中有 $().ready(function)。

7. 【中级】ajax请求的时候get 和post方式的区别。如何解析json数据?

一个在url后面 ,一个放在虚拟载体里。

get有大小限制(只能提交少量参数)

安全问题。

应用不同。

请求数据和提交数据。

使用JSON.parse解析数据。

8. 【高级】解释事件冒泡以及如何阻止它?

事件冒泡是指嵌套最深的元素触发一个事件,然后这个事件顺着嵌套顺序在父元素上触发。

防止事件冒泡的一种方法是使用 event.cancelBubble 或 event.stopPropagation()(低于 IE 9)。

9. 【高级】什么是跨域?跨域请求资源的方法有哪些?

由于浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域。存在跨域的情况:

1、网络协议不同,如http协议访问https协议。

2、端口不同,如80端口访问8080端口。

3、域名不同,如qianduanblog.com访问baidu.com。

4、子域名不同,如abc.qianduanblog.com访问def.qianduanblog.com。

5、域名和域名对应ip,如www.a.com访问20.205.28.90.

跨域请求资源的方法:porxy代理、CORS 【Cross-Origin Resource Sharing】、jsonp

10.【高级】dom事件委托什么原理,有什么优缺点?

优点

1.可以大量节省内存占用,减少事件注册。比如ui上代理所有li的click事件就很不错。

2.可以实现当新增子对象时,无需再对其进行事件绑定,对于动态内容部分尤为合适

缺点

事件代理的常用应用应该仅限于上述需求,如果把所有事件都用事件代理,可能会出现事件误判。即本不该被触发的事件被绑定上了事件。


PS:小弟不才,略知一二,欢迎大家关注、评论、转发。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表