牛客JS刷题

牛客JS刷题

1、针对以下f函数分别执行f(2)和f()会有怎样的结果?

f = (x = x) => x;

A. 2、undefined

B. 报错、报错

C. 2、报错

D. undefined、undedfined

正确答案:C
解析:x=x 等于 let x=x; 当f(2)的时候 let x = 2;retun x,也就是2;
如果f(),变量x是未赋值的,从而触发异常

2、以下代码执行后,array的结果是?

var array=[-1,1,3,4,6,10];
array.sort((a,b)=>Math.abs(a-3)-Math.abs(b-3));

A. [10,-1,6,1,4,3]

B. [10,6,4,3,1,-1]

C. [3,4,1,6,-1,10]

D. [-1,1,3,4,6,10]

正确答案:C
解析:
sort() 方法用于对数组的元素进行排序,参数决定排序的顺序。
原数组var array=[-1,1,3,4,6,10];
参数(a,b)=>Math.abs(a-3)-Math.abs(b-3):即数值减3的绝对值[4,2,0,1,3,7]作为参数决定排序。
根据绝对值减3大小排列[0,1,2,3,4,7],对应的原数组排序后为[3,4,1,6,-1,10]

3、以下哪一项正则能正确的匹配网址: http://www.bilibili.com/video/av21061574 ()

A. /^(https?:\/\/)?([a-zA-Z\d]+).bilibili.com\/?video\/av(\D{1,8})\/?$/
B. /^(http:\/\/)?(\w+)\.bilibili\.com\/?video\/av(\d{1,8})\/?$/
C. /^(https?:\/\/)?(\w+)\.bilibili\.com\/?\w*$/
D. /^(http:\/\/)?([a-zA-Z\d]+).bilibili.com\/?video\/av\w*\/+$/

正确答案:B
解析:
排除法
首先协议是http,而不是https排除AC;其次是www,排除D,因此就只有B选项正确

4、以下哪些对象是JavaScript内置的可迭代对象?

A. Array

B. Map

C. String

D. Object

正确答案:ABC
解析:
JS可迭代对象
数组Arrays、String、Map、Set、argument、TypedArrays、Generators。
Object的原型没有实现Symbol.iterator,所以不算做可迭代对象

5、当用户打开一个网页时,想一直停留在当前打开的页面,禁止页面前进和后退,以下正确的是

A. window.history.forward(1);
B. window.history.back(1);
C. window.history.go(-1);
D. window.history.forward(-1);

正确答案:A D
解析:
window.history.back(1); 加载历史列表中前一个URL,相当于浏览器中的后退按钮
window.history.go(-1); 相当于back()后退
window.history.go(1); 相当于forward()前进

6、以下符合ES6写法的有:

A. class Foo
{
	constructor() {return Object.create(null);}
}
Foo()

B. var m=1;
export m;

C. export var firstName=’Michael’;

D.在A模块中export{readFile}后,在B模块中import readFile from ‘A’可以获取到readFile
正确答案:C
解析:
A错误,改成new Foo()
B错误,改成 export {m}或者像C选项的写法 export var m=1;
D错误,改成 import {readFile} from ‘A’

7、Alert(1&&2)的值是?

A. 1

B. 2

C. FALSE

D. TRUE

正确答案:B
解析:
&&与运算 前面为真,就会返回后面的值

8、在严格模式下执行选项的程序,不会抛出异常的是
在这里插入图片描述

正确答案:D
解析:
A选项,在严格模式下,虽然定时器函数的this仍然指向window对象,但是变量uname必须先声明再赋值;
B选项,在严格模式下,立即执行函数的this取决于上下环境,这里指向undefined,由于没有uname属性,同样会抛出异常;
C选项,在严格模式下,函数不允许重名参数;
D选项,构造函数的this指向实例对象p,由于p没有uname属性,因此输出undefined。

9、以下代码的执行后,str的值是:

var str = "Hellllo world";
str = str.replace(/(l)\1/g, '$1');

A. Helo world

B. Hello world

C. Helllo world

D. Hellllo world

正确答案:B
解析:
(l)表示第一个分组里有l
\1表示所获取的第1个()匹配的引用
$1表示第一个分组里的值l
所以
(l)\l 表示匹配两个连续字符ll
str.replace(/(l)\1/g, '$1') 表示将ll替换成l

10、下面哪一个语句可以实现在jQuery中找到所有元素的同辈元素?

A. eq(index)

B. find(expr)

C. siblings([expr])

D. next()

正确答案:C
siblings()方法,返回被选元素的所有同胞元素
next()返回被选元素的下一个同胞元素
find()返回被选元素的后代元素,一路向下直到最后一个后代
eq()返回第几个元素

