牛客 JavaScript专项练习题+解析 (收藏)

单选

1 变量提升

在这里插入图片描述

解析:题目问的是点击按钮后页面上的最终输出结果,所以原来页面上的p标签的1,会被document.write函数输出的内容覆盖。所以没有1。
打印a是undefined是因为var a的时候进行了变量提升,但是要执行到那一步才会真的赋值。

答案:undefined2


2 函数优先级

在这里插入图片描述

解析:只有实例对象上不存在的属性和方法才会去原型上查找
答案:foo


3 ES6

在这里插入图片描述

解析:在这里插入图片描述
答案:C


4 正则

在这里插入图片描述
解析在这里插入图片描述
答案:A


5 跨域

在这里插入图片描述
跨域文章:https://juejin.cn/post/6844903936088883207#heading-2
答案:B


6 angularjs1

在这里插入图片描述
答案B


7 页面加载完成前触发事件

在这里插入图片描述
解析:
在这里插入图片描述
选择AD。
A. readystatechange
document有readyState属性来描述document的loading状态,readyState的改变会触发readystatechange事件

  • loading文档仍然在加载
  • interactive文档结束加载并且被解析,但是像图片,样式,frame之类的子资源仍在加载
  • complete文档和子资源已经结束加载,该状态表明将要触发load事件。

因此readystatechange在onload之前触发。

B.onpageshow
onpageshow事件在用户浏览网页时触发。
onpageshow事件类似于onload事件,onload事件在页面第一次加载时触发,onpageshow事件在每次加载页面时触发,即onload事件在页面从浏览器缓存中读取时不触发。

C. beforeunload
当浏览器窗口,文档或其资源将要卸载时,会触发beforeunload事件。这个文档是依然可见的,并且这个事件在这一刻是可以取消的.
如果处理函数为Event对象的returnValue属性赋值非空字符串,浏览器会弹出一个对话框,来询问用户是否确定要离开当前页面(如下示例)。有些浏览器会将返回的字符串展示在弹框里,但有些其他浏览器只展示它们自定义的信息。没有赋值时,该事件不做任何响应。

D.DOMContentLoaded
当初始的HTML文档被完全加载和解析完成之后,DOMContentLoaded事件被触发,而无需等待样式表、图像和子框架的完成加载
另一个不同的事件 load应该仅用于检测一个完全加载的页面。因此DOMContentLoaded是HTML完全加载和解析完成之后发生的,发生时间点要早于load,选D。在使用DOMContentLoaded 更加合适的情况下使用load是一个令人难以置信的流行的错误,所以要谨慎。
注意:DOMContentLoaded事件必须等待其所属script之前的样式表加载解析完成才会触发。

答案AD


8 this指向

在这里插入图片描述
解析:
this的行为有时候会显得极其诡异,让人感到困惑,但只需要记住this的值要等到代码真正执行时才能确定同时this的值
具体有以下几种情况:
1.new调用时指的是被构造的对象
2.call、apply调用,指向我们指定的对象
3.对象调用,如执行obj.b(), this指向obj
4.默认的,指向全局变量window(相当于执行window.fun())这样看来,当你执行fun)的时候,
以上1,2点均不满足。
第3点因为this是运行时确定的,而我们执行fun(),等同于windown.fun()(与obj)没有任何关系),自然的this指向window,而window没有定义变量a,结果是undefined,
在这里插入图片描述
答案:C

9 javascript常见事件的触发情况

在这里插入图片描述
解析:
D
onblur事件会在对象失去焦点时发生。Onblur经常用于Javascript验证代码,一般用于表单输入框。
onkeypress事件在用户按下并放开任何字母数字键时发生。但是系统按钮(例如:箭头键、功能键)无法得到识别。onkeypress在按住不放的时候,会一直执行这个函数。

onkeydown事件在用户按下任何键盘键(包括系统按钮)时发生。

继承prototype

在这里插入图片描述

解析:
C
在这里插入图片描述

阻止默认事件

在这里插入图片描述
答案:E

在这里插入图片描述

js系统方法

在这里插入图片描述
答案:B
针对NaN的特点,ECMAScript定义了isNaN()函数。这个函数接受一个参数,该参数可以是任何类型,而函数会帮我们确定这个参数是否“不是数值”。isNaN()在接受一个值后,会尝试将这个值转换为数值。某些不是数值的值会直接转换为数值,例如字符串“10”或Boolean值。而任何不能被转换为数值的值都会导致这个函数返回true。
eval:返回字符串表达式中的值
unEscape:返回字符串ASCI码
escape:返回字符的编码
parseFloat:返回实数

自增

在这里插入图片描述
答案:C
在这里插入图片描述

flash和js通过什么类如何交互?

在这里插入图片描述
答案B
在这里插入图片描述


不定

1 原生数组函数

在这里插入图片描述
解析:
在这里插入图片描述
答案:ABDEFG


2 取整

在这里插入图片描述
解析:在这里插入图片描述
答案:AB


3 触发事件

在这里插入图片描述
解析:ps:选项有问题在这里插入图片描述
答案:ABCD


4 history

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

禁用按钮实现

在这里插入图片描述
答案CD
在这里插入图片描述

解释性语言特性

在这里插入图片描述
答案AB
解释性语言的程序不需要编译,在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就需要逐行翻译一次,效率比较低。

隐式转换

在这里插入图片描述
答案:ACD
在这里插入图片描述

数字调用函数

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

原型

在这里插入图片描述
答案:B
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值