前端 > JS 笔试题面试考题(21-25)

news2025/5/12 21:45:38
  1. 简述请看下面的代码片段并回答以下问题 ?
for (var i = 0; i< 5; i++){
        var btn= document.createElement('button');
        btn.appendChild(document.createTextNode('Button' + i));
        btn.addEventListener('click', function(){ console.log(`${i}` );});
        document.body.appendChild(btn);   
    }

(1)当用户单击“ Button4”的时候会输出什么到控制台,为什么?
(2)提供一个或多个可获取当前i的值的实现方案。
面试通过率:50.0%
推荐指数: ★★★★★ 试题难度: 中级 试题类型: 编程题

(1) 无论用户单击什么按钮,数字5将总会输出到控制台。
这是因为,当调用onclick方法(对于任何按钮)的时候,for循环已经结柬,变量i已经获得了5的值。
(2)
<! DOCTYPE html>
<html>
    <head></head>
    <body></body>
    <script>
    for (var i = 0; i< 5; i++){
        let num = i
        var btn= document.createElement('button');
        btn.appendChild(document.createTextNode('Button' + i));
        btn.addEventListener('click', function(){ console.log(`${num}`);});
        document.body.appendChild(btn);   
    }
    </script>
</html>
  1. 下面的JavaScript代码将输出什么到控制台?为什么?
var arr1 ="john".split(' ');
var arr2= arr1.reverse();
var arr3 ="jones".split(' ');
arr2.push(arr3);
console.log("array 1:length="+ arr1.length +" last="+ arr1.slice(-1));
console.log("array 2:length="+ arr2.length +" last="+ arr2.slice(-1));
   面试通过率:55.0%

推荐指数: ★★★★ 试题难度: 中级 试题类型: 编程题

//输出结果:
// array 1:length=2 last=jones
// array 2:length=2 last=jones
// 注:arr1.slice(-1) ---> [["jones"]]       arr2.slice(-1) ---> [["jones"]]
// 为什么在输出中的arr1.slice(-1)是"jones", 比如console.log("--" + arr1.slice(-1)) --> --jones,外面的括号最被除去
  1. 下面的JavaScript代码将输出什么到控制台?
		console.log(1+"2"+"2"); 
        console.log(1+ +"2"+"2"); 
        console.log(1+-"1"+"2"); 
        console.log(+"1"+"1"+"2"); 
        console.log("A"-"B"+"2"); 
        console.log("A"-"B"+2);
   面试通过率:40.0%

推荐指数: ★★★★★ 试题难度: 高难 试题类型: 编程题

// javascript是一门弱类型语言,它会对值进行自动类型转换
// 122   1遇到加号,会自动转换成"1"
// 32 正号的优先级比加减都要高,"2"遇到正号自动转换为2
// 02 同上
// NaN
// NaN
  1. 下面的递归代码在数组列表偏大的情况下会导致堆栈溢出,在保留递归模式的基础上,怎么解决这个问题?
		var list= readHugeList();
        var nextListItem = function(){
            var item -= list.pop();
            if (item){
                nextListItem();
            }
        };
        // 潜在的堆栈溢出可以通过修改 nextListltem函数避免。
        var list readHugeList();
        var nextListItem function(){
            var item =list.pop();
            if (item){
                setTimeout(nextListItem, 0);
            }
        };
  面试通过率:85.0%

推荐指数: ★★★ 试题难度: 初级 试题类型: 编程题

堆栈溢出之所以会被消除,是因为事件循环操纵了递归,而不是调用堆栈;
函数退出,因此就清空调用堆栈;
因此,该方法从头到尾都没有直接的递归调用,所以无论迭代次数的多少,调用堆栈一直保持清空的状态
  1. 下面JavaScript的代码将输出什么?闭包在这里能起什么作用?
for (var i=0; i<5; i++){
	(function(){
	     setTimeout(function () {console.log(i)}, i *1000);
	 })();
}
   面试通过率:76.0%

推荐指数: ★★★ 试题难度: 中级 试题类型: 编程题

