iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >有哪些常见的JavaScript面试题
  • 411
分享到

有哪些常见的JavaScript面试题

2023-06-15 05:06:51 411人浏览 八月长安
摘要

今天就跟大家聊聊有关有哪些常见的javascript面试题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.this指向1.谁调用指向谁例:  function&

今天就跟大家聊聊有关有哪些常见的javascript面试题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1.this指向

1.谁调用指向谁

例:

  function foo(){        console.log("this",this);      }      new foo();

全局指向window

例:

 function foo(){        console.log("this",this); } foo();

构造函数的this指向构造函数实例

call/apply/bind 强制改变this指向

箭头函数的this始终指向父级上下文

2.事件模型:事件委托、代理?如何让事件先冒泡后捕获

事件委托:又名事件代理。事件委托就是利用事件冒泡,就是把子元素的事件都绑定到父元素上。如果子元素阻止了事件冒泡,那么委托也就没法实现了。

三个参数:事件名、事件的方法,是捕获还是冒泡

先冒泡后捕获

给一个元素绑定两个addEventListener,其中一个第三个参数设置为false(即冒泡),另一个第三个参数设置为true(即捕获),调整它们的代码顺序,将设置为false的监听事件放在设置为true的监听事件前面即可。

3.对象和面向对象

对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性

面向对象是一种编程思想(万物皆对象)与之对应的是面向过程(类:类的继承(子类继承父类的方法和属性)、封装(核心是低耦合高内聚)、多态(重载和重写)),js是一门面向对象的语言;

* js本身就是基于面向对象构建出来的(例如:JS中有很多内置类, Array, Object, Function, String; 像Promise就是es6中新增的一个内置类, 我们可以基于new Promise来创建一个实例, 管理异编程),

* 一般我们平时用的Vue/React/Jquery也都是基于面向对象构建出来,他们都是类,平时开发的时候都是创建他们的实例来操作.

4.for···in和for···of的区别

推荐在循环对象属性的时候,使用for…in,在遍历数组的时候使用for…of。

for…in 循环出的是 key,for…of 循环出的是 value

for…of 不能循环普通的对象,需要通过Object.keys()来强制使用

5.查找数组重复项

查找该元素首次出现的位置和最后出现的位置下标是否相同,同时判断新数组中是否不存在该元素,如果都满足则添加进新数组中去。

ES6-set

使用ES6中的set是最简单的去重方法