11、以下代码执行后,输出的结果为()

var a = 10;
function a(){}
console.log(typeof a)

A. “number”

B. “object”

C. “function”

D. “undefined”

正确答案:A
解析:
函数提升优先级高于变量提升,且不会被同名变量声明覆盖,但是会被变量赋值后覆盖。在本题中函数a和同名变量a会先进行提升,之后变量a又被赋值为10,在输出a的typeof值,此时a的值为10,类型为number

12、下列哪些事件不支持冒泡?

A. resize

B. click

C. blur

D. mouseleave

正确答案:ACD
解析:
mouseenter、mouseleave、blur、focus、load、unload、resize

13、下列不属于document对象方法的是

A. onload

B. querySelectorAll

C. children

D. ajax

正确答案:ACD
A选项是window.onload
C选项是parentNode.children

14、以下哪些方法会返回一个数组?

A. Object.keys()

B. String.prototype.split()

C. Array.prototype.join()

D. Promise.all()

正确答案:AB
C选项返回的是一个字符串
D选项返回的是一个Promise实例

15、下列关于闭包描述正确的是?
在这里插入图片描述

16、以下关于History对象的属性或方法描述正确的是
在这里插入图片描述

正确答案:ACD
go()加载history列表中的某个具体页面

17、以下代码执行后,array的结果是

let array = [,1,,2,,3];
array = array.map((i) => ++i)

在这里插入图片描述

正确答案:A
解析:
ES5 
forEach(),filter(),reduce(),every()和some()都会跳过空位
map()会跳过空位,但会保留这个值
join()和toString()会将空位视为undefined,而undefined和null会被处理成空字符串

ES6 中都会将空位当作undefined

18、已知arr = [1,2,NaN,1,4,2,NaN],现为输出arr的不重复元素(重复元素只输出一次),则下列程序中的①处,可以作为判断条件的是()

var newArr = [];
for(var i = 0 ;i<arr.length;i++){
  if(①){
    newArr.push(arr[i]);
  }
}
console.log(newArr);

在这里插入图片描述

正确答案:D
解析:
链接:
indexOf()方法与includes()方法的一个重要区别在于indexOf()并不能判断数组的NaN元素,换句话说,不管数组arr是否有NaN元素,arr.indexOf(NaN)返回值都是-1,所以AB选项不能对NaN进行去重,不符合题意;如果newArr数组不含有arr数组的某个元素,就应该把该元素添加到newArr数组中,如果含有,则不能添加,这样才能达到去重的目的,即newArr.includes(arr[i])返回值为false时,就应该执行if内的语句,所以应该使用“!”对条件取反,D选项符合题意,C选项不符合题意。

19、以下哪些事情支持冒泡?
在这里插入图片描述

20、给网页添加javaScript的方式有

在这里插入图片描述

正确答案:ABC
解析:
@import 用来导入css文件

21、执行以下程序,下列选项中,说法错误的是
在这里插入图片描述

正确答案:BD
解析:
输出 arguments.length为3;arguments是一个伪数组,不是真正意义上的数组

22、Angular JS中的服务实质上是(单例对象)

23、Angular中若需要给子scope发消息,需使用哪个方法($broadcast)

24、下列代码存在几个变量没有被回收?

var i = 1;
var i = 2;
var add = function() {
    var i = 0;
    return function()
{
        i++;
        console.log(i);
    }
}();
add();

A、0个

B、1个

C、2个

D、3个

正确答案:D
解析:
1.变量声明提升,提升完赋值后的全局 i = 2,add = function(){}
2.执行add()函数后,形成闭包,使得局部 i 在函数执行后不会被销毁。

25、请问以下JS代码最后输出的len值是多少?

var len = 117;
let func = {
  len: 935,
  showLen: function() {
    console.log(this.len);
  },
  show: function() {
    (function(cb) {
      cb();
    })(this.showLen)
  }
}
func.show();

A. 117

B. 935

C. undefined

D. null

正确答案:A
解析:
立即执行函数的this指向的是window(非严格模式下),因为作为一个匿名函数,在被调用的时候,我们往往就是直接调用,因此它的this是非常确定的,那么len就区window下的len值即117

26、以下哪一项不属于浏览器Response Headers字段:

在这里插入图片描述

正确答案:A
解析;
Referer是request Header里的内容,不是response header里的内容

27、下列关于JavaScript中变量的说法,错误的是?

在这里插入图片描述

正确结果:B
D代码测过是对的
B可能是var key=val的形式赋值

28、NOSCRIPT标签是做什么用的?(用来定义在脚本未被执行时替代内容)

