JS部分总结

15、正则表达式构造函数var reg=new RegExp(“xxx”)与正则表达字面量var reg=//有什么不同?匹配邮箱的正则表达式?

当使用RegExp()构造函数的时候,不仅需要转义引号(即\”表示”),并且还需要双反斜杠(即\表示一个\)。使用正则表达字面量的效率更高。

邮箱的正则匹配:

var regMail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/;

16、看下面代码,给出输出结果。

for(var i=1;i<=3;i++){

  setTimeout(function(){

      console.log(i);    

  },0);  

};

 //4 4 4 4

原因:Javascript事件处理器在线程空闲之前不会运行。追问,如何让上述代码输出1 2 3?

for(var i=1;i<=3;i++){
   setTimeout((function(a){  //改成立即执行函数
       console.log(a);    
   })(i),0);  
};
1           //输出
2
3

16、写出一个function,清除字符串前后的空格。(兼容所有浏览器)

使用自带接口trim(),考虑兼容性:

if (!String.prototype.trim) { 

 String.prototype.trim = function() { 

 return this.replace(/^\s+/, "").replace(/\s+$/,"");

 } 

} 

 // test the function 

var str = " \t\n test string ".trim(); 

alert(str == "test string"); // alerts "true"

17、Javascript中,以下哪条语句一定会产生运算错误?(B)

A、 var _变量=NaN;B、var 0bj = [];C、var obj = //; D、var obj = {};

18、以下两个变量a和b,a+b的哪个结果是NaN? 答案( C )

A、var a=undefind; b=NaN

B、var a=‘123’; b=NaN

C、var a =undefined , b =NaN

D、var a=NaN , b=‘undefined’

19、var a=10; b=20; c=4; ++b+c+a++ 以下哪个结果是正确的?答案( B )

A、 34 B、35 C、36 D、37

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

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

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

form1.elements.value=”";}

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

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

forms[0].elements.value=”";

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

form.elements.value=”";

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

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

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

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

}

}

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

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

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

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

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

22、以下哪条语句会产生运行错误:(A)

A.var obj = ();

B.var obj = [];

C.var obj = {};

D.var obj = //;

23、以下哪个单词不属于javascript保留字:(B)

A.with

B.parent

C.class

D.void

24、请选择结果为真的表达式:(C)

A.null instanceof Object

B.null === undefined

C.null == undefined

D.NaN == NaN

25、分析代码,得出正确的结果。

var a=10, b=20 , c=30;

	++a;

	a++;

	e=++a+(++b)+(c++)+a++;

	alert(e);

弹出提示对话框:77

26、写出函数 DateDemo的返回结果,系统时间假定为今天

function DateDemo(){

 var d, s="今天日期是:";

 d = new Date();

s += d.getMonth() + "/";

s += d.getDate() + "/";

s += d.getYear();

return s;}

结果:今天日期是:7/17/2010

27、写出程序运行的结果?

for(i=0, j=0; i<10, j<6; i++, j++){

k = i + j;}

结果:10


28、阅读以下代码,请分析出结果:

var arr = new Array(1 ,3 ,5);

	arr[4]='z';

	arr2 = arr.reverse();

	arr3 = arr.concat(arr2);

	alert(arr3);

弹出提示对话框:z,,5,3,1,z,,5,3,1

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

<html>

<head> 

<script type=”text/javascript” > 

function closeWin(){ 

//在此处添加代码if(confirm(“确定要退出吗?”)){ 

window.close(); 

}

}

</script> 

</head> 

<body> 

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

</body> 

</html> 

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

<html>

<head>

<metahttp-equiv=”Content-Type” content=”text/html;charset=utf-8″ />

</head>

<body>

<script type=”text/javascript” >

function foo() {

//在此处添加代码

var rdo =document.form1.radioGroup;

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

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>

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

显示

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

26、列举浏览器对象模型 BOM 里常用的至少 4 个对象,并列举 window 对象的常

用方法至少 5 个

对象:Window document location screen history navigator方法:Alert()

confirm()

prompt()

open()

close()

28、简述列举文档对象模型 DOM 里 document 的常用的查找访问节点的方法并做

简单说明

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

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

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

29、希望获取到页面中所有的 checkbox 怎么做?(不使用第三方框架)

var  domList = document.getElementsByTagName(‘input’) 

var  checkBoxList = []; 

var  len = domList.length;      //缓存到局部变量 

while (len--) {     //使用 while 的效率会比 for 循环更高 

        if (domList[len].type == ‘checkbox’) { 

              checkBoxList.push(domList[len]); 

       } 

} 

30、iframe 的优缺点?

优点:

  1. 解决加载缓慢的第三方内容如图标和广告等的加载问题

  2. Security sandbox

  3. 并行加载脚本

缺点:

  1. iframe 会阻塞主页面的 Onload 事件

  2. 即时内容为空,加载也需要时间

  3. 没有语意

31、DOM 操作——怎样添加、移除、移动、复制、创建和查找节点。

1. 创建新节点 
createDocumentFragment() // 创建一个 DOM 片段 createElement() // 创建一个具体的元素 
createTextNode() // 创建一个文本节点 
2. 添加、移除、替换、插入 
appendChild() 
removeChild() 
replaceChild() 
insertBefore() // 在已有的子节点前插入一个新的子节点 
3. 查找 
getElementsByTagName() // 通过标签名称 getElementsByName() // 通过元素的 Name 属性的值(IE 容错能力较强,会得到一个数组, 其中包括 id 等于 name 值的) getElementById() // 通过元素 Id,唯一性

32、documen.write 和 innerHTML 的区别?

document.write 只能重绘整个页面

innerHTML 可以重绘页面的一部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值