【牛客网-前端笔试题】——Javascript专项练习

个人主页: 小卢要刷力扣题
‍♂️ 作者简介: 大三学生,准备找工作的人儿
推荐一款找工作神器网站: 《牛客网》 |笔试题库|面试经验|实习招聘内推|
⛪ 系列专栏: 《前端面试题》
希望大家多多支持一起进步呀!
如果文章对你有帮助的话,欢迎评论点赞收藏加关注

在这里插入图片描述

文章目录

  • 前言
  • 一、牛客是做什么的?
  • Javascript专项练习


前言

秋招正式批已经到来,相信不少小伙伴在为找工作而烦恼,对自己的实力不太自信,感觉好难找工作,不用怕,下面我来给各位推荐一个知名刷题网站《牛客》

一、牛客是做什么的?

牛客网,是一个集笔面试系统、题库、课程教育、社群交流、招聘内推于一体的招聘类网站。牛客是领先的数字化招聘求职解决方案服务商,牛客向企业提供校园招聘技术人才招聘一站式解决方案服务,主要包括招聘渠道服务(发校招岗位收简历) ,招聘SaaS工具服务(笔、面试 、群面系统 ),招聘传播服务(技术竞赛、广告、线上招聘专场、牛客职播。
牛客网题库中包含几万道题目,主要通过第三方购买和 UGC 的方式获得,牛客网先后尝试了直播和录播课,内容覆盖笔试题解析、面试技巧和机器学习等。

在这里插入图片描述

在里面可以与大家交流最近的面试心得,
如果不知道怎么面试的或者面试技巧掌握得不够牢固的小伙伴可以在牛客里面找面经来看,快速提升自己的面试能力,以更快的找到自己心仪的工作

在这里插入图片描述
在这里插入图片描述

Javascript专项练习

【牛客网-前端笔试题】——Javascript专项练习_第1张图片

JS数据类型包括:Number、String、Boolean、Undefined、Null、Symbol、BIgInt、Object,故D选项符合题意。

【牛客网-前端笔试题】——Javascript专项练习_第2张图片

选D。考察的是HTML DOM 事件允许Javascript在HTML文档元素中注册不同事件处理程序。
A选择中的onBlur表示元素失去焦点时触发。所以A错误。
B选择中的onFocus表示元素获取焦点时触发。所以B错误。
C选择中的onClick=”function compute()”,function关键字不属于对函数的调用,而是对函数的声明。所以C错误。

【牛客网-前端笔试题】——Javascript专项练习_第3张图片

当局部变量和全局变量同时存在时,局部变量的优先级更高。在函数fun1内部,由于存在变量提升,会先使用var声明局部变量val,而变量的赋值并不会跟着一起提升,接着使用console.log()输出val,由于val变量已声明但未赋值,故输出结果为undefined,然后再对val进行赋值,其值为20,最后再次输出val,输出结果为20,C选项正确。

【牛客网-前端笔试题】——Javascript专项练习_第4张图片

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
注意:这种方法会改变原始数组。
返回值
如果删除一个元素,则返回一个元素的数组。 如果未删除任何元素,则返回空数组。
因此选A

A选项,闭包需要满足以下特征:(1)有外层函数嵌套内层函数;(2)内层函数使用外层函数的局部变量;(3)内层函数返回外部,并且被全局变量保存,因此A正确;
B选项,匿名函数的this指向window对象,B正确;
++num为前置自增,因此①式输出1,又因为num为闭包变量,会保存在内存中,再次调用fun()会继续自增,因此②式输出2。

【牛客网-前端笔试题】——Javascript专项练习_第5张图片

初始化x的值为10,y的值为20,x < y返回结果为true,所以执行var z = x++,x++是后置自增,也就是先返回x值,然后再自增加1,所以输出x的值为11,z的值为10,而y值没有改变,仍然是20,B选项正确。

【牛客网-前端笔试题】——Javascript专项练习_第6张图片
【牛客网-前端笔试题】——Javascript专项练习_第7张图片

先事件捕获从windows > document 往下级直到 特定的事件节点,然后进行事件处理,再事件冒泡,从特定节点往上级,这个完整的过程

【牛客网-前端笔试题】——Javascript专项练习_第8张图片

每次调用外部函数Foo()时,都会开辟一个新的内存空间,这个内存空间保存着自由变量i。由于内部的匿名函数使用了Foo函数的自由变量i,让该变量可以延迟使用,因此第一个调用f1()时输出自由变量i的值为0,第二次调用f1()时输出自由变量i的值为1,又由于f1和f2是两次Foo()调用返回的结果,它们的i值是保存在不同的内存空间上,也就没有任何关系,故第一次调用f2()输出的结果为0,A选项正确。

【牛客网-前端笔试题】——Javascript专项练习_第9张图片

call()方法和apply()方法的作用相同,他们的区别在于接收参数的方式不同。对于call(),第一个参数是this值没有变化,变化的是其余参数都直接传递给函数。(在使用call()方法时,传递给函数的参数必须逐个列举出来。

【牛客网-前端笔试题】——Javascript专项练习_第10张图片

第一:首先区分浏览器端和服务器端的js模块化规范。
1)浏览器端的js模块化规范:AMD 和 CMD
2)服务器端的js模块化规范:CommonJS(注:由NodeJS实现)

