经典的 Web 前端或者 JavaScript 面试笔试题有哪些?

JavaScript07

经典的 Web 前端或者 JavaScript 面试笔试题有哪些?,第1张

一、不定项选择题 (每题3分,共30分)

1. 声明一个对象,给它加上name属性和show方法显示其name值,以下代码中正确的是( D )

A. var obj = [name:"zhangsan",show:function(){alert(name)}]

B. var obj = {name:”zhangsan”,show:”alert(this.name)”}

C. var obj = {name:”zhangsan”,show:function(){alert(name)}}

D. var obj = {name:”zhangsan”,show:function(){alert(this.name)}}

2. 以下关于Array数组对象的说法不正确的是( CD )

A. 对数组里数据的排序可以用sort函数,如果排序效果非预期,可以给sort函数加一个排序函数的参数

B. reverse用于对数组数据的倒序排列

C. 向数组的最后位置加一个新元素,可以用pop方法

D. unshift方法用于向数组删除第一个元素

3. 要将页面的状态栏中显示“已经选中该文本框”,下列JavaScript语句正确的是( A )

A. window.status=”已经选中该文本框”

B. document.status=”已经选中该文本框”

C. window.screen=”已经选中该文本框”

D. document.screen=”已经选中该文本框”

4. 点击页面的按钮,使之打开一个新窗口,加载一个网页,以下JavaScript代码中可行的是( AD )

A. <input type=”button” value=”new”

onclick=”open(‘new.html’, ‘_blank’)”/>

B. <input type=”button” value=”new”

onclick=”window.location=’new.html’”/>

C. <input type=”button” value=”new”

onclick=”location.assign(‘new.html’)”/>

D. <form target=”_blank”action=”new.html”>

<inputtype=”submit” value=”new”/>

</form>

5. 使用JavaScript向网页中输出<h1>hello</h1>,以下代码中可行的是( BD )

A. <scripttype=”text/javascript”>

document.write(<h1>hello</h1>)

</script>

B. <scripttype=”text/javascript”>

document.write(“<h1>hello</h1>”)

</script>

C. <scripttype=”text/javascript”>

<h1>hello</h1>

</script>

D. <h1>

<scripttype=”text/javascript”>

document.write(“hello”)

</script>

</h1>

6. 分析下面的代码:

<html>

<head>

<script type=”text/javascript”>

function writeIt (value) { document.myfm.first_text.value=value}

</script>

</head>

<body bgcolor=”#ffffff”>

<form name=”myfm”>

<input type=”text” name=”first_text”>

<input type=”text” name=”second_text”>

</form>

</body>

</html>

以下说法中正确的是( CD )

A. 在页面的第二个文本框中输入内容后,当鼠标离开第二个文本框时,第一个文本框的内容不变

B. 在页面的第一个文本框中输入内容后,当鼠标离开第一个文本框时,将在第二个文本框中复制第一个文本框的内容

C. 在页面的第二个文本框中输入内容后,当鼠标离开第二个文本框时,将在第一个文本框中复制第二个文本框的内容

D. 在页面的第一个文本框中输入内容后,当鼠标离开第一个文本框时,第二个文本框的内容不变

7. 下面的JavaScript语句中,( D )实现检索当前页面中的表单元素中的所有文本框,并将它们全部清空

