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

  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 = ivar 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.hqwc.cn/news/465144.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Effective Objective - C 2.0】——读书笔记(三)

文章目录 十五、用前缀避免命名空间冲突十六、提供全能初始化方法十七、实现description方法十八、尽量使用不可变对象十九、使用清晰而协调的命名方式二十、为私有方法名加前缀二十一、理解Objective-C错误模型二十二、理解NSCopying协议 十五、用前缀避免命名空间冲突 OC语言…

Java安全 CC链1分析(Lazymap类)

Java安全 CC链1分析 前言CC链分析CC链1核心LazyMap类AnnotationInvocationHandler类 完整exp&#xff1a; 前言 在看这篇文章前&#xff0c;可以看下我的上一篇文章&#xff0c;了解下cc链1的核心与环境配置 Java安全 CC链1分析 前面我们已经讲过了CC链1的核心ChainedTransf…

python coding with ChatGPT 打卡第20天| 二叉搜索树:搜索、验证、最小绝对差、众数

相关推荐 python coding with ChatGPT 打卡第12天| 二叉树&#xff1a;理论基础 python coding with ChatGPT 打卡第13天| 二叉树的深度优先遍历 python coding with ChatGPT 打卡第14天| 二叉树的广度优先遍历 python coding with ChatGPT 打卡第15天| 二叉树&#xff1a;翻转…

opencv图像像素的读写操作

void QuickDemo::pixel_visit_demo(Mat & image) {int w image.cols;//宽度int h image.rows;//高度int dims image.channels();//通道数 图像为灰度dims等于一 图像为彩色时dims等于三 for (int row 0; row < h; row) {for (int col 0; col < w; col) {if…

Redis -- 数据库管理

目录 前言 切换数据库(select) 数据库中key的数量&#xff08;dbsize&#xff09; 清除数据库&#xff08;flushall flushdb&#xff09; 前言 MySQL有一个很重要的概念&#xff0c;那就是数据库database&#xff0c;一个MySQL里面有很多个database&#xff0c;一个datab…

vue核心技术(二)

◆ 指令补充 指令修饰符 通过 "." 指明一些指令 后缀&#xff0c;不同 后缀 封装了不同的处理操作 → 简化代码 v-bind 对于样式控制的增强 为了方便开发者进行样式控制&#xff0c; Vue 扩展了 v-bind 的语法&#xff0c;可以针对 class 类名 和 style 行内样式…

HiveSQL——用户行为路径分析

注&#xff1a;参考文档&#xff1a; SQL之用户行为路径分析--HQL面试题46【拼多多面试题】_路径分析 sql-CSDN博客文章浏览阅读2k次&#xff0c;点赞6次&#xff0c;收藏19次。目录0 问题描述1 数据分析2 小结0 问题描述已知用户行为表 tracking_log&#xff0c; 大概字段有&…

【漏洞复现】狮子鱼CMS文件上传漏洞(wxapp.php)

Nx01 产品简介 狮子鱼CMS&#xff08;Content Management System&#xff09;是一种网站管理系统&#xff0c;它旨在帮助用户更轻松地创建和管理网站。该系统拥有用户友好的界面和丰富的功能&#xff0c;包括页面管理、博客、新闻、产品展示等。通过简单直观的管理界面&#xf…

Z-Stack一直卡在HAL_BOARD_INIT();

原因是Debugger没有配置好&#xff0c;因为默认是Simulator&#xff0c;不是TI的驱动&#xff0c;所以仿真出现一直卡在 HAL_BOARD_INIT(); 的情况&#xff0c;解决方法就是将Simulator改为Texas Instruments 改成下面的样子

【Java EE初阶十二】网络编程TCP/IP协议(一)

1. 网络编程 通过网络&#xff0c;让两个主机之间能够进行通信->就这样的通信来完成一定的功能&#xff0c;进行网络编程的时候&#xff0c;需要操作系统给咱们提供一组API&#xff0c;通过这些API来完成编程&#xff1b;API可以认为是应用层和传输层之间交互的路径&#xf…

CTFshow-WEB入门-信息搜集

web1&#xff08;查看注释1&#xff09; wp 右键查看源代码即可找到flag web2&#xff08;查看注释2&#xff09; wp 【CtrlU】快捷键查看源代码即可找到flag web3&#xff08;抓包与重发包&#xff09; wp 抓包后重新发包&#xff0c;在响应包中找到flag web4&#xff08;robo…

面试经典150题——三数之和

​"The road to success and the road to failure are almost exactly the same." - Colin R. Davis 1. 题目描述 2. 题目分析与解析 2.1 思路一——暴力方法 因为三个数相加为0&#xff0c;那么说明其中两个加数的和与另一个加数为相反数则满足题意。所以可以得到…