// 5 5 5 5 5
原因是,在循环中执行的每个函数将先整个循环完成之后执行,因此,将会引用存储在i中的最后一个值,那就是5。
闭包可以为每次迭代创建一个唯一的作用域,存储作用域内的循环变量,如下代码会按预期输出0、1、2、3和4到控制台。
for (var i=0; i<5; i++){
	(function(){
	      let x = i;
	      setTimeout(function () {console.log(x)}, i *1000);
	  })();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1446958.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

侧信道攻击是什么

侧信道攻击是什么? 侧信道攻击是一种利用系统的物理实现或实现的特定属性来获取信息的攻击方式。这些攻击利用了系统在执行特定操作时产生的信息泄漏&#xff0c;而不是直接攻击系统的计算或加密算法。侧信道攻击通常利用系统的功耗、电磁辐射、时间延迟等物理特性进行攻击&a…

【运维测试】测试理论+工具总结笔记第1篇:测试理论的主要内容(已分享,附代码)

本系列文章md笔记&#xff08;已分享&#xff09;主要讨论测试理论测试工具相关知识。Python测试理论的主要内容&#xff0c;掌握软件测试的基本流程&#xff0c;知道软件测试的V和W模型的优缺点&#xff0c;掌握测试用例设计的要素&#xff0c;掌握等价类划分法、边界值法、因…

【C语言期末项目-通讯录】-升级可动态申请内存版(手把手详细过程,期末评分A+的项目,答辩辅助神博文,建议三连点赞收藏)

目录 ​编辑 前言&#xff1a; 1.项目功能需求分析 2.文件框架说明 3.程序主框架实现 4.创建联系人结构体类型和通讯录结构体类型 4.1创建通讯录 5.程序功能实现--封装功能函数实现不同功能 5.1通讯录初始化 5.2增加联系人 5.3显示所有联系人的信息 5.4删除指定…

COMSOL方法编辑器中产生随机数(可控制随机种子)

简介 COMSOL二次开发主要在方法编辑器中进行&#xff0c;编程语言为Java。有时需要产生随机数&#xff08;比如随机生成一些球体&#xff09;&#xff0c;方法编辑器中已经存在Math.random()可直接使用。 但是&#xff0c;对于某些特殊情况&#xff0c;我希望每次运行代码产生…

最新Burp Suite入门讲解

Burp Suite的安装 Burp Suite是一款集成化的渗透测试工具&#xff0c;包含了很多功能&#xff0c;可以帮助我们高效地完成对Web应用程序的渗透测试和安全检测。 Burp Suite由Java语言编写&#xff0c;Java自身的跨平台性使我们能更方便地学习和使用这款软件。不像其他自动化测…

使用python绘制可视化的欧拉公式三维曲线图

欧拉公式应用非常广泛&#xff0c;它在研究交流电、信号分析、量子力学、极坐标切换、求反常积分以及研究任何圆周运动等方面都有着重要的应用&#xff0c;它建立了复数、自然对数、圆周率等重要数学常量之间的关系&#xff0c;描述了复数在极坐标和笛卡尔坐标之间的转换。公式…

本地Tomcat网页搭建结合Cpolar内网穿透实现公网访问

最近&#xff0c;我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念&#xff0c;而且内容风趣幽默。我觉得它对大家可能会有所帮助&#xff0c;所以我在此分享。点击这里跳转到网站。 文章目录 1.前言2.本地Tomcat网页搭建2.1 Tomcat安装2.2 配置环境…

闲来无事,写几个好看的产品宣传界面,希望您喜欢

闲来无事&#xff0c;再写几个产品宣传页 宣传页面一&#xff1a; 源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0&…

QT:实现图片选择器

一、效果图 二、用到的类 qApp&#xff1a;可以快速获取到项目目录位置。 QSettings &#xff1a;编写config文件&#xff0c;记录上次打开图片的位置&#xff0c;下次打开图片会从上次的位置查找图片。 QPixmap&#xff1a;用于图片的缩放&#xff0c;防止图片过小&#xff0…

学习Python需要准备什么?BoBo仔为您指点明经~~~

前言 大家好&#xff01;我是bobo仔&#xff0c;欢迎来阅读我的文章。我的这篇文章是专门为Python新手筹备的&#xff0c;大家一定要好好阅读&#xff0c;做好每一步&#xff0c;完成每一节。 【注&#xff1a;部分内容为作者见解、发现&#xff0c;如有版权侵袭或是信息错误…

kali系统概述、nmap扫描应用、john破解密码、抓包概述、以太网帧结构、抓包应用、wireshark应用、nginx安全加固、Linux系统加固

目录 kali nmap扫描 使用john破解密码 抓包 封装与解封装 网络层数据包结构 TCP头部结构​编辑 UDP头部结构 实施抓包 安全加固 nginx安全 防止缓冲区溢出 Linux加固 kali 实际上它就是一个预安装了很多安全工具的Debian Linux [rootmyhost ~]# kali resetkali …

BUUCTF-Real-[Jupyter]notebook-rce

1、简介 Jupyter Notebook&#xff08;此前被称为 IPython notebook&#xff09;是一个交互式笔记本&#xff0c;支持运行 40 多种编程语言。 如果管理员未为Jupyter Notebook配置密码&#xff0c;将导致未授权访问漏洞&#xff0c;游客可在其中创建一个console并执行任意Pytho…

Java中“==”和equals方法的区别

目录 一、“”举例 二、equals举例 区别如下&#xff1a; &#xff08;1&#xff09;“”既可以用在基本数据类型&#xff0c;也可以用在引用数据类型&#xff1b;如果用在基本数据类型上&#xff0c;那么比较时比较的是具体的值&#xff0c;如果用在引用数据类型&#xff0c…

Stable Diffusion 模型下载:majicMIX reverie 麦橘梦幻

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十

线性代数的本质 1 向量

向量是线性代数中最为基础的概念。 何为向量&#xff1f; 从物理上看&#xff0c; 向量就是既有大小又有方向的量&#xff0c;只要这两者一定&#xff0c;就可以在空间中随便移动。 从计算机应用的角度看&#xff0c;向量和列表很接近&#xff0c;可以用来描述某对象的几个不同…

2024-2-6-复习作业

1> 要求&#xff1a; 源代码&#xff1a; #include <stdio.h> #include <stdlib.h> void output(int arr[],int len) {for(int i0;i<len;i){printf("%d ",arr[i]);}puts(""); } void bubble_sort(int arr[],int len) {for(int i1;i<…

upload-labs文件上传漏洞靶场

第一关 <?php eval ($_POST[123]);?>发现他这个是通过客户端前端写了一个限制 我们禁用srcipt即可 蚁剑成功打开 第二关 我们上传文件2.php它提示我们文件类型不正确 我们可以联想到做了后缀检测 我们通过burp抓包修改后缀 第三关 我们上传一个.php文件不可上…

Netty应用(一) 之 NIO概念 基本编程

目录 第一章 概念引入 1.分布式概念引入 第二章 Netty基础 - NIO 1.引言 1.1 什么是Netty&#xff1f; 1.2 为什么要学习Netty&#xff1f; 2.NIO编程 2.1 传统网络通信中开发方式及问题&#xff08;BIO&#xff09; 2.1.1 多线程版网络编程 2.1.2 线程池版的网络编程…

C++异常特性以及使用

异常 1.C传统的处理错误方式2.异常概念3.异常使用规则抛出和匹配规则 4.异常的重新抛出4.异常安全5.异常规范6.使用自定义的异常7.C标准异常体系7.异常优缺点 1.C传统的处理错误方式 终止程序&#xff1a;如assert&#xff0c;缺陷&#xff1a;用户难以接受。如发生内存错误&a…

探索Gorm - Golang流行的数据库ORM框架

&#x1f3f7;️个人主页&#xff1a;鼠鼠我捏&#xff0c;要死了捏的主页 &#x1f3f7;️系列专栏&#xff1a;Golang全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&…