javascript基本面试题.docx
- 文档编号:10909380
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:21
- 大小:26.74KB
javascript基本面试题.docx
《javascript基本面试题.docx》由会员分享,可在线阅读,更多相关《javascript基本面试题.docx(21页珍藏版)》请在冰豆网上搜索。
javascript基本面试题
一、单选题
1、以下哪条语句会产生运行错误:
(a)
A.varobj=();//语法错误B.varobj=[];//创建数组
C.varobj={};//创建对象D.varobj=//;
原因:
varobj=newArray();是对的;JavaScript中大括号表示创建对象。
varobj={id:
1,name:
"jacky"};alert(obj.name);上例表示创建一个具有属性id(值为1)、属性name(值为jacky)的对象。
属性名称可以用引号引起来成"id"、"name",也可以不引。
当然除了属性,也可以创建方法。
试验代码
/*window.onload=function()
{//varobj=();
varobj1=[];//object
varobj2={};//object
varobj3=//;//undefine
alert(typeof(obj1));
alert(typeof(obj2));
alert(typeof(obj3));
}*/
functionshowName()
{alert(this.name);}
varobj={id:
1,name:
"jacky",showName:
showName};
obj.showName();
2、以下哪个单词不属于javascript保留字:
(b)
A.withB.parentC.classD.void
以下的保留字不可以用作变量,函数名,对象名等,其中有的保留字是为以后JAVASCRIPT扩展用的.
abstract
boolean
break
byte
case
catch
char
class
const
continue
default
do
double
else
extends
false
final
finally
float
for
function
goto
if
implements
import
in
instanceof
int
interface
long
native
new
null
package
private
protected
public
return
short
static
super
switch
synchronized
this
throw
throws
transient
true
try
var
void
while
with
3、请选择结果为真的表达式:
(c)
A.nullinstanceofObject(if(!
(nullinstanceofObject))是真的)
B.null===undefinedC.null==undefinedD.NaN==NaN
(1)null确实可以理解为原始类型,不能当Object理解!
null,int,float.....等这些用关键字表示的类型,都不属于Object.
至于可以把null作为参数,只是特殊规定而已.
可以这么理解:
对象的引用代表的是一个内存的值,null是一个空引用,可以理解为内存的值为0;按这个意思对代码
(2)functionf1(){}
1.alert(f1instanceofFunction);//true
2.alert(f1instanceofObject);//true
3.alert(FunctioninstanceofObject);//true
4.alert(ObjectinstanceofFunction);//true
Function是Object的实例,Object又是Function的实例
Function是函数的构造函数,而Object也是函数,Function自身也是函数
Object.prototype是一切原型链的顶点,instanceof会查找整个原型链
alert(Function);
alert(Function.prototype);
alert(Function.__proto__);
alert(Object);
alert(Object.prototype);
alert(Object.__proto__);
alert((function(){}).prototype);
alert((function(){}).__proto__);
alert((function(){}).__proto__.prototype);
alert((function(){}).prototype.__proto__);
alert(Array.__proto__);
alert((123).__proto__);
alert((Number).__proto__);
alert(("test").__proto__);
alert((String).__proto__);
alert((true).__proto__);
alert((Boolean).__proto__);
/*window.onload=function()
{
if(NaN==NaN)
{
alert("ddd");
}
}
*/
二、不定项选择题
4、请选择对javascript理解有误的:
(abcd)
A.JScript是javascript的简称
B.javascript是网景公司开发的一种Java脚本语言,其目的是为了简化Java的开发难度
C.FireFox和IE存在大量兼容性问题的主要原因在于他们对javascript的支持不同上
D.AJAX技术一定要使用javascript技术
5、foo对象有att属性,那么获取att属性的值,以下哪些做法是可以的:
(ACE)
A.foo.attB.foo(“att”)C.foo[“att”]D.foo{“att”}E.foo[“a”+”t”+”t”]
6、在不指定特殊属性的情况下,哪几种HTML标签可以手动输入文本:
(ace)
A.B.
C.
7、以下哪些是javascript的全局函数:
(abc)
A.escapeB.parseFloatC.evalD.setTimeoutE.alert
8、关于IFrame表述正确的有:
(abcd)
A.通过IFrame,网页可以嵌入其他网页内容,并可以动态更改
B.在相同域名下,内嵌的IFrame可以获取外层网页的对象
C.在相同域名下,外层网页脚本可以获取IFrame网页内的对象
D.可以通过脚本调整IFrame的大小
9、关于表格表述正确的有:
(abcde)
A.表格中可以包含TBODY元素B.表格中可以包含CAPTION元素
C.表格中可以包含多个TBODY元素D.表格中可以包含COLGROUP元素
E.表格中可以包含COL元素
10、关于IE的window对象表述正确的有:
(acd)
A.window.opener属性本身就是指向window对象
B.window.reload()方法可以用来刷新当前页面
C.window.location=”a.html”和window.location.href=”a.html”的作用都是把当前页面替换成a.html页面
D.定义了全局变量g;可以用window.g的方式来存取该变量
三、问答题:
1、谈谈javascript数组排序方法sort()的使用,重点介绍sort()参数的使用及其内部机制
sort的实现的功能类似JAVA的比较器,数据排序从多维数组的第一维开始排序
可以自己定义排序方法,很不多的函数
2、简述DIV元素和SPAN元素的区别。
DIV有回车,SPAN没有
3、结合text这段结构,谈谈innerHTMLouterHTMLinnerText之间的区别。
innerHTML对象里面的HTML,outerHTML包括对象和里面的
innerText对象里面的文本
4、说几条XHTML规范的内容(至少3条)
属性加引号,不能有不匹配的标签,加定义
5、对Web标准化(或网站重构)知道哪些相关的知识,简述几条你知道的Web标准?
网页主要由三部分组成:
结构(Structure)、表现(Presentation)和行为(Behavior)。
对应的网站标准也分三方面:
结构化标准语言,主要包括XHTML和XML;表现标准语言主要包括CSS;行为标准主要包括对象模型(如W3CDOM)、ECMAScript等。
四、程序题:
1、完成foo()函数的内容,要求能够弹出对话框提示当前选中的是第几个单选框。
functionfoo()
{
//在此处添加代码
varrg=document.getElementsByName("radioGroup");
for(vari=0;i { if(rg[i].checked) { alert("你选择了第"+(i+1)+"个单选框"); } } returnfalse; }
2、填充注释部分的函数体,使得foo()函数调用弹出”成功”的对话框。
代码应尽量简短。
functionfoo()
{
varstr=reverse('a,b,c,d,e,f,g');
alert(str);
if(str=='g,f,e,d,c,b,a')
alert('成功');
elsealert('失败');
}
functionreverse(str)
{
//在此处加入代码,完成字符串翻转功能
varspl=str.split(',');
varnewstr="";
for(i=spl.length-1;i>=0;i--)
{
newstr+=spl[i]+',';
}
newstr=newstr.substring(0,newstr.length-1)
returnnewstr;
}
functionreverse(str){
//在此处加入代码,完成字符串翻转功能
returnstr.split(",").reverse().join(",");
}
1.求y和z的值是多少?
varx=1;
vary=0;
varz=0;
functionadd(n){n=n+1;}
y=add(x);
functionadd(n){n=n+3;}
z=add(x);
分析:
functionadd没有返回值,y和z都会是undefined,而且,将add函数改好:
functionadd(n){returnn=n+1;}和functionadd(n){returnn=n+3;}
y和z都会是4,因为后面定义的add会覆盖前面定义的add。
2:
javascript是面向对象的,怎么体现javascript的继承关系?
3:
javascript怎样选中一个checkbox,怎样设置它无效?
4:
在css中:
以下语句各代表什么意思?
td{width100%}//表HTML元素.td{width100%}//类元素
#td{width100%}//ID##td{width100%}
1、form中的input有哪些类型?
各是做什么处理使用的?
textradiocheckboxfilebuttonimagesubmitresethidden
submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了。
如果表单在点击提交按钮后需要用JS进行处理(包括输入验证)后再提交的话,通常都必须把submit改成button,即取消其自动提交的行为,否则,将会造成提交两次的效果,对于动态网页来说,也就是对数据库操作两次。
button具有name、value属性,能触发onclick事件
submit继承了buttonsubmit增加了触发表单onsubmit事件的功能、增加了执行表单的submit()方法的功能
INPUTtype=submit按回车提交表单
button提交的是innerTEXT
2、table标签中border,cellpaddingtd标签中colspan,rowspan分别起什么作用?
border边界cellpadding边距
cellpadding,是补白,是指单元格内文字与边框的距离
cellspacing,两个单元格之间的距离
colspan跨列数
rowspan跨行数
3、form中的input可以设置readonly和disable,请问这两项属性有什么区别?
readonly不可编辑,但可以选择和复制
disable不能编辑复制选择
4、JS中的三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)的命令是什么?
alertconfirmprompt
5.题目:
当点击按钮时,如何实现两个td的值互换?
用javascript实现此功能。
分析:
这个题主要是考变量传值。
其次是考如何取元素的值。
第一种代码如下:
1
DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:
//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 //www.w3.org/1999/xhtml"> 3
4
5
6
7//
[CDATA[
8functionsubmitbtn(){
9
10vartText1=document.getElementById('txt1');
11varSubmitBtn1=document.getElementById('submitBtn1');
12vartText2=document.getElementById('txt2');
13varSubmitBtn2=document.getElementById('submitBtn2');
14SubmitBtn1.onclick=function(){
15vartemp=tText1.value;
16tText1.value=tText2.value;
17tText2.value=temp;
18};
19SubmitBtn2.onclick=function(){
20vartemp=tText2.value;
21tText2.value=tText1.value;
22tText1.value=temp;
23};
24}
25window.onload=function(){
26submitbtn();
27}
28//]]>
29
30
31
32
33
34
35
36
37
38