8.26做JS的题目

1.下列正确定义函数的是

A function foo() {}

B Function foo() {}

C var foo = new Function foo() {}

D var foo = new function foo() {}

A:function foo() {}是普通的函数声明
B:Function应是小写
CD:是使用了Function构造函数,正确写法:var foo = new Function();
2.下面哪一个是JSON数据?
A{name:"xiaoming",age,"student"}
B{"name":"xiaoming","age":"student"}
C{"xiaoming","student"}
D  ["xiaoming","student"]

有效的数据类型

在 JSON 中,值必须是以下数据类型之一:

字符串 数字  对象(JSON 对象) 数组 布尔  Null

JSON 的值不可以是以下数据类型之一:

函数 日期 undefined

JSON 字符串 JSON 中的字符串必须用双引号包围。{ "name":"John" }

JSON 数字 JSON 中的数字必须是整数或浮点数。{ "age":30 }

 JSON 中的值可以是对象。{"employee":{ "name":"Bill Gates", "age":62, "city":"Seattle" }}

JSON 中的值可以是数组。{"employees":[ "Bill", "Steve", "David" ]}

JSON 中的值可以是 true/false。{ "sale":true }

JSON 中的值可以是 null。{ "middlename":null }

3.JavaScript定义var a="40",var b=7,则执行a%b会得到()。  5

4.你想通过 XMLHttpRequest更新以下元素,即通过div显示状态,哪个是正确的做法?

 <div id="statusCode"></div>
A.var myDiv = document.getElementById ("statusCode"); myDiv.innerHTML = req.statusCode;
B.var myDiv = document.getElementById ("statusCode"); myDiv.innerHTML = req.status;
C.var myDiv = document.getElementById ("statusCode"); myDiv.setStatus (req.statusCode);
D.var myDiv = document.getElementById ("statusCode"); myDiv.status = req.status;
这个题的意思应该是把XHR的状态返回在这个div显示出来吧。显示就用innerHTML。req.status返回状态码。所以选B
5.从字符串 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+/g //匹配前面的子表达式一次或多次,有一个或多个b

/b*/g //匹配前面的子表达式零次或多次,结果不止数组中那么多

/b{1,4}/g //匹配1-4个b

/b{1,5}/g //匹配1-5个b

+表示出现至少一次b
*表示可以不出现b,也可以出现一次或多次
{n,m}表示最少出现n次b,最多出现m次b
6.以下代码执行后,result 的值是:
var result = Math.round(11.5) + Math.round(-11.5);
1
Math.round(x)是四舍五入是朝着大的数字入不是远离0
7.
有如下代码:
var name="World!";

(function(){

var name;

if(typeof name=== 'undefined'){

name='Jack';

console.log('Goodbye'+name);

}

else

{

console.log('hello'+name);

}

}

)();

请问执行后弹出的值是:()Goodbye Jack
因为在判断if的时候函数内部的name是个空值所以类型就是underfined所以就直接输出Goodbye Jack
8.以下代码执行时不会在控制台输出错误信息的是:
Alet a = decodeURIComponent('%');
B.var a;
a();
function a() {
console.log(a);
}
C.Promise.reject(123).finally(a => {
console.log(a);
});
D.var a = 1;
let a = 2;
console.log(a);
B选项:主要考察的是函数的提升和变量的提升,牢记一点:函数提升后的位置在变量提升后的位置之后,也就是相当于先声明一个var a,然后function a()函数提升了,将其覆盖,所以B选项无论在哪个位置打印a,输出的都是a这个函数
A选项:decodeURIComponent()里面的参数:必需。一个字符串,含有编码 URI 组件或其他要解码的文本。我没用过,可以直接参考w3c:https://www.w3school.com.cn/jsref/jsref_decodeURIComponent.asp
D选项:可以直接看看let 和 var的区别  两个都是var的话下面会直接覆盖上面的,let的话重复定义会报错。

9.下面哪个不是RegExp对象的方法?()

 JavaScript RegExp 对象有 3 个方法:test()、exec() 和 compile()。
(1) test() 方法用来检测一个字符串是否匹配某个正则表达式,如果匹配成功,返回 true ,否则返回 false;
(2) exec() 方法用来检索字符串中与正则表达式匹配的值。exec() 方法返回一个数组,其中存放匹配的结果。如果未找到匹配的值,则返回 null;
(3)compile() 方法可以在脚本执行过程中编译正则表达式,也可以改变已有表达式。

10.
this对象的理解正确的是 ()

1.在事件中,this指向触发这个事件的对象(特殊的是:IE中的attachEvent中的this总是指向全局对象window)。
2.this总是指向函数的直接调用者(而非间接调用者)
3.new后面就是构造函数,构造函数中的this指向的就是当前的对象
原文地址:https://www.cnblogs.com/smhyu/p/13566437.html