第二:浏览器端的js模块化规范分别由什么实现。
1)AMD是由require.js实现的(记忆法,认为A是Async异步, 依赖前置,就是所有的依赖必须放在最前面)
2)CMD是由sea.js实现的(依赖就近,所有依赖需要了再引入)

【牛客网-前端笔试题】——Javascript专项练习_第11张图片

首先,^表示匹配输入的开始,$表示匹配输入的结束 每个选项从前向后看,http都能够严格匹配 ?表示匹配某元素0次或1次,这里四个选项都没有问题,能够匹配0次或1次字符s 接下来:严格匹配,//严格匹配两个// 接着往下看,[]表示字符集合,它用在正则表达式中表示匹配集合中的任一字符 A D 选项中的 [a-zA-Z\d] 表示匹配一个小写字母 或者 大写字母 或者 数字 B C 选项中的 \w 表示匹配字母数字或下划线(注意这里比A D中能多匹配下划线类型) +表示匹配某元素1次或多次,到这里四个选项都能够完美匹配字符www .可以匹配除了换行符\n \r外的任何字符 接下来我们看选项A,bilibili com video av都严格匹配,而 \D 表示匹配一个非数字字符而非数字字符,av后的数字是无法匹配成功的,A错误 B选项,\d匹配数字,{m,n}表示最少匹配m次,最多匹配n次,/?能匹配末尾的0个或1个/字符,B正确 C选项,*表示匹配某元素0次或多次,但 \w 并不能匹配字符 /,C错误 D选项,前面都对,错在最后的/+至少要匹配一个/,而原字符串最后并没有/

【牛客网-前端笔试题】——Javascript专项练习_第12张图片

变量num用于接收立即执行函数的返回结果,在立即执行函数内部,由于函数的形参具有DontDelete特性,所以无法使用delete操作符对其进行删除,也就是delete x是无效的。因此,在立即执行函数外,实参1将传递给形参x,然后形参x作为函数的执行结果返回,故num值为1,D选项正确。

【牛客网-前端笔试题】——Javascript专项练习_第13张图片

&& 与运算 1为真 返回后面的2

【牛客网-前端笔试题】——Javascript专项练习_第14张图片

+表示出现至少一次b
*表示可以不出现b,也可以出现一次或多次
{n,m}表示最少出现n次b,最多出现m次b
因此选B

【牛客网-前端笔试题】——Javascript专项练习_第15张图片

boolean值会把true,false隐式转换为数字;“2”数字字符串会被转换为数字进行比较
因此选A

【牛客网-前端笔试题】——Javascript专项练习_第16张图片

1.先立即执行匿名函数,输出Hello World!
2.函数执行后无返回值,则输出未定义

【牛客网-前端笔试题】——Javascript专项练习_第17张图片

setTimeout可以将字符串当成代码执行,类比eval函数。While所在是微任务,所以前3秒后在执行while函数,setTimeout函数虽然在各自对应时间后插入了队列,但是由于属于宏任务所以暂时还没有执行,直到while微任务完成,才按顺序输出。

【牛客网-前端笔试题】——Javascript专项练习_第18张图片

因为加号优先级高于三目运算符低于括号。
所以先进行 'Value is ’ + (val != ‘0’) 所以这可能会 “Value is true” ||“Value is false” 因为后面要进行三目运算,所以这里会进行Boolean类型转换。根据Boolean 类型中的String类型的转换规则,当字符串不为空时为true 。所以最后为true?“define”:“undefine”。所以输出为define

【牛客网-前端笔试题】——Javascript专项练习_第19张图片

在 JS 里,声明函数只有 2 种方法:
第 1 种: function foo(){…} (函数声明)
第 2 种: var foo = function(){…} (等号后面必须是匿名函数,这句实质是函数表达式)
除此之外,类似于 var foo = function bar(){…} 这样的东西统一按 2 方法处理,即在函数外部无法通过 bar 访问到函数,因为这已经变成了一个表达式。
但为什么不是 “undefined”?
这里如果求 typeof g ,会返回 undefined,但求的是 g(),所以会去先去调用函数 g,这里就会直接抛出异常,所以是 Error。

【牛客网-前端笔试题】——Javascript专项练习_第20张图片

window.history.forward(1),总是会将window.history.list里面你的所有页面走完,直到页面再也不能往前,对于window.history.list.length=5的时候,无论在哪个页面发起history,forward(1),都会走到当前页面。因此是可以很好地阻止页面后退,缺点是带来了很多的额外的http request,因为需要一个页面一个页面后退。在我们的一个application里面我发现,window.history.forward(1),会走到某个页面,停止。以至于在那个页面之后的页面,就无法实现组织后退的功能。

你可能感兴趣的:(前端面试题,javascript,前端,面试)