前端练习题整理(2)

1.

在这里插入图片描述

css注释:// (部分浏览器不兼容) /**/ 单行/多行注释
html注释:<!-- -->
js注释:// /**/
jsp注释:<%--注释内容--%>

2.

在这里插入图片描述

static是无定位,元素定位的默认位置。有些时候为了消除继承定位,显示使用position:static进行默认定位。
fixed是相对窗口的固定定位,同绝对定位类似,但它的包含块是视区本身
relative是相对定位,相对元素默认位置的定位。
absolute是绝对定位,相对于第一个祖先元素。

3.

在这里插入图片描述

span应用了width:auto,height:100%,因为span是行级元素,宽度高度由内容决定,本身不含有宽度或高度。所以宽度为0,高度是父元素高度的100%,即200px

4.

在这里插入图片描述
clear 属性规定元素的哪一侧不允许其他浮动元素。

5.

在这里插入图片描述
回流:reflow:当render树的一部分或者全部因为大小边距等问题发生改变而需要重建的过程,叫做回流

重绘:repaint:当诸如颜色背景等不会引起页面布局变化,而只需要重新渲染的过程叫做重绘

display引起了dom元素大小的变化,(占据空间和不占据空间),所以是回流+重绘
visibility只是元素是否显示,元素一直占据着空间,所以只有重绘没有回流

6.

在这里插入图片描述
不可继承的:
display、position
margin、padding
border
background
height、min-height、max-height、width、min-width、max-width
overflow、float、clear
left、right、top、bottom
z-index
table-layout、vertical-align

排除ACD选择BE

7.

在这里插入图片描述
如果指定了 background-image ,那么 background-attachment 决定背景是在视口中固定的还是随包含它的区块滚动的。
ABCD都包含

8.

在这里插入图片描述

在这里插入图片描述

9.

在这里插入图片描述
在这里插入图片描述
区分css语法和jquery.css()语法

10.

在这里插入图片描述
ABC都是正确选项

11.

在这里插入图片描述
overflow:hidden也可以隐藏对象,但是隐藏的是溢出的部分

12.

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

13.

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

14.

在这里插入图片描述
border-collaspe属性表示是否将多个边框合起来(比如表格中)
在这里插入图片描述

15.

在这里插入图片描述
题意默认是紧挨的后一个

16.

在这里插入图片描述
outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。

注释:轮廓线不会占据空间,也不一定是矩形。
在这里插入图片描述
在这里插入图片描述
outline-offset设置轮廓的偏移量,轮廓不占有空间

17.

在这里插入图片描述
iframe是浮动框架的意思,frameset和frame也是

18.

在这里插入图片描述
尺寸包括width和height、maxH、minH和maxW、minW

19.

在这里插入图片描述
颜色表示:
直接使用一些名字比如red、green
6位16进制赋值
3位16进制赋值
rgb(,)3位10进制数赋值
rgb(,)4位10进制数赋值(第四位是透明度)
rgb(,)3位百分数赋值,0%~100%对应0~255

20.

在这里插入图片描述
list-style-type:是序号的表示形式
值有none,无序列表的三个值和有序列表的值组成

21.

在这里插入图片描述
在这里插入图片描述
:first-line只能用于块元素,作用于内容的第一行

22.

在这里插入图片描述
可伸缩框是flexible box,属性均以box开头
box-ordinal-group:规定框的子元素的显示次序。
box-align:规定如何对齐框的子元素。

23.

在这里插入图片描述
js中的||运算符:返回true的值,并且是短路判断
为false的值:0 “” false null undefined NaN
为true的值: 1 2 3 … ‘a’ 等非空字符串

a()||b() 看方法的返回值

所以 a||3||b 第一次判断为null 第二次判断为3 true 返回3

js中的&&运算符:返回false的值,并且是短路判断,都为真时返回最后一个值

所以a&&b&&3 a=null 为false 返回null 即假 走else分支 输出0
所以结果是3 0

24.

在这里插入图片描述

a==b是值判断,会进行类型转换
如果是null==undefined 则返回true
如果是数字和字符串比较 则将字符串转换为数字类型
如果数字类型有一个为NaN,返回falseNaN==NaNfalse)