29、执行以下程序,下列选项中,说法正确的是()

var obj = {brand:'华为',price:1999};
Object.defineProperty(obj,'id',{value:1})
Object.defineProperty(obj,'price',{configurable:false})
console.log(Object.keys(obj).length); ...①
for (var k in obj){
    console.log(obj[k]); ...②
}
obj.price = 999;
delete obj['price']
console.log(obj); ...③

在这里插入图片描述

正确答案:C
解析:
A选项,Object.keys(obj)返回obj对象中自身可枚举属性组成的数组,虽然obj对象新增了id属性,但该属性是不可枚举的,故1式的输出式2;
B选项,使用for……in循环可以遍历对象可枚举的属性,id属性由于不可枚举,因此仍然不会被遍历到
D选项,pice属性设置了不可删除属性 configurable:false

30、执行以下程序,输出结果为()

function fn(o,val){

           o.b = 1;

           val = 1;

}

var obj = {b:0};
var num = 0;
fn(obj,num);
console.log(obj,num);

在这里插入图片描述

正确答案:B
解析:
JS传参包括基本数据类型传参和复杂数据类型传参,基本数据类型传参时间上是复制值传递,函数对形参的处理不会影响到外面的实参,而复杂数据类型传参是引用传递,即把数据的地址复制月份后传递给函数中,此时形参和实参指向同一地址的对象,对于形参的修改会影响到实参。

31、以下这段JavaScript程序的输出是什么?

<SCRIPT LANGUAGE="JavaScript">
    var a="undefined";
    var b="false";
    var c="";
    function assert(aVar){
        if(aVar)      
            alert(true);
        else  
            alert(false);
    }
    assert(a);
    assert(b);
    assert(c);
</SCRIPT>

在这里插入图片描述

正确答案:B
解析:
变量abc都是字符串型的变量,而不是真正的undefined和false,在判断里都会被认为是真值,显示true,只有空串为false

32、下面哪些语句执行结果为true
在这里插入图片描述

正确答案:BCE

33、Angular中使用指令,是在什么时候绑定监听?(link时)

34、请问以下JS代码输出的结果是什么?

function f(x) {
  console.log(x);
  var x = 200;
  console.log(x);
  }
f(a = 100);
console.log(a);

在这里插入图片描述

正确结果:C
解析:
JS中的函数是非惰性求值,也就是说f(a=100)是将a=100完成计算赋值后的结果即100传入到了f函数中,传入的是值而不是逻辑,相当于f(100),同时变量a也处于函数外也即全局环境了,因此f函数里面的x一开始是传进来的100,后续被重新赋值为200

35、请问以下JS代码的输出是什么?

let A = function() {}
A.prototype.a = 1;
let B = new A();
A.prototype = {
  b: 2,
  c: 3
}
let C = new A();
A.prototype.d = 4;
console.log(B.a);
console.log(B.b);
console.log(C.c);
console.log(C.d);

在这里插入图片描述

正确答案:B
解析:
在B之前,A.prototype.a,所有B是可以访问a的,后来C之前,A.prototype被覆盖了,C可以访问到A.proptotype,其中的b,c后来又添加了d,C也是可以访问到的

36、关于身份证号,以下正确的正则表达式为()

在这里插入图片描述

正确答案:AC

37、执行以下程序,输出结果为

let flag1 = null || undefined;
let flag2 = null && undefined;
if (flag1 === true) console.log('flag1');
if (flag2 === false) console.log('flag2');

在这里插入图片描述

正确答案:D
解析:
不管是a || b还是a && b,其表达式的返回值要么是a,要么是b,在本题中,flag1和flag2的值只可能是undefined和null中的一个。当使用“===”进行比较时,需要严格区分数据类型,所以flag1 === true的返回结果一定是false,flag2 === false的返回结果也一定是false,故不会有任何输出,D选项正确。

38、执行以下程序,输出结果为()

var a = 2;
function fn(){
  b();
  return ;
  var a = 1;
  function b(){
    console.log(a);
  }
}
fn();

A,1

B,2

C,undefined

D,抛出异常

正确答案:C
解析:
虽然return语句可以终止函数,但是return语句后如果有变量和函数声明,仍然存在变量提升和函数提升,即在函数fn内,函数b和局部变量a会提升到函数的开头部分。当调用函数b时,需要查找并输出a的值,根据作用域链查找规则,会现在函数fn内找到已经声明的局部变量a,由于局部变量a的赋值并未跟着发生提升,因此输出的a值为undefined

39、依据以下JS代码,在位置A打印变量a与在位置B打印变量a各会有怎样的输出?

var a = 1;
function test(){
    // 位置A
class a {}
   // 位置B
}
test();