var arr  = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN,NaN,'NaN', 0, 0, 'a', 'a',{},{}]; function arr_unique1(arr){return  [...new Set(arr)];//或者//return  Array.from(new Set(arr));}arr_unique1(arr); // (13)[1, "true", true, 15, false, undefined, null, NaN, "NaN", 0, "a", {…}, {…}]

利用Map数据结构去重

function arr_unique2(arr) {  let map = new Map();  let array = new Array();  // 数组用于返回结果  for (let i = 0; i < arr.length; i++) {    if(map .has(arr[i])) {  // 如果有该key值      map .set(arr[i], true);    } else {      map .set(arr[i], false);   // 如果没有该key值      array .push(arr[i]);    }  }  return array ;} console.log(arr_unique2(arr)); //(13) [1, "a", "true", true, 15, false, 1, {…}, null, NaN, NaN, "NaN", 0, "a", {…}, undefined]

利用递归去重

function arr_unique3(arr) {     var array= arr;     var len = array.length;     array.sort(function(a,b){   //排序后更加方便去重     return a - b;    })     function loop(index){        if(index >= 1){            if(array[index] === array[index-1]){                array.splice(index,1);            }            loop(index - 1);    //递归loop,然后数组去重        }    }    loop(len-1);    return array;} console.log(arr_unique3(arr)); //(14) [1, "a", "true", true, 15, false, 1, {…}, null, NaN, NaN, "NaN", 0, "a", {…}, undefined]

forEach + indexOf

filter+indexOf

forEach + includes

6.数组扁平化

数组扁平化就是将一个多维数组转换为一个一维数组
实现基本方式

对数组的每一项进行遍历。

判断该项是否是数组。

如果该项不是数组则将其直接放进新数组。

是数组则回到1,继续迭代。

当数组遍历完成,返回这个新数组。

7.iframe的优缺点有哪些

优点:

①iframe能够原封不动的把嵌入的网页展现出来;

②如果有多个网页引用iframe,那么你只需要修改iframe的内容,就可以实现调用的每一个页面内容的更改,方便快捷。

③网页如果为了统一风格,头部和版本都是一样的,就可以写成一个页面,用iframe来嵌套,可以增加代码的可重用。

④可以由iframe来解决,加载缓慢的第三方内容如图标和广告,。

缺点:

①会产生很多页面不易管理;

②iframe框架结构有时会让人感到迷惑,如果框架个数多的话,可能会出现上下、左右滚动条,会分散访问者的注意力,用户体验度差。

③代码复杂,无法被一些搜索引擎索引到,这一点很关键,现在的搜索引擎爬虫还不能很好的处理iframe中的内容,所以使用iframe会不利于搜索引擎优化

④设备兼容性差。

⑤iframe框架页面会增加服务器Http请求,对于大型网站是不可取的。

8.函数柯里化(卡瑞化、加里化)

 把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。

 就是只传递给函数某一部分参数来调用,返回一个新函数去处理剩下的参数(闭包)

9.垃圾回收机制

浏览器的 Javascript 具有自动垃圾回收机制(GC:Garbage Collecation),也就是说,执行环境会负责管理代码执行过程中使用的内存。其原理是:垃圾收集器会定期(周期性)找出那些不在继续使用的变量,然后释放其内存。但是这个过程不是实时的,因为其开销比较大并且GC时停止响应其他操作,所以垃圾回收器会按照固定的时间间隔周期性的执行

10.window的onload事件和domcontentloaded

window.onload:

当一个资源及其依赖资源已完成加载时,将触发onload事件。

document.onDOMContentLoaded:

当初始的html文档被完全加载和解析完成之后,DOMContentLoaded事件被触发,而无需等待样式表、图像和子框架的完成加载。

区别:

①onload事件是DOM事件,onDOMContentLoaded是HTML5事件。

②onload事件会被样式表、图像和子框架阻塞,而onDOMContentLoaded不会。

③当加载的脚本内容并不包含立即执行DOM操作时,使用onDOMContentLoaded事件是个更好的选择,会比onload事件执行时间更早。

JavaScript的特点

1.JavaScript主要用来向HTML页面添加交互行为。2.JavaScript可以直接嵌入到HTML页面,但写成单独的js文件有利于结构和行为的分离。3.JavaScript具有跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行。

看完上述内容,你们对有哪些常见的JavaScript面试题有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: 有哪些常见的JavaScript面试题

本文链接: https://www.lsjlt.com/news/277670.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 有哪些常见的JavaScript面试题
    今天就跟大家聊聊有关有哪些常见的JavaScript面试题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.this指向1.谁调用指向谁例:  function&...
    99+
    2023-06-15
  • 常见的JavaScript面试题有哪些
    这篇文章主要介绍常见的JavaScript面试题有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!JavaScript可以做什么1.可以使网页具有交互性,例如响应用户点击,给用户提供更好的体验。2.可以处理表单,检...
    99+
    2023-06-14
  • JS常见面试试题有哪些
    这篇文章主要介绍了JS常见面试试题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:JavaScript面试题总结1,首先是数组...
    99+
    2024-04-02
  • 有哪些常见的SQL面试题
    本篇内容介绍了“有哪些常见的SQL面试题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.连续活跃问题这个...
    99+
    2024-04-02
  • jQuery常见的面试题有哪些
    这篇“jQuery常见的面试题有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“jQue...
    99+
    2024-04-02
  • 常见的PHP面试题有哪些
    本文小编为大家详细介绍“常见的PHP面试题有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“常见的PHP面试题有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。100 个常见的 PHP 面试题1) PHP是...
    99+
    2023-06-30
  • AJAX常见面试题有哪些
    这篇文章主要介绍了AJAX常见面试题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是AJAX,为什么要使用AjaxAJAX是“Asynchronous JavaSc...
    99+
    2023-06-04
  • Bootstrap常见面试题有哪些
    这篇“Bootstrap常见面试题有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Bootstrap常见面试题有哪些”文...
    99+
    2023-06-27
  • 常见的HTML5面试题有哪些
    这篇文章将为大家详细讲解有关常见的HTML5面试题有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。问题1、新的 HTML5 文档类型和字符集是? 答:HTML5 文档...
    99+
    2024-04-02
  • Python常见的面试题有哪些
    本篇内容介绍了“Python常见的面试题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、一行代码实现1--100之和利用sum()函...
    99+
    2023-06-16
  • python有哪些常见的面试题
    本篇内容介绍了“python有哪些常见的面试题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1、python下多线程的限制以及多进程中传...
    99+
    2023-06-02
  • Python的常见面试题有哪些
    本篇内容主要讲解“Python的常见面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python的常见面试题有哪些”吧!一. 遇到过得反爬虫策略以及解决方法通过headers反爬虫基于...
    99+
    2023-06-02
  • 常见的Redis面试题有哪些
    本篇内容介绍了“常见的Redis面试题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、什么是 Re...
    99+
    2024-04-02
  • Node.js有哪些常见面试题
    这篇文章主要介绍“Node.js有哪些常见面试题”,在日常操作中,相信很多人在Node.js有哪些常见面试题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Node.js有哪些...
    99+
    2024-04-02
  • Python有哪些常见面试题
    这篇文章主要讲解了“Python有哪些常见面试题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python有哪些常见面试题”吧! python是如何进行类型转换的?python提供了将变量或...
    99+
    2023-06-02
  • .net常见面试题有哪些
    这篇“.net常见面试题有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“.net常见面试题有哪些”文章吧。什么是.NET...
    99+
    2023-06-04
  • Tomcat常见面试题有哪些
    这篇文章将为大家详细讲解有关Tomcat常见面试题有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Tomcat 的缺省端口是多少,怎么修改  1)找到 Tomcat 目录下的 conf 文件夹  ...
    99+
    2023-06-04
  • 有哪些常见的java面试题
    这篇文章主要介绍“有哪些常见的java面试题”,在日常操作中,相信很多人在有哪些常见的java面试题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些常见的java面试题”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-20
  • 常见的laravel面试题有哪些
    本篇内容主要讲解“常见的laravel面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“常见的laravel面试题有哪些”吧!1) 什么是 Laravel Laravel 是一个开源的、...
    99+
    2023-06-29
  • Redis常见的面试题有哪些
    本篇内容介绍了“Redis常见的面试题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、缓存雪崩1....
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作