前端笔试题(附答案)

2020-08-14 11:15:38 浏览数 (1)

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",也可以不引。

当然除了属性,也可以创建方法。

试验代码

代码语言:javascript复制
/* 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扩展用的.

1 关键字

break

case

catch

continue

default

delete

do

else

finally

for

function

if

in

instanceof

new

return

switch

this

throw

try

typeof

var

void

while

with

2 保留字

abstract

boolean

byte

char

class

const

debugger

double

enum

export

extends

fimal

float

goto

implements

import

int

interface

long

mative

package

private

protected

public

short

static

super

synchronized

throws

transient

volatile

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)

代码语言:javascript复制
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"); 

} 

} 

*/ 

二、不定项选择题

4、请选择对javascript理解有误的:(abcd)

A.JScript是javascript的简称

B.javascript是网景公司开发的一种Java脚本语言,其目的是为了简化Java的开发难度

C.FireFox和IE存在大量兼容性问题的主要原因在于他们对javascript的支持不同上

D.AJAX技术一定要使用javascript技术

5、foo对象有att属性,那么获取att属性的值,以下哪些做法是可以的:(ab)

A.foo.att

B.foo(“att”)

C.foo[“att”]

D.foo{“att”}

E.foo[“a” ”t” ”t”]

6、在不指定特殊属性的情况下,哪几种HTML标签可以手动输入文本:(abc)

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

全局函数与内置对象的属性或方法不是一个概念。全局函数它不属于任何一个内置对象。JavaScript 中包含以下 7 个全局函数,用于完成一些常用的功能:escape( )、eval( )、isFinite( )、isNaN( )、parseFloat( )、parseInt( )、unescape( )。

1、decodeURI() 参数:string

功能描述:对 encodeURI() 函数编码过的 URI 进行解码。

实例:

可把 http://www.cnblogs.com/My first/ 解码为 http://www.cnblogs.com/My first/

2、decodeURIComponent() 参数:string

功能描述:函数可对 encodeURIComponent() 函数编码的 URI 进行解码。

3、encodeURI() 参数:string

功能描述:可把字符串作为 URI 进行编码。

提示:如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。

4、encodeURIComponent()

功能描述:可把字符串作为 URI 组件进行编码。

请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。

因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。

5、escape() 参数:string

功能描述:可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。该方法不会对 ASCII 字母和数字进行编码,

也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。其他所有的字符都会被转义序列替换。

温馨提示:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。

6、unescape() 参数:string

功能描述:可对通过 escape() 编码的字符串进行解码。该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),

用 Unicode 字符 u00xx 和 uxxxx 替换这样的字符序列进行解码。

温馨提示:ECMAScript v3 已从标准中删除了 unescape() 函数,并反对使用它,因此应该用 decodeURI() 和 decodeURIComponent() 取而代之。

7、eval() 参数:string

功能描述:可计算某个字符串,并执行其中的的 JavaScript 代码。

实例:

document.write(eval("12 2")) 将输出 14

注意:参数必需是string类型的,否则该方法将不作任何改变地返回.

8、isFinite() 参数: number

功能描述:用于检查其参数是否是有穷大的。如果 number 是有限数字(或可转换为有限数字),

那么返回 true。否则,如果 number 是 NaN(非数字),或者是正、负无穷大的数,则返回 false。

实例:

isFinite(-125)和isFinite(1.2)返回true,

而isFinite('易水寒')和isFinite('2011-3-11')返回false.

9、isNaN() 参数:无限制

功能描述:函数用于检查其参数是否是非数字值。

实例:

isNaN(123) 和isNaN(0)返回false

isNaN("易水寒")和isNaN("100") 返回true.

注意:可以用 isNaN() 函数来检测算数错误,比如用 0 作除数的情况。

10、Number() 参数:无限制

功能描述:把对象的值转换为数字。

如果参数是 Date 对象,Number() 返回从 1970 年 1 月 1 日至今的毫秒数。

如果对象的值无法转换为数字,那么 Number() 函数返回 NaN。

实例:

代码语言:javascript复制
var test1= new Boolean(true); 
var test2= new Boolean(false); 
var test3= new Date(); 
var test4= new String("999"); 
var test5= new String("999 888"); 
document.write(Number(test1)); 输出 1 
document.write(Number(test2)); 输出 0 
document.write(Number(test3)); 输出 1256657776588 
document.write(Number(test4)); 输出 999 
document.write(Number(test5)); 输出 NaN

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.kk=”a.html”的作用都是把当前页面替换成a.html页面

D.定义了全局变量g;可以用window.g的方式来存取该变量

三、问答题:

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等。

四、程序题:

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

代码语言:javascript复制
<html> 

<head> 

<script> 

function foo() 

{ 

// 在此处添加代码 

var rg = document.getElementsByName("radioGroup"); 

for( var i = 0; i < rg.length; i   ) 

{ 

if( rg[i].checked ) 

{ 

alert("你选择了第"   (i 1)   "个单选框"); 

} 

} 

return false; 

} 

</script> 

</head> 

<body> 

<form name="form1" onsubmit="return foo();"> 

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

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

<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> 

2、填充注释部分的函数体,使得foo()函数调用弹出”成功”的对话框。代码应尽量简短。

代码语言:javascript复制
<html> 

<head> 

<script> 

function foo() 

{ 

var str = reverse('a,b,c,d,e,f,g'); 

alert(str); 

if (str == 'g,f,e,d,c,b,a') 

alert('成功'); 

else alert('失败'); 

} 

function reverse(str) 

{ 

// 在此处加入代码,完成字符串翻转功能 

var spl = str.split(','); 

var newstr=""; 

for(i=spl.length-1;i>=0;i--) 

{ 

newstr =spl[i] ','; 

} 

newstr=newstr.substring(0,newstr.length-1) 

return newstr; 

} 

</script> 

</head> 

<body> 

<input type="button" value="str" onclick="foo()" /> 

</body> 

</html> 

0 人点赞