a===b是严格判断,类型判断+值判断
如果是完全相等的字符串 返回true
如果是true===true false===false返回true
如果是null===undefined 返回false 但是null===null undefined===undefinedtrue
如果是数值类型 都为数值且值相等 返回true 如果有一个是NaN 返回false 
判断是不是NaN只能用isNaN()
如果引用相同对象或函数 返回true

所以结果是true+false

25.

在这里插入图片描述
js中,只有子函数才能读取一个函数的局部变量,函数内部可以直接访问全局变量。
如果不是构造函数,是不能访问其中的局部变量。所以a.x和a.y都是undefined。两个undefined相加结果为NaN。
子函数不仅可以使用变量,还可以返回这个函数。或者将局部变量作为返回值,就可以在函数外部获得这个局部变量。

如果在函数内部定义变量不加var关键字,就相当于定义了一个全局变量。
上面创建的子函数被称为js闭包。
js的局部变量还有一个特性就是提升。在方法内部任何位置定义的一个局部变量,都会提升到开头定义,但赋值语句不变。
比如

function(){
if(1){
var a = 1;
}
else{
var b =2;
}
}

js的提升机制会变成:

function(){
var a;//a的值为undefined
var b;//b的值为undefined
if(1){
 a = 1;//a的值赋为1
}
else{
b =2;//b的值赋为2
}
}

26.

在这里插入图片描述

window.status = "msg";

27.

在这里插入图片描述
js中,dom对象.elements返回一个包含所有子元素的数组
dom.elements.length返回元素数组的长度
通常使用dom.elements[i].type或者dom.elements[i].value获得元素的类型和值

28.

在这里插入图片描述
A false B false C true D false
instanceof 运算符用法:a instanceof B
B.prototype是否位于a的原型链上

对于null instanceof Object为false ,但typeof null显示为“object”。
null并不是以Object为原型构造出来的,所以instanceof为false。
typeof null="object"是一个bug。

29.

在这里插入图片描述

var select  = document.getElementsByTagName("select")[0];
var idx = select.selectedIndex;
//获取到选中的idx

获取选中部分的文本是text,值是value

30.

在这里插入图片描述
js中定义数组 两种方式:
(1)字面量 var arr = [1, 2, 3];
(2)数组对象 var arr3 = new Aarray(2, 3); //等价于[2,3]表示里面有2个数组元素为2,3

31.

在这里插入图片描述

js中定义变量可以省略关键字var,但是这样创建的变量就是一个全局变量。不推荐。

(function(){})();是匿名函数的意思,为了防止在js中定义全局变量。匿名函数在定义后直接运行。

在这里插入图片描述

var a = "old";
var a ;
console.log(a);//"old"
var a = "new";
console.log(a);//"new"

32.

在这里插入图片描述
newObj.value+=newObj.key; “2”+=“1”; “21”;

33.

在这里插入图片描述
window.setTimeout(checkState,10000);//方法而不是字符串10s后执行方法
window.setTimeout(checkState(),10000);//直接执行方法
window.setTimeout(“checkState()”,10000);//不能执行,

setTimeout函数第一个参数不能是字符串
如果没有函数,可以定义匿名函数new function(){},这样也会在指定的时间后执行。
如果是字符串,会自动转换为new function 或表达式,最终报错。

function a(){
alert('a');
}
//window.setTimeout(a,2000);2秒后打印

//window.setTimeout('a',2000);不打印

//window.setTimeout('a()',2000);不打印

//window.setTimeout(a(),2000);立即打印

function b(ab){
alert(ab);
}

//window.setTimeout(b(2),2000);//立即打印

//window.setTimeout("b(2)",2000);//不打印

//window.setTimeout("b("+2+")",2000);//不打印

//window.setTimeout(function(){b(2);},2000);//2s后打印

//window.setTimeout(new function(){b(2);},2000);//直接打印

window.setTimeout(function(){b(2);}(),2000);//直接打印

34.

在这里插入图片描述
在这里插入图片描述
js中this的用法:
function中的this:指向window,因为是window调用的方法
对象的function中的this:指向这个对象
匿名函数中的this:指向window。匿名函数的执行是有全局性的
对象中定义的普通函数的this:指向window,因为没有通过父对象调用

