javascript|JavaScript理论题(一)


1.

1
2
3
4
5
6
7
var person={fname:"John",lname:"Doe",age:25};
var txt="";
for (x in person)
{
txt=txt + person[x];
}
alert(txt);
输出为?
JohnDoe25

fname:"John",lname:"Doe",age:25

fname:John,lname:Doe,age:25

fnamelnameage

2.获取 input 节点的正确方法是()



  • document.querySelectorAll('file')[0] //undefined

  • document.getElementById('file')[0] // undefined

  • document.getElementByTagName('file')[0] //undefined

  • document.getElementById('file') //ID返回的是一个element而不是一个集合。

javascript|JavaScript理论题(一)
文章图片

javascript|JavaScript理论题(一)
文章图片

javascript|JavaScript理论题(一)
文章图片


3.下面有关JavaScript中系统方法的描述,错误的是?
parseFloat方法:该方法将一个字符串转换成对应的小数

isNaN方法:该方法用于检测参数是否为数值型,如果是,返回true,否则,返回false。

escape方法: 该方法返回对一个字符串编码后的结果字符串

eval方法:该方法将某个参数字符串作为一个JavaScript执行

解析:isNaN,如果是数字,则返回false,不是数字,返回true。
4.在页面加载完成后,如果想动态地改变网页的标题,可以通过(C)
是不可能的

document.write(“新的标题内容”)

document.title = ''

document.changTitle(“新的标题内容”)

5.下列代码
1
2
3
var obj={}
……..
obj.hasOwnProperty("val")
中hasOwnProperty的作用是?
判断obj对象是否具有val属性

判断obj对象是否具有val的值

判断obj的原型对象是否具有val的属性

判断obj的原型对象是否具有val的值

6.下面js数组的方法中,哪些方法不能改变自身数组?
pop

splice

sort

concat

解析:
Array对象中的方法:
不改变原数组的有
concat():连接数组
join():数组=>字符串
slice():截取数组的一部分
改变原数组的有:
pop()删除并返回数组最后一个元素,shift()与其相反,删除第一个
push()向数组末添加>=1个元素,返回数组新长度,unshift()与其相反,向开头添加
sort(函数)对数组元素排序
splice()改变(删除、替换)数组内部元素,返回由被删除项目组成的新数组(如果有的话)
7.
执行以下程序,输出结果为()
var arr = [2,1,3,5,9];
var count = 0;
arr.forEach((val1,val2)=>{
count++;
if(count % 3 == 0){
return;
}
console.log(val1);
})
2 1
0 1
0 1 3 4
2 1 5 9
解析:在forEach中使用 return false 或者 break无法跳出整个循环,并且使用break会直接报错
8.以下哪个表达式的值为true?
'1' === 1

isNaN(1/0)0/0才是true

1 in [1] //是找在【1】里是否有index为1的值,显然,这个数组只有index=0的值,所以false

1 && 2 > 1 优先级先2>1所以true,1&&true也是true

9.下列window方法中,可以显示对话框的一项是()
confirm()

alert()

prompt()

open()

解析:confirm是显示对话框,alert是弹窗,prompt是输入,open是打开新的页面。
10.
arr.sort((a,b)=>b-a);
console.log(arr);
//解析:B--A是降序
11.请问以下JS代码的输出是什么?
1
2
3
4
5
6
7
8
9
10
11
12
13
let A = function() {}// A={}
A.prototype.a = 1; //A.prototype={a=1}
let B = new A(); //B={}
A.prototype = { //这里重新定义了A.prototype={b:2,c:3}
b: 2,
c: 3
}
let C = new A(); // C={}
A.prototype.d = 4; // A.prototype={b:2,c:3,d:4}
console.log(B.a);
console.log(B.b); //所以它是undefined
console.log(C.c);
console.log(C.d)
1、2、3、4

1、undefined、3、4

1、undefined、undefined、undefined

undefined、2、3、4

12.执行以下程序,输出结果为()
var a = 100;
function a(){
var a = 200;
console.log(a);
}
a();
A.100
B.200
C.抛出异常
D.f a(){var a = 200; console.log(a); }
解析:函数提升在变量提升之前,所以函数声明有效,变成了这样:
function a() { var a = 200; console.log(a); } var a; a = 100; a();

所以可以看出,后来的a是一个变量,并不是一个函数,所以无法调用a(),所以运行不到log输出a。
13.当用户打开一个网页时,想一直停留在当前打开的页面,禁止页面前进和后退,以下正确的是()
window.history.forward(1); //防止后一个页面跳转

window.history.back(1); //以历史页面为基准后退一个页面==后退按钮

window.history.go(-1); //跳转到前一个页面 ,

window.history.forward(-1); //防止前一个页面跳转

如果是window.history.go(0),这样这个网页就会永远停留再这个页面,不能前进后退了。





【javascript|JavaScript理论题(一)】

    推荐阅读