东营两学一做测试网站/万能软文范例800字
1. 下列描述中,错误的是
a. 面向对象开发中,引用传递意味着传递的并不是实际的对象,而是对象的引用,因此,外部对引用对象所做的改变不会反映到所引用的对象上
b. 面向对象的三大特性包括:封装,继承,多态
解析:答案 a
引用对象引用的是实际的对象,对引用的修改就是对对象的修改
2. 从字符串 const str = ‘qwbewrbbeqqbbbweebbbbqee’;中能得到结果 [“b”, “bb”, “bbb”, “bbbb”] 以下错误语句是
a. str.match(/b+/g)
b. str.match(/b*/g)
c. str.match(/b{1,4}/g)
d. str.match(/b{1,5}/g)
解析:答案 b
+表示出现至少一次b
*表示可以不出现b,也可以出现一次或多次
{n,m}表示最少出现n次b,最多出现m次b
3.要在10秒后调用checkState,下列哪个是正确的
a. window.setTimeout(checkState, 10)
b. window.setTimeout(checkState, 10000)
c. window.setTimeout(checkState(), 10)
d. window.setTimeout(checkState(), 10000)
解析:答案 b
window.setTimeout(checkState(), 10000); //立即被调用
window.setTimeout(checkState, 10000); // 10s后被调用
window.setTimeout(“checkState()”, 10000); //10s后被调用 注意和第一个的区别 有引号
checkState加了圆括弧相当于函数表达式,会立即执行,执行的结果作为返回值传递给settimeout
4. 如下结果是
var x = new Boolean(false);
if (x) {alert('hi');
}
var y = Boolean(0);
if (y) {alert('hello');
}
解析:答案 hi
此题考查的是 JS 的类型转换:
- if(x) 这里期望 x 是一个布尔类型的原始值,而 x 是一个对象,任何对象转为布尔值,都为得到 true(切记!在 JS 中,只有0,-0,NaN,"",null,undefined 这六个值转布尔值时,结果为 false)
- 题目的第二部分,一定要注意 y = Boolean(0),而不是 y = new Boolean(0)。这两个有很大区别,用 new调用构造函数会新建一个布尔对象,此处没有加 new,进行的是显示类型转换,正如上述第一条所说,0 转换布尔,结果为 false,所以此时y 的值就是 false。如果加了 new,那么 y 就是一个 Boolean 类型的对象,执行 if(y) 时,对象转布尔,始终是true,所以结果会与不加 new 的时候相反
5.下拉菜单中,用户更改表单元素Select中的值时,就会调用( onChange
)事件处理程序
6. 哪些表达式的结果为true
a. isNaN("100")
b. parseInt("1a") === 1
c. [] instanceof Array
解析 答案 b c
7. 如何遍历下面的 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<my_data.length;i++) {}
解析:答案 a
for…in 语句用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)
8. 以下ES6代码,下面哪项正确
function * gen() {yield 1;yield 2;yield 3;
}
a. gen()执行后返回一个Generator对象
b. gen()执行后返回1
解析:答案 a
9.
getElementsByName() 方法可返回带有指定名称的对象的集合
- 语法
document.getElementsByName(name)
该方法与 getElementById() 方法相似,但是它查询元素的 name 属性,而不是 id 属性 - 另外,因为一个文档中的 name 属性可能不唯一(如 HTML 表单中的单选按钮通常具有相同的 name 属性),所有getElementsByName() 方法返回的是元素的数组,而不是一个元素
10. 下列不属于
document对象方法的是
a. onload
b. querySelectorAll
c. children
d. ajax
解析:答案 a c d
onload 为 document 对象的属性,而不是方法
ParentNode.children 是一个只读属性,返回一个节点的子元素,是一个动态更新的 HTMLCollection 类型。不是 document 对象的方法
AJAX不是JavaScript的规范,它只是一个缩写:Asynchronous JavaScript and XML,意思就是用JavaScript执行异步网络请求。在现代浏览器中主要依靠 XmlHttpRequest 对象
11. 以下代码执行后,console 的输出是
function Foo(){
console.log(this.location)
}
Foo()
解析:答案 当前窗口的 Location 对象
点击查看👉this指向
这里 this指向 window对象中的location
12.
var filt=/^1[0-9]{10}+$/
^ 匹配输入字符串的开始位置。在这里也就是要求1开始
[0-9]{10}+ [0-9]匹配0~9之间的数字,{10}重复10次。+匹配前面的子表达式一次或多次
$ 匹配输入字符串的结尾位置
13. 以下 javascript 代码,在浏览器中运行的结果是
解析:答案:string
短路或 如果第一项是true 则结果为true 如果第一项为false 结果 为第二项(第二项不做计算直接返回)
14. 获取原生JS的父节点的是
解析:答案 element.parentNode
15.以下代码的输出结果是
var f = function g() {return 23
}
typeof g()
a. "number"
b. Error
解析:答案 b
typeof f 结果是function
typeof f() 结果是number
typeof g 结果是undefined.
typeof g() 结果是ReferenceError,g is not defined
16. 该代码在浏览器中执行,输出的日志结果是什么 (后续研究…)
var obj = {};
obj.log = console.log;
obj.log.call(console,this);
解析:答案 window