本文整理了一套完整的JavaScript基础面试题,涵盖语法错误辨析、保留字列表、null与undefined的比较机制、原型链关系以及DOM元素的innerHTML等属性区别。内容涉及数组sort()方法的使用、HTML标签特性及Web标准化知识,旨在帮助开发者系统复习前端核心概念。
JavaScript语法与基础类型辨析
1、以下哪条语句会产生运行错误:(a)
A.var obj = ();//语法错误
B.var obj = [];//创建数组
C.var obj = {};//创建对象
D.var obj = //;
解析:var obj = new Array(); 是合法的数组创建方式;JavaScript中大括号 {} 用于创建对象。例如 var obj = { id:1, name:"jacky" }; alert(obj.name); 表示创建一个包含属性 id(值为1)和 name(值为jacky)的对象。属性名可以加引号如 "id"、"name",也可以不加。
除了属性,对象还可以包含方法。
试验代码
/* window.onload=function()
{
// var obj = ();
var obj1 = [];//object
var obj2 = {};//object
var obj3 = //;//undefine
alert(typeof(obj1));
alert(typeof(obj2));
alert(typeof(obj3));
}*/
function showName()
{
alert(this.name);
}
var obj = { id:1, name:"jacky", showName:showName };
obj.showName();
2、以下哪个单词不属于javascript保留字:(b)
A.with
B.parent
C.class
D.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.null instanceof Object(if(!(null instanceof Object))是真的)
B.null === undefined
C.null == undefined
D.NaN == NaN
(1) null 确实可理解为原始类型,不能当作 Object 理解!
null、int、float 等由关键字表示的类型,均不属于 Object。
虽然可以将 null 作为参数传递,但这只是特殊规定。
可以这样理解:
对象的引用代表一个内存值,null 是一个空引用,可理解为内存值为0;按此逻辑对代码
(2) function f1(){
}
1. alert(f1 instanceof Function);//true
2. alert(f1 instanceof Object);//true
3. alert(Function instanceof Object);//true
4. alert(Object instanceof Function);//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");
}
}
*/
二、不定项选择题
JavaScript核心概念与DOM操作
4、请选择对javascript理解有误的:(abcd)
A.JScript是javascript的简称
B.javascript是网景公司开发的一种Java脚本语言,其目的是为了简化Java的开发难度
C.FireFox和IE存在大量兼容性问题的主要原因在于他们对javascript的支持不同上
D.AJAX技术一定要使用javascript技术
5、foo对象有att属性,那么获取att属性的值,以下哪些做法是可以的:()
A.foo.att
B.foo(“att”)
C.foo[“att”]
D.foo{“att”}
E.foo[“a”+”t”+”t”]
6、在不指定特殊属性的情况下,哪几种HTML标签可以手动输入文本:(ace)
A.<TEXTAREA></TEXTAREA>
B.<INPUT type=”text”/>
C.<INPUT type=”hidden”/>
D.<DIV></DIV>
7、以下哪些是javascript的全局函数:(abc)
A.escape
B.parseFloat
C.eval
D.setTimeout
E.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的方式来存取该变量
三、问答题:
数组排序与Web标准化知识
1、谈谈javascript数组排序方法sort()的使用,重点介绍sort()参数的使用及其内部机制
sort的实现功能类似JAVA的比较器,数据排序从多维数组的第一维开始排序
可以自己定义排序方法,很不多的函数
2、简述DIV元素和SPAN元素的区别。
DIV有回车,SPAN没有
3、结合text这段结构,谈谈innerHTML outerHTML innerText之间的区别。
这个问题只要写一下看的很清楚
innerHTML对象里面的HTML,outerHTML包括对象和里面的
innerText对象里面的文本
4、说几条XHTML规范的内容(至少3条)
属性加引号,不能有不匹配的标签,加定义
5、对Web标准化(或网站重构)知道哪些相关的知识,简述几条你知道的Web标准?
网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。对应的网站标准也分三方面:结构化标准语言,主要包括XHTML和XML;表现标准语言主要包括CSS;行为标准主要包括对象模型(如W3C DOM)、ECMAScript等。
JavaScript程序编程题
四、程序题:
1、完成foo()函数的内容,要求能够弹出对话框提示当前选中的是第几个单选框。
<html> <head> </head> <body> </body> </html> [Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]
2、填充注释部分的函数体,使得foo()函数调用弹出”成功”的对话框。代码应尽量简短。
<html> <head> </head> <body> <input type="button" value="str" onclick="foo()" /> </body> </html> [Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]