A. for(vari=0i<form1.elements.lengthi++) {

if(form1.elements.type==”text”)

form1.elements.value=”"}

B. for(vari=0i<document.forms.lengthi++) {

if(forms[0].elements.type==”text”)

forms[0].elements.value=”"

}

C. if(document.form.elements.type==”text”)

form.elements.value=”"

D. for(vari=0i<document.forms.lengthi++){

for(var j=0j<document.forms.elements.lengthj++){

if(document.forms.elements[j].type==”text”)

document.forms.elements[j].value=”"

}

}

8. 在表单(form1)中有一个文本框元素(fname),用于输入电话号码,格式如:010-82668155,要求前3位是010,紧接一个“-”,后面是8位数字。要求在提交表单时,根据上述条件验证该文本框中输入内容的有效性,下列语句中,( A )能正确实现以上功能

A. var str= form1.fname.value

if(str.substr(0,4)!=”010-”|| str.substr(4).length!=8 ||

isNaN(parseFloat(str.substr(4))))

alert(“无效的电话号码!”)

B. var str= form1.fname.value

if(str.substr(0,4)!=”010-” &&str.substr(4).length!=8 &&

isNaN(parseFloat(str.substr(4))))

alert(“无效的电话号码!”)

C. var str= form1.fname.value

if(str.substr(0,3)!=”010-”|| str.substr(3).length!=8 ||

isNaN(parseFloat(str.substr(3))))

alert(“无效的电话号码!”)

D. var str= form1.fname.value

if(str.substr(0,4)!=”010-”&&str.substr(4).length!=8 &&

!isNaN(parseFloat(str.substr(4))))

alert(“无效的电话号码!”)

9. 关于正则表达式声明6位数字的邮编,以下代码正确的是( C )

A. var reg = /\d6/

B. var reg = \d{6}\

C. var reg = /\d{6}/

D. var reg = new RegExp(“\d{6}”)

10. 关于JavaScript里的xml处理,以下说明正确的是( BCD )

A. Xml是种可扩展标记语言,格式更规范,是作为未来html的替代

B. Xml一般用于传输和存储数据,是对html的补充,两者的目的不同

C. 在JavaScript里解析和处理xml数据时,因为浏览器的不同,其做法也不同

D. 在IE浏览器里处理xml,首先需要创建ActiveXObject对象

二、问答题

1. 列举浏览器对象模型BOM里常用的至少4个对象,并列举window对象的常用方法至少5个 (10分)

对象:Window document location screen history navigator

方法:Alert() confirm() prompt() open() close()

2. 简述列举文档对象模型DOM里document的常用的查找访问节点的方法并做简单说明 (10分)

Document.getElementById 根据元素id查找元素

Document.getElementByName 根据元素name查找元素

Document.getElementTagName 根据指定的元素名查找元素

三、程序题

1、补充按钮事件的函数,确认用户是否退出当前页面,确认之后关闭窗口; (10分)

<html>

<head>

<script type=”text/javascript” >

function closeWin(){

//在此处添加代码

if(confirm(“确定要退出吗?”)){

window.close()

}

}

</script>

</head>

<body>

<input type=”button”value=”关闭窗口”onclick=”closeWin()”/>

</body>

</html>

2、写出简单描述html标签(不带属性的开始标签和结束标签)的正则表达式,并将以下字符串中的html标签去除掉(15分)

var str = “<div>这里是div<p>里面的段落</p></div>”

//

<scripttype=”text/javascript”>

varreg = /<\/?\w+\/?>/gi

varstr = “<div>这里是div<p>里面的段落</p></div>”

alert(str.replace(reg,”"))

</script>

3、完成foo()函数的内容,要求能够弹出对话框提示当前选中的是第几个单选框。(10分)

<html>

<head>

<metahttp-equiv=”Content-Type” content=”text/htmlcharset=utf-8″ />

</head>

<body>

<script type=”text/javascript” >

function foo() {

//在此处添加代码

var rdo =document.form1.radioGroup

for(var i =0 i<rdo.lengthi++){

if(rdo.checked){

alert(“您选择的是第”+(i+1)+”个单选框”)

}

}

}

</script>

<body>

<form name=”form1″ >

<input type=”radio” name=”radioGroup”/>

<input type=”radio” name=”radioGroup”/>

<input type=”radio” name=”radioGroup”/>

<input type=”radio” name=”radioGroup”/>

<input type=”submit”/>

</form>

</body>

</html>

4、完成函数showImg(),要求能够动态根据下拉列表的选项变化,更新图片的显示 (15分)

<body>

<script type=”text/javascript” >

function showImg (oSel) {

//在此处添加代码

var str = oSel.value

document.getElementById(“pic”).src= str+”.jpg”

}

</script>

<img id=”pic”src=”img1.jpg”width=”200″ height=”200″ />

<br />

<select id=”sel”>

<option value=”img1“>城市生活</option>

<option value=”img2“>都市早报</option>

<option value=”img3“>青山绿水</option>

</select></body>

JavaScript面试题:字符串处理

在应聘前端程序员时,在笔试部分经常会考到字符串处理的问题。这些题有一个特点,站在考官的角度去考虑,它考的不是你会不会,而是你能不能在不借用XX手册或者XX指南再或者百度谷歌的情况下,用比较简洁的方式写出答案来。就具体的字符串处理问题,郑州尚学堂给大家分享一下。

1、字符串转换

字符串转换是最基础的要求和工作,你可以将任何类型的数据都转换为字符串,你可以用下面三种方法的任何一种:

var num= 19// 19

var myStr = num.toString()// "19"

你同样可以这么做:

var num= 19// 19

var myStr = String(num)// "19"

或者,再简单点儿:

var num= 19// 19

var myStr = "" +num// "19"

2、字符串分割

字符串分割,即将一个字符串分割为多个字符串,JavaScript中给我们提供了一个非常方便的函数,如:

var myStr = "I,Love,You,Do,you,love,me"

var substrArray = myStr .split(",")// ["I", "Love", "You", "Do", "you", "love", "me"]

var arrayLimited = myStr .split(",", 3)// ["I", "Love", "You"]

split()的第二个参数,表示返回的字符串数组的最大长度。

3、获取字符串长度

字符串长度是在开发中经常要用到的,非常简单如下:

var myStr = "I,Love,You,Do,you,love,me"

var myStrLength = myStr.length//25

4、查询子字符串

很多人都会忘记这几个JavaScript的自带的方法,或者忘记它们的具体用法,从而导致在做题的时候不得不嵌套for循环来做。

第一个函数:indexOf(),它从字符串的开头开始查找,找到返回对应坐标,找不到返回-1,如下:

var myStr = "I,Love,you,Do,you,love,me"

var index = myStr.indexOf("you")// 7 ,基于0开始,找不到返回-1

第二个函数:lastIndexOf(),它从字符串的末尾开始查找,找到返回对应坐标,找不到返回-1,如下:

var myStr = "I,Love,you,Do,you,love,me"

var index = myStr.lastIndexOf("you")// 14

以上两个函数同样接收第二个可选的参数,表示开始查找的位置。

5、字符串替换

单单查到字符串应该还不会停止,一般题目都还经常会遇到让你查到并替换为你自己的字符串,例如:

var myStr = "I,love,you,Do,you,love,me"

var replacedStr = myStr.replace("love","hate")//"I,hate,you,Do,you,love,me"

默认只替换第一次查找到的,想要全局替换,需要置上正则全局标识,如:

var myStr = "I,love,you,Do,you,love,me"

var replacedStr = myStr.replace(/love/g,"hate")//"I,hate,you,Do,you,hate,me"

6、查找给定位置的字符或其字符编码值

想要查找给定位置的字符,你可以使用如下函数:

var myStr = "I,love,you,Do,you,love,me"

var theChar = myStr.charAt(8)// "o",同样从0开始

同样,它的一个兄弟函数就是查找对应位置的字符编码值,如:

var myStr = "I,love,you,Do,you,love,me"

var theChar = myStr.charCodeAt(8)//111

7、字符串连接

字符串连接操作可以简单到用一个加法运算符搞定,如:

var str1 = "I,love,you!"

var str2 = "Do,you,love,me?"

var str = str1 + str2 + "Yes!"//"I,love,you!Do,you,love,me?Yes!"

同样,JavaScript也自带了相关的函数,如:

var str1 = "I,love,you!"

var str2 = "Do,you,love,me?"

var str = str1.concat(str2)//"I,love,you!Do,you,love,me?"

其中concat()函数可以有多个参数,传递多个字符串,拼接多个字符串。

8、字符串切割和提取

有三种可以从字符串中抽取和切割的方法,如:

第一种,使用slice():

var myStr = "I,love,you,Do,you,love,me"

var subStr = myStr.slice(1,5)//",lov"

第二种,使用substring():

var myStr = "I,love,you,Do,you,love,me"

var subStr = myStr.substring(1,5)//",lov"

第三种,使用substr():

var myStr = "I,love,you,Do,you,love,me"

var subStr = myStr.substr(1,5)//",love"

与第一种和第二种不同的是,substr()第二个参数代表截取的字符串最大长度,如上结果所示。

9、字符串大小写转换

常用的转换为大写或者小写字符串函数,如下:

var myStr = "I,love,you,Do,you,love,me"

var lowCaseStr = myStr.toLowerCase()//"i,love,you,do,you,love,me"

var upCaseStr = myStr.toUpperCase()//"I,LOVE,YOU,DO,YOU,LOVE,ME"

10、字符串匹配

字符串匹配可能需要你对正则表达式有一定的了解,先来看看match()函数:

var myStr = "I,love,you,Do,you,love,me"

var pattern = /love/

var result = myStr.match(pattern)//["love"]

console.log(result .index)//2

console.log(result.input )//I,love,you,Do,you,love,me

如你所见,match()函数在字符串上调用,并且接受一个正则的参数。来看看第二个例子,使用exec()函数:

var myStr = "I,love,you,Do,you,love,me"

var pattern = /love/