在这里插入图片描述

正确答案:B
解析:
在位置A的时候并没有找到a,在位置B中找到的a是class a {}

40、下面哪些语句可以在JS里判断一个对象是否为String类型?

在这里插入图片描述

正确答案:A
解析:
注意题目中是判断一个对象是否为String类型,判断对象是用instanceof

41、这段代码运行后的输出是:

(function() {
      var a = b = 5;
  })();   
console.log(b);
console.log(a);

在这里插入图片描述

正确答案:D
解析:
var a=b=5,即var a=5;b=5;函数环境中不带var默认为全局变量

42、执行以下程序,输出结果为()

class Phone{
  constructor(price){
    this.price = price;
  }
  get price(){
    return 999;
  }
}
var p = new Phone(888);
console.log(p.price);

A、999

B、undefined

C、抛出异常

D、888

正确答案:C
解析:
当类中一个属性只有get()方法而无set()方法时,该属性是无法进行赋值的,连构造方法中的初始化都不行,因此,当对象的price属性在构造方法中进行初始化,会抛出异常

43、Angular JS中的$apply()的作用是?

A、手动绑定外部数据

B、格式化数据

C、使方法生效

D、发送消息给其他controller

正确答案:C

44、JS中存在块语句,那么请问以下块语句的集合最终输出的值是多少?

eval(`{
  	1 + 3;
  	a = 2;
  	x:break x; 
  	3;
  	4 + 6;
  	; 
  }`)

A、4

B、undefined

C、10

D、3

正确答案:C
解析:
在块中多个语句执行时,一般后者会覆盖前者,但是;和break的返回值都是empty,无法覆盖任何值。而3覆盖了4,10最终又覆盖了3,因此最终的结果是10。

45、在很多时候,我们需要给网页中的一些元素不停的切换样式,那么要怎样实现给某个元素删除一个样式的同时,添加另外一个样式( )

在这里插入图片描述

正确答案:A
解析:
考察JQuery中选择器的知识
常用有三种:
①元素选择器:$("TagName") 
②ID 选择器:  $("#ID")
③类选择器:$(".className")

46、以下代码的输出结果是

var f = function g() {
    return 23;
 };
typeof g();

在这里插入图片描述

正确结果:D
解析:
如果是typeof f,结果是function
如果是typeof f(),结果是number
如果是typeof g,结果是undefined.
如果是typeof g(),结果是ReferenceError,g is not defined

47、以下JavaScript代码,在浏览器中运行的结果是

var foo = {n:1};
(function(foo){
    console.log(foo.n);
    foo.n = 3;
    var foo = {n:2};
    console.log(foo.n);
})(foo);
console.log(foo.n);

在这里插入图片描述

正确答案:A
解析:
第一步:进行预编译,var全局变量foo、匿名函数 function、var局部变量foo
第二步:代码自上而下、自左向右执行计算:
对全局变量foo进行赋值foo={n:1};注意:此值为对象,属于引用类型;
匿名函数传入参数foo={n:1}自执行;
console.log(foo);打出数字1;
由于存在foo局部变量,那么对foo变量进行赋值foo={n:3},同时更改了引用类型的参数值,全局foo变量被重新赋值foo={n:3};
对局部变量foo进行重新赋值foo={n:2};
console.log(foo);打出数字2;
全局变量foo={n:3},因此,console.log(foo);打出数字3;

48、Math.round(-2019.5)的结果是

A、2019

B、-2019

C、2020

D、-2020

正确答案:B

49、以下哪些操作会触发Reflow

var obj = document.getElementById(“test”);

在这里插入图片描述

正确答案:BC
B选项计算了offsetHeight
C选项重新设置了高度

50、请问以下JS代码会输出什么

var a = 10; 
(function a() {
    a = 20;
    console.log(a); 
})()

A、10

B、20

C、undefined

D、输出函数a的内容

正确答案:D
解析:
首先存在变量提升和函数提升,所以一开始变量a被提升,值为undefined,由于函数提升优先级更高,所以a先被赋值为函数。
又因为是立即执行函数所以执行了函数a输出a目前的值(即函数),之后才是被赋值为10

51、从字符串 const str = ‘qwbewrbbeqqbbbweebbbbqee’;中能得到结果 [“b”, “bb”, “bbb”, “bbbb”] 以下错误语句是?

在这里插入图片描述

正确答案:B
解析:
?出现0次或1次.  [0,1]
* 出现0次或多次.  [0,+∞]
+ 出现1次或多次  [1,+∞]
题目中得到的结果至少得有一个b,而*可能是出现0次得,所以不符合
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

*neverGiveUp*

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值