20230418刷题第一天

1、在JavaScript中,下列不属于数组方法的是(D)
A concat()
B sort()
C reverse()
D length()
解析:A选项,数组的concat()方法可以用于合并数组;B选项,数组的sort()方法可以对数组进行排序;C选项,数组的reverse()方法可以用于反转数组元素;D选项,数组不存在length()方法,只有length属性,D选项符合题意。

2、只能输入‘零’和‘非零开头’的数字,正确的正则表达式是(A)
A ^(0|[1-9][0-9])$
B ^(0|[1-9][1-9]
)$
C ^(0|[1-9][0-9])$
D ^+[1-9][0-9]$
解析:关于选项中用到的符号含义:^: 以…开头;$:以… 结尾;
:任意多次; |: 或者;():组;[]: 集合。
A:零 或| 非零开头的任意位数字;B:零 或| 头两位非零的任意位数字;C:零 或| 非零开头的两位数字;D:非零开头的任意位正数。

3、请问以下JS代码的输出结果会是什么(D)

var a = 'w' 
let obj = {
  a: 'o',
  print: function() {
    console.log(this.a);
  },
  print2: () => { 
    console.log(this.a);
  }
}
let p = obj.print;
let p2 = obj.print2;
obj.print();
obj.print2();
p();
p2();

A o、 undefined、 undefined、undefined
B o、 w、 undefined、 undefined
C o、 w、 w、 undefined
D o、 w、 w、 w
官方解析:第一个函数执行时this是执行obj所以值为obj里面a变量的值即o,其余函数的this都指向了window,由于变量a是用var声明的,所以window下面有这个变量,那么就输出了w。
自己总结:普通函数,this永远指向它的调用者;箭头函数,this指向定义时的上下文;
obj.print():obj调用的是普通函数,this指向调用者obj这个对象,所以this.a就是obj.a,即输出’o’;
obj.print2():obj调用的是箭头函数,this指向上下文,即全局作用域下的window,所以this.a就是window.a,即输出’w’;
let p = obj.print:p是在全局作用域下的,p指向了print(){}函数的地址,执行时是在全局作用域下调用的,所以this指向window,this.a就是window.a,即输出’w’;
let p2 = obj.print2:虽然p2是在全局作用域下的,但是p2指向了print2:()=>{}箭头函数的地址,所以this指向print2函数定义时的上下文,即window,this.a就是window.a,即输出’w’。

4、AngularJS指令中的compile参数是在什么时候运行的?(C)
A 在生成DOM前扫描并生成
B 在生成DOM中扫描并生成
C 在生成DOM后扫描并生成
D 以上都不是

5、存在变量 var a = 10.42; 取出 a 的整数部分,以下代码哪些是正确的?(AB)
A parseInt(a);
B Math.floor(a);
C Math.ceil(a);
D a.split(‘.’)[0];
解析:ceil的英文意义是天花板,该方法就表示向上取整,Math.ceil(10.42)的结果为11,Math.ceil(-10.42)的结果是-10;
floor的英文意义是地板,该方法就表示向下取整,Math.floor(10.42)的结果为10,Math.floor(-10.42)的结果是-11;
最难掌握的是round方法,它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(10.42)的结果为10,Math.round(-10.42)的结果为-10;
split是用在分割字符串的,这是number类型。

6、以下代码执行后,console 的输出是?(A)

function Foo(){
    console.log(this.location);
}
Foo()

A 当前窗口的 Location 对象
B undefined
C null
D TypeError
解析: 'use strict’条件下,会报TypeError,即为undefined;无’use strict’下,this指向window。

7、在页面加载完成后,如果想动态地改变网页的标题,可以通过(C)
A 是不可能的
B document.write(“新的标题内容”)
C document.title = ‘’
D document.changTitle(“新的标题内容”)
解析:在页面加载完成后,调用document.write()可以将页面全部清除,包括页面标题,取而代之的是一个基本的html页面结构,然后重写页面内容,而不是重写页面标题,B选项错误;调用document.title()既可以获取页面的title,也可以动态地修改title,这是一个可读写的属性,C选项正确,A选项错误;document对象没有changeTitle属性,D选项错误。

8、白屏时间first paint和可交互时间dom ready的关系是?(A)
A 先触发first paint ,后触发dom ready
B 先触发dom ready,后触发first paint
C 一起触发
D 没关系
解析:页面的性能指标详解:
白屏时间(first Paint Time)——用户从打开页面开始到页面开始有东西呈现为止;
首屏时间——用户浏览器首屏内所有内容都呈现出来所花费的时间;
用户可操作时间(dom Interactive)——用户可以进行正常的点击、输入等操作,默认可以统计domready时间,因为通常会在这时候绑定事件操作;
总下载时间——页面所有资源都加载完成并呈现出来所花的时间,即页面 onload 的时间。

9、以下哪些函数是JavaScript的全局函数:(ABC)
A escape
B parseFloat
C eval
D setTimeout
解析:在这里插入图片描述
在这里插入图片描述
10、下面关于块内声明函数的做法哪些是正确的?(D)
A ECMAScript明确的规范了块内函数,javascript实现了这个规范
B if(x){ foo = function() {} }
C if(x){ function foo() {} }
D if(x){ var foo = function() {} }
解析:不要在块内声明一个函数(严格模式会报语法错误)。如果确实需要在块中定义函数,可以使用函数表达式来声明函数。
无论if是否执行执行,if块级作用域内的函数声明都会被提升,提升至当前所在作用域的顶部。只是这时提升的变量foo的值是undefined,而不是函数体。
当执行到if内部的函数声明时,变量foo被赋值为函数体。此时判断foo的类型就是function。
因为变量foo已经被提升到全局作用域了,因此foo()可以正常执行。

11、以下javascript代码,在浏览器中运行的结果是(D)

var a = 4399 < 0 || typeof(4399 + '');
console.log(a);

A true
B number
C undefined
D string
E false
解析:typeof运算符,用来检测一个变量的类型。
此处的 “||” 是短路或,即 若“||” 之前的值为true则a直接等于前面的值。但此处“4399 < 0”是false,所以需要看 “||” 后面的表达式,4399 + ""是String类型,所以typeof返回String, a = String

12、关于javascript的原始类型(primitive type),错误的是(D)
A.var oTemp; alert(oTemp == undefined)为true
B.var sTemp = “test string”; alert(typeof sTemp);结果为string
C.有5种primitive type,分别是undefined、null、boolean、number和string
D.alert(null == undefined);结果为false
解析:undefined值是通过null派生出来的,两个等于号时它会自动转化为null,所以返回true。不过如果用严格比较符===,不发生转化,将返回false。

13、下列代码

var obj = {} 
……
obj.hasOwnProperty("val")

中hasOwnProperty的作用是(B)
A.判断obj对象是否具有val的值
B.判断obj对象是否具有val属性
C.判断obj的原型对象是否具有val的属性
D.判断obj的原型对象是否具有val的值
解析:hasOwnProperty: 是用来判断一个对象是否有你给出名称的属性或对象。不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。
isPrototypeOf : 是用来判断要检查其原型链的对象是否存在于指定对象实例中,是则返回true,否则返回false。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值