🦸个人主页: 小卢要刷力扣题
🦸♂️ 作者简介: 大三学生,准备找工作的人儿
🕍 推荐一款找工作神器网站: 《牛客网》 |笔试题库|面试经验|实习招聘内推|
⛪ 系列专栏: 《前端面试题》
🐋 希望大家多多支持😘一起进步呀!
📝 如果文章对你有帮助的话,欢迎评论💬点赞👍收藏📂加关注
前言
秋招正式批已经到来,相信不少小伙伴在为找工作而烦恼,对自己的实力不太自信,感觉好难找工作,不用怕,下面我来给各位推荐一个知名刷题网站《牛客》
一、牛客是做什么的?
牛客网,是一个集笔面试系统、题库、课程教育、社群交流、招聘内推于一体的招聘类网站。牛客是领先的数字化招聘求职解决方案服务商,牛客向企业提供校园招聘技术人才招聘一站式解决方案服务,主要包括招聘渠道服务(发校招岗位收简历) ,招聘SaaS工具服务(笔、面试 、群面系统 ),招聘传播服务(技术竞赛、广告、线上招聘专场、牛客职播。
牛客网题库中包含几万道题目,主要通过第三方购买和 UGC 的方式获得,牛客网先后尝试了直播和录播课,内容覆盖笔试题解析、面试技巧和机器学习等。
在里面可以与大家交流最近的面试心得,
如果不知道怎么面试的或者面试技巧掌握得不够牢固的小伙伴可以在牛客里面找面经来看,快速提升自己的面试能力,以更快的找到自己心仪的工作
Javascript专项练习
延时函数的回调会在循环结束时才执行,尽管循环中的五个函数是在各个迭代中分别定义的,但是他们都被封闭在一个共享的全局作用域中,实际上只有一个i,当循环结束时,i变成了5
\d 匹配一个数字字符。等价于 [0-9]。
\D 匹配一个非数字字符。等价于 [^0-9]。
\f 匹配一个换页符。等价于 \x0c 和 \cL。
\n 匹配一个换行符。等价于 \x0a 和 \cJ。
\r 匹配一个回车符。等价于 \x0d 和 \cM。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\t 匹配一个制表符。等价于 \x09 和 \cI。
\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。
\w 匹配字母、数字、下划线。等价于’[A-Za-z0-9_]'。
\W 匹配非字母、数字、下划线。等价于 ‘[^A-Za-z0-9_]’。
变量可以使用短名称,如x,y;也可以是长名称,如information,construction
变量命名规则如下:
1、变量命名必须以字母、下划线””或者”$”为开头。其他字符可以是字母、、美元符号或数字。
2、变量名中不允许使用空格和其他标点符号,首个字不能为数字。
3、变量名长度不能超过255个字符。
4、变量名区分大小写。(javascript是区分大小写的语言)
5、变量名必须放在同一行中
6、不能使用脚本语言中保留的关键字、保留字、true、false 和 null 作为标识符。
截止到目前为止JS描述了一组具有特定用途的关键字,一般用于控制语句的开始或结束,或者用于执行特定的操作等。关键字也是语言保留的,不能用作标识符。if for switch case break continue while var function
A是冒泡排序
B是选择排序
C应该是a-b
D是插入排序
只要 协议 、 域名 、 端口 有任何一个 不同, 都被当作是 不同 的域。
A. concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
B. append() 方法在被选元素的结尾(仍然在内部)插入指定内容。
C. appendTo() 方法在被选元素的结尾(仍然在内部)插入指定内容。
D. pop() 方法用于删除并返回数组的最后一个元素。
答案:A
这是一个闭包,闭包可以用在许多地方。它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。
这里的局部变量i,对f1()来说是全局变量,对f2()来说也是全局变量,但是f1()的i跟f2()的i又是相互独立相互不可见的,f1()每执行一次,f1()的i就加一,f2()每次执行一次,f2()的i就加油,但是相互之间不影响,因此结果是010
XMLHTttpRequest 是ajax请求的核心对象,创建一个该对象,需要先open(method,url,ansyc )再send (string )
indexOf()方法与includes()方法的一个重要区别在于indexOf()并不能判断数组的NaN元素,换句话说,不管数组arr是否有NaN元素,arr.indexOf(NaN)返回值都是-1,所以AB选项不能对NaN进行去重,不符合题意;如果newArr数组不含有arr数组的某个元素,就应该把该元素添加到newArr数组中,如果含有,则不能添加,这样才能达到去重的目的,即newArr.includes(arr[i])返回值为false时,就应该执行if内的语句,所以应该使用“!”对条件取反,D选项符合题意,C选项不符合题意。
首先需要明确new方法返回的是构造函数的prototype也就是一个对象,其中直接给对象上不存在的a变量赋值相当于往这个对象添加了一个a变量,因此B可以访问到变量a,但是后续是直接赋值了一个对象,那么原对象就无法感知到了,所以B访问不到新对象的变量b,也因此产生了新旧两个prototype的引用。C的话拿到的是新对象以及往新对象里面新增的d变量。
对于答案 B:
因为答案里面的 a 是未赋值的,所以后面的函数提升可以覆盖变量a。如果a已经有确定的值就会这样:
var a = 3;
a(); // a is not a function
function a() {
console.log(a);
}
在JavaScript中,当一般变量、函数、函数参数重名时,它们的优先级为:
已初始化的一般变量 > 函数 > 函数参数 > 未初始化的一般变量
A选项,abc $ 只能选中字符串abc(1个);
B选项,[abc] $ 能选中字符串a或者b或者c(3个);
C选项,[abc][1,2] $ 能选中字符串a1、a2、b1、b2、c1、c2(6个);
D选项,[abc]{2} $ 能选中字符串aa、ab、ac、bb、ba、bc、ca、cb、cc(9个),故D选项正确。
e.preventDefault() 是用来阻止默认事件的,不是阻止事件冒泡
事件冒泡应该是 e.stopPropagation()
Object.keys(obj)返回obj对象中自身可枚举属性组成的数组,虽然obj对象新增了id属性,但该属性是不可枚举的,故①式的输出结果为2,A选项错误;使用for…in…循环可以遍历对象可枚举的属性,id属性由于不可枚举,因此仍然不会被遍历到,②式的输出结果为华为 1999,B选项错误;price属性设置了configurable:false,表示该属性不可删除,删改无效,也不可再次修改其特性,但是属性值是可以重写的,因此③式输出结果为{brand: ‘华为’, price: 999, id: 1},C选项正确,D选项错误。
console.log(b.n);
在查找 b.n 是首先查找 b 对象自身有没有 n 属性,如果没有会去原型(prototype)上查找
当执行 var b = new B() 时,函数内部 this.n=9999(此时this指向b) 返回b对象,b对象有自身的n属性,所以返回 9999
console.log(c.n);
同理
当执行 var c = new C() 时,c对象没有自身的n属性,向上查找,找到原型 (prototype)上的 n 属性,因为 A.n++(此时对象A中的n为4400), 所以返回4400
text()是jQuery中的方法,可是设置或返回被选元素的文本内容
:contains选择器,选取包含指定字符串的元素,字符串也可以是文本
:input()选择器,选取表单元素
attr(name,value)属性操作,设置或返回被选元素的属性和属性值
本题选B
JS中的函数是非惰性求值,也就是说f(a=100)是将a=100完成计算赋值后的结果即100传入到了f函数中,传入的是值而不是逻辑,相当于f(100),同时变量a也处于函数外也即全局环境了,因此f函数里面的x一开始是传进来的100,后续被重新赋值为200.
A.ajax() 方法通过 HTTP 请求加载远程数据。$.ajax(opts);opts为json格式,常见参数url、type、data等。
B.load() 方法从服务器加载数据,并把返回的数据放入被选元素中。$(selector).load(URL,data,callback);
必需的 URL 参数规定您希望加载的 URL。
可选的 data 参数规定与请求一同发送的查询字符串键/值对集合。
可选的 callback 参数是 load() 方法完成后所执行的函数名称。
C.$.get() 方法通过 HTTP GET 请求从服务器上请求数据。
$.get(URL,callback);
必需的 URL 参数规定您希望请求的 URL。
可选的 callback 参数是请求成功后所执行的函数名。
D.getScript() 方法通过 HTTP GET 请求载入并执行 JavaScript 文件。
jQuery.getScript(url,success(response,status));
js内置的可迭代对象:
Array
Map
Set
String
TypedArray
函数的 arguments 对象
NodeList 对象
使用new运算符调用函数时,会返回一个对象。
如果构造函数没有return语句时,则默认返回原型为Human.prototype的、设置了属性name的对象。
然而就像Class的constructor一样,return语句返回一个对象时,该对象将被作为new操作符的结果返回。
因此。
A:String()作为普通函数使用时,将值转为字符串,不是对象,默认返回是一个空对象,原型为匿名函数的prototype。
String(new function(){ return String('foo'); })
"[object Object]"
B:String()作为构造函数来用时,返回了一个字符串包装对象。
String(new function(){ return new String('foo'); })
"foo"
关于D
答案错误,正如我们所知道的:对象总等于真。