var myObject = {
foo: "bar",
func: function() {
var self = this; 
  console.log(self===myObject);//true
  console.log(this.foo); //bar
  console.log(self.foo);//bar
  (function() {
    console.log(this==window);//window
  	console.log(this.foo); //undefined
    console.log(self==myObject);//self和匿名函数同级
    console.log(self.foo); //bar
  }());
  } };
myObject.func();

35.

在这里插入图片描述
js undefined和error not defined的区别:
undefined是指在引用之后声明了变量(js变量提升)/在引用之前只声明了没有赋值
error not defined是指整个域中没有定义变量,引用时会报错。
g不是一个声明的函数,而是表达式的一部分。g()没有被定义。
所以在引用时找不到g

36.

在这里插入图片描述
li的点击事件会自动寻找要调用的函数,此时循环已经执行完,i变为4。alert(i)寻找到父级域中var i 的值为4,打印的结果都是4。

37.

在这里插入图片描述
js中的in关键字:
(1)数组中取值 for( val in array)
(2)判断对象是否存在于数组/对象中。对于数组,对象是索引,对于对象,判断的对象是属性。

if(! "a" in window){
  var a = 1; 
}
alert(a);

等价于

var a;
if(! "a" in window){
   a = 1; 
}
alert(a);

所以a已经被定义为全局变量,不会进入if分支,a的值显示为undefined

38.

在这里插入图片描述
js中的减号:
如果都是数字类型,直接计算
如果有一个是NaN类型,结果也是NaN类型
如果是String、boolean、null、undefined类型,系统会隐式调用toNumber(),然后和前两条规则一致
如果是对象类型,会先调用valueOf(),如果没有再调用toString(),然后和前三条规则一致。

console.log(1+"2"+"2");// 122
console.log(1+ +"2"+"2"); //1+ (+"2")+"2",+"2"是一元运算符,将字符串转换为数字,和toNumber()方法一样,所以是1+2+"2",32
console.log("A"- "B"+"2");//减号的规则,NaN2
console.log("A"- "B"+2);//NaN+数字类型,为NaN

39.

在这里插入图片描述

(function(){
var a=b=5;
})();
console.log(b);//5
console.log(a);//出错 Error: a is not defined

实际上拆分为

(function(){
var a=b;
b=5;
})();
console.log(b);//5 b为全局变量
console.log(a);//a是局部变量 访问不到

40.

在这里插入图片描述
js中的^= 和~=
~=是按位取反的意思
^=是按位异或的意思

a^=(1<<4)-1
a = 10 ^ 15
1010 ^ 1111
0101 = 5

41.

在这里插入图片描述

fun = function(){
alert(this===window);//true
alert(this.a);
};

this是window。
a是window的一个属性,从原型链中找a,没找到会返回undefined。

42.

在这里插入图片描述
js常用内置对象:String array Math Date RegExp Global

43.

在这里插入图片描述
基本数据类型:String、Boolean、Number、undefined、null、Symbol

引用数据类型(复杂数据类型):Object

js中所有数字都是以64位浮点数形式储存,64bit=8byte

44.

在这里插入图片描述
第二个add()在编译时替代了第一个add(),所以返回值都是m+3,4。

45.

在这里插入图片描述
ABCD都是函数调用的方式
函数名.call()
函数名.apply()
call()和apply()相同点是,作用一样,都是调用函数
区别是,两个函数第一个参数都是this对象,call后面的参数是列出,apply后面的参数是数组

46.

在这里插入图片描述

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

和之前的一道题相同,先执行完循环,然后setTimeout执行函数时,寻找i的值,发现父级域中定义的var i 的值是5,所以依次输出5个5。

47.

在这里插入图片描述
没有关系就是java和js的关系

48.

在这里插入图片描述

Sea.js(CMD) RequireJS(AMD)
AMD (Asynchronous Module Definition,异步模块定义)
CMD 即Common Module Definition通用模块定义

49.

在这里插入图片描述
返回全局变量的加法结果 foobar

50.

在这里插入图片描述
语法错误

js中的void是一个一元运算符,出现在操作数的前面
void 0; void (0);都是合法的写法
操作数可以是任意类型,但是会忽略操作数的结果,返回undefined

51.

在这里插入图片描述
Object不是基本类型,是引用(复杂)数据类型

52.

在这里插入图片描述
for(x in person) x是属性
person[x],属性相当于下标,取到的是属性值
所以是属性值的加法,johnDoe25

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值