专项练习2021-02-03

1、JavaScript定义var a=“30”,var b=8,则执行a%b会得到()。
A. undefined
B. 6
C. “6”
D. null

正确答案: B
运算中,+号,数字隐式转换成字符串。其余的运算符号是字符串隐式转换成数字。

2、下列哪个操作是W3C标准定义的阻止事件向父容器传递:
A. e.preventDefault()
B. e.cancelBubble=true
C. e.stopPropagation()
D. e.stopImmediatePropagation()

正确答案: C

  • DOM中的事件对象:(符合W3C标准)
    preventDefault() 取消事件默认行为
    stopImmediatePropagation() 取消事件冒泡同时阻止当前节点上的事件处理程序被调用。
    stopPropagation() 取消事件冒泡对当前节点无影响。
  • IE中的事件对象:
    cancelBubble() 取消事件冒泡
    returnValue() 取消事件默认行为

3、以下表达式错误的是( )

A. <div>bool flag ;<br>if(flag)</div> 
B. <div>int flag;<br>if(flag != 0)</div> 
C. <div>double flag;<br>if(flag == 0)</div> 
D. <div>int *point;<br>if(point == null)</div>

正确答案: C
double类型的比较可以是 >= 或者 <=,但是不能用==和!=,因为浮点数后面的小数位是省略了的,不知道其确切大小

4、以下哪个是错误的
A、iframe是用来在网页中插入第三方页面,早期的页面使用iframe主要是用于导航栏这种很多页面都相同的部分,这样在切换页面的时候避免重复下载
B、iframe的创建比一般的DOM元素慢了1-2个数量级
C、iframe标签会阻塞页面的的加载
D、iframe本质是动态语言的Incude机制和利用ajax动态填充内容

正确答案: D
iframe本身就不是动态语言,样式和脚本都需要额外导入。

5、下列对Reflow(回流)和 Repaint(重绘)的描述正确的是?
A、Repaint比Reflow更加花费时间影响性能
B、一条条地修改DOM的样式要比先定义好css的class然后修改DOM的className减少reflow/repaint
C、为HTML标签使用fixed或absoult的position,那么修改他们的CSS是不会reflow的
D、改变了某个元素的背景颜色,文字颜色等会导致Reflow

正确答案: C

  • reflow:当render树的一部分或者全部因为大小边距等问题发生改变而需要重建的过程,叫做回流
  • repaint:当诸如颜色背景等不会引起页面布局变化,而只需要重新渲染的过程叫做重绘
  • 下面情况会导致reflow发生
    1:改变窗口大小
    2:改变文字大小
    3:内容的改变,如用户在输入框中敲字
    4:激活伪类,如:hover
    5:操作class属性
    6:脚本操作DOM
    7:计算offsetWidth和offsetHeight
    8:设置style属性

6、以下结果里,返回true的是?
A、!![]
B、1===‘1’
C、null===undefined
D、!!’’

正确答案: A
[ ] 转为字符串是 “” // String([]) 返回""
[ ] 转为数字是 0 // Number([]) 返回0
[ ] 转为布尔值是 true // Boolean([]) 返回true
true 转为数字是 1 // Number(true) 返回1
false 转为数字是 0 // Number(false) 返回0

7、控制台打印的结果是?

for(let i=0;i<2;i++){
	setTimeout(function(){
		console.log(i)
	},100);
}
for(var i=0;i<2;i++){
	setTimeout(function(){
		console.log(i)
	},100);
}

打印:0 1 2 2

  • Js是单线程的,Settimeout是异步宏任务
  • let作用域for循环时会绑定i状态值,所以定时器触发后,分别输出的是0,1两个值。var变量for循环时不会绑定i状态值,当i=1时,i<2成立,此时i++,i的值变成2,所以定时器触发后,分别输出的是2,2

8、有如下代码片段:

var obj ={a:1,b:function () {alert(this.a)}}; 
var fun =obj.b; 
fun();

运行结果是( )
A、弹出a
B、弹出1
C、弹出undefined
D、什么也看不到

正确答案: C

var fun = obj.b;    //相当于var fun = function(){alert(this.a)};
fun();    //没有谁来调用的时候,this自然指向window
//而window里面没有定义a,所以弹出undefined
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值