元素
29、下列哪个不属于id与class之间的区别( )
A、id在文档中只能使用一次,而class可以多次使用
B、id比class具有更高的样式优先级
C、一个元素只能有一个id属性值,却可以拥有多个class属性值
D、在class中可以定义:hover伪类,在id中不能定义
解析:
选D
在样式表定义一个样式的时候,可以定义id也可以定义class。
1、在CSS文件里书写时,ID加前缀"#";CLASS用"."
2、id一个页面只可以使用一次;class可以多次引用。
3、ID是一个标签,用于区分不同的结构和内容;class是一个样式,可以套在任何结构和内容上
4、从概念上说就是不一样的:id是先找到结构/内容,再给它定义样式;class是先定义好一种样式,再套给多个结构/内容。
30、把鼠标移到按钮并点击时,会产生一串什么样的事件( )
A、active hover focus
B、foucs hover active
C、hover active foucus
D、hover focus active
解析:
选D
触发顺序为 link-->visited--->hover--->active
31、下列哪些是HTML5相关的框架或类库:( )
A、spring-core
B、RactiveJS
C、Dubbo
D、Bootstrap
E、AngularJS
F、Hibernate
解析:
选B、D、E
Spring框架是一个开放源代码的J2EE应用程序框架
Dubbo是一款高性能、轻量级的开源Java RPC框架
Hibernate是一个开放源代码的对象关系映射框架
32、css中clear的作用是什么?( )
A、清除该元素所有样式
B、清除该元素父元素的所有样式
C、指明该元素周围不可出现浮动元素
D、指明该元素的父元素周围不可出现浮动元素
解析:
选C
clear : none | left | right | both.
对于CSS的清除浮动(clear),
这个规则只能影响使用清除的元素本身,不能影响其他元素
33、css 中可继承的属性有哪些( )
A、height
B、font-size
C、border
D、width
E、color
解析:
选B、E
所有元素可继承:visibility和cursor。
内联元素可继承:letter-spacing、word-spacing、white-space、line-height、color、font、font-family、font-size、font-style、font-variant、font-weight、text-decoration、text-transform、direction。
终端块状元素可继承:text-indent和text-align。
列表元素可继承:list-style、list-style-type、list-style-position、list-style-image
JavaScript
1、JavaScript中window对象的子对象不包含以下哪个对象?( )
A. document B. self C. history D. message
解析:
选D
window的主对象主要有如下几个:
document frames history location navigator screen
window、self、window.self三者是等价的
2、将一个整数序列整理为升序,两趟处理后变为10,12,21,9,7,3,4,25,则采用的排序算法可能Z:( )
A、插入排序
B、快速排序
C、选择排序
D、堆排序
解析:
选C
第一层循环:依次遍历序列当中的每一个元素
第二层循环:将遍历得到的当前元素依次与余下的元素进行比较
符合最小元素的条件,则交换
选择排序的基本思想:比较+交换
3、下边这代码输出的结果是:( )
function showCase(value) { switch(value) { case 'A': console.log('Case A'); break; case 'B': console.log('Case B'); break; case undefined: console.log('undefined'); break; default: console.log('Do not know!'); } } showCase(new String('A'));
A、Case A
B、Case B
C、undefined
D、Do not know!
解析:
选D
此题考查的是关于new string();其中new是一个实例对象,要匹配的也是object,
所以输出结果为Do not know
4、下边这代码输出的结果是( )
var two = 0.2 var one = 0.1 var eight = 0.8 var six = 0.6 console.log([two - one == one, eight - six == two]);
A、[true, true]
B、[false, false]
C、[true, false]
D、other
解析:
选C
这题考的是浮点数计算时精度丢失问题
5、以下代码的执行结果是什么( )
var string = 'string'; var number = 0; var bool = true; console.log(number || string); console.log(number && string); console.log(bool || number); console.log(bool && number);
A. ‘string’, 0, true,0
B. ‘string’, true,0, 0
C. ‘string’, ‘string’,true, 0
D. ‘string’, 0, true,true
解析:
选A
var string = 'string'; 对象为true var number = 0; 非零数字为true var bool = true; 非空字符串为true console.log(number || string); 其他为false console.log(number && string); console.log(bool || number); console.log(bool && number);
6、下面可以匹配的正则表达式是( )
A、
B、
C、
D、
复制代码解析:
选A
var a='' var b=//gi var s=a.match(b) for(var i= 0;i
7、["1", "2", "3"].map(parseInt) 返回的结果为( )
A:["1", "2", "3"]
B:[1, 2, 3]
C:[0, 1, 2]
D:other
解析:
选D
这题的答案是:[1,NaN,NaN]
该题用到了map与parseInt;parseInt() 函数的语法是parseInt(string, radix);
string 必需。要被解析的字符串。
radix可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。
如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN
实际上map里的callback函数接受的是三个参数 分别为元素 下标和数组
回调函数的语法如下所示:
function callbackfn(value, index, array1)
可使用最多三个参数来声明回调函数。
8、[typeof null, null instanceof Object]这些类型的结果是( )
A: ["object", false]
B: [null, false]
C: ["object", true]
D: other
解析:
选A
这题考察的是typeof运算符和instanceof运算符
typeof运算符,一些基础类型的结果是:
Undefined "undefined" Null "object" Boolean "boolean" Number "number" String "string" Any other object "object" Array "object" Null instanceof任何类型都是false
9、下边代码输出的结果是( )
var val = 'smtg'; console.log('Value is ' + (val === 'smtg') ? 'Something' : 'Nothing');
A: Value is Something
B: Value is Nothing
C: NaN
D: other
解析:
选D
这题考的是js中的运算符优先级,
这里’+’运算符的优先级要高于’?’
所以val === ‘smtg’实际上就是true
所以结果为’Something’
10、下边代码输出的结果是( )
var name = 'World!'; (function () { if (typeof name === 'undefined') { var name = 'Jack'; console.log('Goodbye ' + name); } else { console.log('Hello ' + name); } })();
A: Goodbye Jack
B: Hello Jack
C: Hello undefined
D: Hello World
解析:
选A
这题考的是js作用域中变量的提升,
js的作用于中使用var定义变量都会被提升到所有代码的最前面,
所以var name目前是undefined,
题目的typeof name === ‘undefined’的结果为true时,就会输出’Goodbye Jack’
11、var arr = [];typeof arr 的结果是( )
A、array
B、function
C、object
D、undefined
解析:
选C
5种简单数据类型(也称基本数据类型):
Undefined、Null、Boolean、Number、String
1种复杂数据类型:Object(基本上除了上述5种,其余都是Object)
12、以下代码执行后,console 的输出是( )
function Foo(){ console.log(this.location); } Foo();
A、当前窗口的 Location 对象
B、undefined
C、null
D、TypeError
解析:
选A
这题考的是this的用法
'use strict'条件下,会报TypeError
无'use strict'下,this指向window
13、下列事件哪个不是由鼠标触发的事件()
A、click
B、contextmenu
C、mouseout
D、keydown
解析:
选D
常见的事件: 1. 点击事件: 1. onclick:单击事件 2. ondblclick:双击事件
2. 焦点事件 1. onblur:失去焦点 2. onfocus:元素获得焦点。
3. 加载事件: 1. onload:一张页面或一幅图像完成加载。
4. 鼠标事件: 1. onmousedown 鼠标按钮被按下。 2. onmouseup 鼠标按键被松开。 3. onmousemove 鼠标被移动。 4. onmouseover 鼠标移到某元素之上。 5. onmouseout 鼠标从某元素移开。 5. 键盘事件: 1. onkeydown 某个键盘按键被按下。 2. onkeyup 某个键盘按键被松开。 3. onkeypress 某个键盘按键被按下并松开。
6. 选择和改变 1. onchange 域的内容被改变。 2. onselect 文本被选中。
7. 表单事件: 1. onsubmit 确认按钮被点击。 2. onreset 重置按钮被点击。
14、如何遍历下面的 my_data 对象?( )
var my_data={a:’Ape’, b:’Banana’, c:’Citronella’};
A、for(var key in my_data) {}
B、foreach(my_data as key=>value) {}
C、for(var i=0;i D、全不正确
解析:
选A
for in遍历对象所拥有的属性(可枚举的)
由于对象和数组不同,不能用下标来访问,只能用for in遍历
15、如何判断一个js对象是否是Array,arr为要判断的对象,其中最准确的方法是?( )
A、typeof(arr)
B、arr instanceof Array
C、arr.toString==='[object Array]';
D、Object.prototype.toString.call(arr) === '[object Array]';
解析:
选D
A选项中的typeof(arr) 返回的是 Object
instanceof 在跨 frame 对象构建的场景下会失效
arr.toString 没有这种用法,正确的用法是 arr.toString() 返回的是数组的内容
16、在很多时候,我们需要给网页中的一些元素不停的切换样式,那么要怎样实现给元素删除一个样式的同时,添加另外一个样式( )
A、
$('#ele').removeClass('className');
$('#ele').addClass('ClassName');
B、
$('us').removeClass('className');
$('us').addClass('ClassName');
C、
$('.us').removeClass('className');
$('.us').addClass('ClassName');
D、
$('us').remove('className');
$('us').add('ClassName');
解析:
选A
B选项错
选项使用元素选择器,但是 HTML 中没有 us 标签
C选项错
选项使用类选择器,但是删除了类样式后,如何通过类选择器给元素添加样式
D选项错
add() 方法:把元素添加到已存在的元素组合中。
remove() 方法:移除被选元素,包括所有的文本和子节点。
17、下列代码hasOwnProperty的作用是?( )
var obj={} …….. obj.hasOwnProperty("val")
A、判断obj对象是否具有val属性
B、判断obj对象是否具有val的值
C、判断obj的原型对象是否具有val的属性
D、判断obj的原型对象是否具有val的值
解析:
选A
hasOwnProperty:
是用来判断一个对象是否有你给出名称的属性或对象
isPrototypeOf :
是用来判断要检查其原型链的对象是否存在于指定对象实例中,是则返回true,否则返回false。
18、下列不属于javascript内置对象的是( )
A、Math
B、Date
C、RegExp
D、Window
E、Error
解析:
选D
js中的内部对象包括
Array、Boolean、Date、Function、Global、Math、Number、Object、RegExp、String以及各种错误类对象,包括Error、EvalError、RangeError、ReferenceError、SyntaxError和TypeError。
19、javascirpt中的数字在计算机内存储为多少Byte( )
A、2 Byte
B、4Byte
C、8Byte
D、16Byte
解析:
选C
"JavaScript内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。"
8 Byte = 64bit ;
8个字节,64位
20、以下运行结果( )
for(var i = 0; i <10; i++) { setTimeout(function() { console.log(i); }, 1000); }
A、0--9
B、10个10
C、10个9
D、无限循环
解析:
选B
setTimeout中的闭包函数是每1s执行一次
由于for循环的执行速度远小于1s,
所以当开始执行闭包函数的时候for循环已经结束了(i=10),
之后闭包函数执行十次(因为循环了10次),所以打印了10个10。
21、若需给子scope发送消息,需使用哪个方法( )
A、$emit()
B、$broadcast()
C、$on()
D、$send()
解析:
选B
$broadcast是向下传播事件
22、函数的调用方式有哪些:( )
A、直接调用
B、作为对象方法调用
C、作为构造函数调用
D、通过call和apply方法调用
解析:
选A、B、C、D
23、下拉菜单中,用户更改表单元素Select中的值时,就会调用( )事件处理程序
A、onMouseOver
B、onFocus
C、onChange
D、onClick
解析:
选C
切换下拉菜单更改状态用onchange
A选项:鼠标事件
B选项:焦点事件一般是input
C选项:改变状态
D选项:点击事件
24、在ES6规范中,以下类型哪些属于基本数据类型( )
A、String
B、Null
C、Undefined
D、Symbol
解析:
选A、B、C、D
基本数据类型:Number,String, Null, Undefined, Boolean,Symbol(es6新增)
引用数据类型:Object,Function
25、语句var arr=[a,b,c,d];执行后,数组arr中每项都是一个整数,下面得到其中最大整数语句正确的是哪几项?( )
A、Math.max(arr)
B、Math.max(arr[0], arr[1], arr[2], arr[3])
C、Math.max.call(Math, arr[0], arr[1], arr[2], arr[3])
D、Math.max.apply(Math,arr)
解析:
选B、C、D
因为传入的数组,所以A选项错误
C选项,Function.call()可以传入任意多个参数,所以C正确
D选项,Function.apply()第二个参数以数组形式传递,所以D正确
26、以下结果里,返回true的是( )
A、!![]
B、1===’1’
C、null===undefined
D、!!’’
解析:
选A
A选项,由于数组属于对象类型,所以空的数组转换成布尔型是true,前置!!,两次取反,返回true。A正确。
B选项,“===”同等于(包含数据类型),左右两端数据类型不同,因此返回false。
C选项,同上,由于左右两端数据类型不同,返回false。
D选项,字符的编码值为0的字符,因此返回false。
27、JavaScript实现继承的方式,不正确的是( )
A、原型链继承
B、构造函数继承
C、组合继承
D、关联继承
解析:
选D
JavaScript实现继承共6种方式:原型链继承、借用构造函数继承、组合继承、原型式继承、寄生式继承、寄生组合式继承。
28、以下代码执行后,console 的输出是( )
let x = 10; let foo = () => { console.log(x); let x = 20; x++; } foo();)
A、抛出 ReferenceError
B、10
C、20
D、21
解析:
选A
let不存在变量提升,所以没有事先声明。
let块级作用域,所以不会去访问外部的x。
既不会访问外部,又没有事先声明,输出x便会报错
29、关于 this 的工作原理,下面 4 种情况的描述哪一个是错误的?( )
A、在全局范围内,this指向全局对象(浏览器下指window)
B、对象函数调用时,this指向当前对象
C、全局函数调用时,this指向全局函数
D、使用new实例化对象时,this指向新创建的对象
解析:
选C
this有四种情况!
1、当在函数调用的时候指向widow
2、当方法调用的时候指向调用对象
3、当用apply和call上下文调用的时候指向传入的第一个参数
4、构造函数调用指向实例对象
JS中this关键字, 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。
全局函数调用时,this指向全局函数; 应该是指向调用全局函数的对象。
30、以下js操作Array的方法中不能添加元素的是:( )
A、push
B、pop
C、unshift
D、splice
解析:
选B
数组.pop(): 删除数组的最后一项,该表达式返回最后一项的数据
31、关于javascript,以下选项描述错误的是( )
A、在原型上扩展的可枚举方法,会被for in循环出来
B、使用object.defineProperty可向对象添加或者修改属性
C、通过hasOwnProperty可判断一个对象以及其原型链上是否具有指定名称的属性
D、原型链是JS实现继承的一种模型
E、每个对象都有prototype属性,返回对象类型原型的引用
F、For循环是按顺序的,for in 循环是不一定按顺序的
解析:
选C
hasOwnProperty方法是用来检测给定的属性是否在当前对象的实例中。
32、关于ES6的使用以下描述错误的是?( )
A、
const a = 1; const b = 2; const map = {a, b};
B、
C、
class A { constructor (a) { this.a = a; } } class AA extends A { constructor (a, b) { super(a); this.b = b; } toString () { return this.a + '' + this.b; } }
D、
function* greet(){ yield "How"; yield "are"; yield "you"; } var greeter = greet(); console.log(greeter.next().value); console.log(greeter.next().value); console.log(greeter.next().value);
解析:
选B
es6中将构造方法的function换成了class,
用于与普通函数区分,其中的属性都放在constructor中,
方法在原型中,子类继承采用extends关键字;对于es6中枚举的使用,
只能是以类的方式定义枚举类,不能直接使用enum关键字
33、获取 input 节点的错误方法是( )
A、document.querySelectorAll('file')[0]
B、document.getElementById('file')[0]
C、document.getElementByTagName('file')[0]
D、document.getElementById('file')
解析:
选A、B、C、D
A选项:应该是 document.querySelectorAll('#file')[0]
B选项:应该是 document.getElementById('file')
C选项:应该是 document.getElementsByTagName('input')[0]
D选项:input标签中就没有class属性
34、下列哪些会返回false( )
A、null
B、undefined
C、0
D、‘0'
解析:
选A、B、C
35、以下哪些选项可以将集合A转化为数组( )
A、Array.form(A)
B、[].slice.apply(A)
C、[…A]
D、[].map.call(A, o => o)
解析:
选A、B、C、D
A选项:可以把对象转换成真正的数组
B选项:slice( )方法可从已有的数组中返回选定的元素
C选项:展开运算符,把A集合的元素展开后,用数组[]承载,返回新的数组
D选项:map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值
36、js数组的方法中,哪些方法不能改变自身数组( )
A、splice
B、concat
C、sort
D、pop
解析:
选B
splice删除数据会改变数组
concat连接数组但是不改变院数组
sort排序会改变数组
pop出栈返回最后一个最后一个元素,改变数组
37、下面有关JavaScript中 call和apply的描述,错误的是( )
A、call与apply都属于Function.prototype的一个方法,所以每个function实例都有call、apply属性
B、apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入
C、call传入的则是直接的参数列表。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
D、两者传递的参数不同,call函数第一个参数都是要传入给当前对象的对象,apply不是
解析:
选D
call, apply方法它们除了第一个参数,即执行时上下文对象相同外,
call方法的其它参数将依次传递给借用的方法作参数,而apply就两个参数,
第二个参数为一个数组传递
38、白屏时间first paint和可交互时间dom ready的关系是( )
A、先触发first paint ,后触发dom ready
B、先触发dom ready,后触发first paint
C、一起触发
D、没关系
解析:
选A
白屏时间(first Paint Time)——用户从打开页面开始到页面开始有东西呈现为止
首屏时间——用户浏览器首屏内所有内容都呈现出来所花费的时间
用户可操作时间(dom Interactive)——用户可以进行正常的点击、输入等操作,默认可以统计domready时间,因为通常会在这时候绑定事件操作
总下载时间——页面所有资源都加载完成并呈现出来所花的时间,即页面 onload 的时间
39、最后一句alert的输出结果是( )
var msg='hello'; for (var i=0; i<10; i++) { var msg='hello'+i*2+i; } alert(msg);
A、hello
B、hello27
C、hello30
D、hello189
解析:
选D
这里只是for循环不是函数,
因此for内部定义的msg与for外部定义的msg为在同一块作用域,为同一个变量。
输出hello189
hello+9*2+9
40、要在10秒后调用checkState,下列哪个是正确的( )
A、window.setTimeout(checkState, 10);
B、window.setTimeout(checkState(), 10);
C、window.setTimeout(checkState, 10000);
D、window.setTimeout(checkState(), 10000);
解析:
选C
checkState加了( )相当于函数表达式,会立即执行,执行的结果作为返回值传递给settimeout
10 s 应该为 10000
所以选C
41、下列代码得到的结果是( )
console.log(([])?true:false); console.log(([]==false?true:false)); console.log(({}==false)?true:false)
A、false true true
B、true true false
C、true false true
D、true true true
解析:
选B
Boolean([]); //true Number([]); //0 Number({}); // NaN Number(false); //0
console.log(([])?true:fasle);// => console.log((true)?true:false); console.log([]==false?true:false); // => console.log(0==0?true:false); console.log(({}==false)?true:false); // => console.log((NaN==0)?true:false);
第一个
第二个
==相等比较时,允许类型转换 其他类型值和布尔值==比较时,先将布尔值强制转换为对应数字,再进行比较 []==false []==0 []和数字相等比较时转数字0 0==0 true
第三个
{}==false {}==0 NaN==0 false
42、JavaScript定义var a="40",var b=7,则执行a%b会得到( )
A、null
B、undefined
C、5
D、"5"
解析:
选C
运算中,+号,数字隐式转换成字符串
其余的运算符号是字符串隐式转换成数字
43、下列关于闭包描述正确的是?( )
A、(function(){})()理论上是一个闭包
B、闭包不耗内存,可以随意使用
C、闭包内变量执行后不会被清除
D、闭包不满足链式作用域结构
解析:
选A、C
逻辑上立即执行函数可以理解为:声明闭包函数-执行-释放内存
闭包内变量要到整个闭包被清除的时候才会清除
44、在ECMAScript6 中,promise的状态有( )
A、Pending
B、Pause
C、Resolved
D、Rejected
解析:
选A、C、D
Promise 对象代表一个异步操作,有3种状态:
Pending(进行中)、Resolved(已完成,又称Fulfilled)和Rejected(已完成)’
45、下面有关浏览器中使用js跨域获取数据的描述,说法错误的是( )
A、使用window.name来进行跨域
B、域名、端口相同,协议不同,属于相同的域
C、js可以使用jsonp进行跨域
D、通过修改document.domain来跨子域
解析:
选B
只要 协议、域名、端口有任何一个不同, 都被当作是不同的域
46、下面关于DNS说法正确的是( )
A、DNS协议端口号为53
B、DNS的作用是域名和IP地址的相互映射
C、DNS协议大多数运行在UDP协议之上
D、DNS的默认缓存时间为1小时
解析:
选A、C
A选项:DNS协议默认端口号是53
B选项:DNS就是将域名翻译成IP地址。
C选项:主要用UDP,但是当请求字节过长超过512字节时用TCP协议,将其分割成多个片段传输
D:操作系统的DNS缓存:windows DNS缓存的默认值是 MaxCacheTTL,它的默认值是86400s,也就是一天。macOS 严格遵循DNS协议中的TTL。
游览器的DNS缓存:chrome对每个域名会默认缓存60s;IE将DNS缓存30min;Firefox默认缓存时间只有1分钟;Safari约为10S。
47、下面运行结果正确的是( )
var a = {}, b = Object.prototype;
[a.prototype === b, Object.getPrototypeOf(a) === b]
复制代码A、other
B、[true, true]
C、[false, false]
D、[false, true]
解析:
选D
这题考的是__proto__和prototype的区别
Object实际上是一个构造函数(typeof Object的结果为"function")
使用字面量创建对象和new Object创建对象是一样的,
所以a.__proto__也就是Object.prototype,
而Object.getPrototypeOf(a)与a.__proto__是一样的,所以第二个结果为true
而实例对象是没有prototype属性的,只有函数才有
所以a.prototype其实是undefined,第一个结果为false
48、下面运行结果正确的是( )
var a = /678/, b = /678/; a == b a === b
A、other
B、true,true
C、true、false
D、false、false
解析:
选D
JavaScript中的正则表达式依旧是对象,使用typeof运算符就能得出结果:object
运算符左右两边都是对象时,比较他们是否指向同一个对象
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持0133技术站。