设置a 0 则执行x i if=2;y=3;i=x>y?x:y;i的值为什么?

选择题1、(单选题)需要在 html 页面上引用脚本文件 myJs.js,下列语句中,正确的 是(D)。A.&script language=&javascript& href=&myJs.js& type=&text/javascript& /& B.&script language=&javascript& src=&myJs.js& type=&text/javascript& /& C.&script language=&javascript& href=&myJs.js& type=&text/javascript&&&/script& D.&script language=&javascript& src=&myJs.js& type=&text/javascript&&&/script&2、(单选题)现需要使用 Javascript 在页面上打印出”Hello world”,下列选项 中,正确的是(A) A. document.write(“Hello World”); B.console.write(“Hello World”); C.document.write(Hello World); D.console.log(Hello World);3、(单选题)查看如下代码: var userN console.log(userName); 上述代码运行后,将在控制台显示(A) A.Undefined B.Null C.程序错误 D.空字符串 4、(单选题)查看如下代码: var x = 11; var y = “number”; var m = x + 上述代码执行后,变量 m 的值是(C) NaN B.11.0 C.11number D.undefined5、(单选题)查看如下代码: var a = 3; var b = 2; var c = (a+2)/b; document.write (c); 上述代码的输出结果是(B) A.2.0 B.2.5 C.16.0 D.(3+2)/26、(单选题)查看如下代码: function add(){ var sum = 1 + 2; console.log( sum ); } console.log(sum) ; 上述代码的输出结果是(C) A.输出两个 3 B.输出一个 3 C.程序错误 D.输出一个 undefined 7、(单选题)查看如下代码: var num = 2; switch(num) { case 1: console.log(&1&); case 2: console.log(&2&); default: console.log(&default&); } 上述代码的输出结果是(A) A.先输出 2,再输出 default B.输出 2 C.程序错误 D.先输出 1,再输出 2,再输出 default8、(单选题)查看如下代码: for(var i=1; i&=6; i++) { if( i % 3 == 0) { } console.log( i); } 上述代码的输出结果是(A) A.分别输出 1、2、4、5 B.分别输出 3、6 C.分别输出 1、2、3、4、5、6 D.分别输出 1、29、(单选题)查看如下代码: var arr1 = [10, 20, 30, 40]; var arr2 = arr1.slice(1, 3); slice(开始元素,结束元素(不包含)) console.log(arr1); console.log(arr2); 上述代码的输出结果是(D) A.两次都输出[20,30,40] B.先输出[10,20,30,40],再输出[20,30,40] C.两次都输出[20,30] D.先输出[10,20,30,40],再输出[20,30]10、(单选题)查看如下代码: var msg = 'abcdef'; console.log( msg.substring(2, 4) ); substring(开始, 结束 (不包含) ) 上述代码的输出结果是(B) A.cde B.cd C.bcde D.bc11、(单选题)查看如下代码: var max = 100; var i = Math.floor( Math.random()*max ); 上述代码运行后,对于变量 i 的值,下列说法中,正确的是()。 A.1到 100 之间的整数,包含 1 和 100B.0 到 100 之间的整数,包含 0,不包含 100 C.1 到 100 之间的整数,包含 1 ,不包含 100 D.0 到 100 之间的整数,包含 0,包含 10012、(单选题)查看如下代码: var obj = { &name&: &Tom&, &salary& : 3500 };console.log( obj.name ); console.log( obj[&salary&] ); 上述代码的输出结果是(A) A.先输出 Tom,再输出 3500 B.先输出 Tom,再输出 undefined C.程序错误 D.先输出 Tom,再输出 013、(单选题)查看如下代码: var arr = new Array(); arr[ 0 ] = [ 101, 102, 103 ]; arr[ 1 ] = [ 201 ]; arr[ 2 ] = [ 301, 302] console.log( arr[1][1] ); 上述代码的输出结果是(D) A.201.0 B.程序错误 C.102.0 D.undefined14、(单选题)查看如下代码: var i = 0 ; while ( i & 100 ) { console.log( i); if( i == 5 ){
} i ++ ; } 上述代码的输出结果是(B) A.分别输出 1、2、3、4、5 B.分别输出 0、1、2、3、4、5 C.分别输出 0、1、2、4、5 D.分别输出 0、1、2、3、415、(单选题)关于 DOM 节点信息,下列描述中,错误的是()。A.nodeName 表示节点的名称,为节点的只读属性 B.nodeType 表示节点类型,返回 Number 类型数据 C.nodeValue 表示节点的值,返回 String 类型数据 D.可以使用 nodeValue 属性获取元素节点的值16、(单选题)有 html 代码如下: &p id=&msg&&&span&消息&/span&&/p& 还有 JavaScript 代 码 如 下 : var p = document.getElementById('msg'); console.log( p.innerHTML ); 上述代码的输出结果是(A)。console.log( p.textContent );A.先输出“&span&消息&/span&”,再输出“消息” B.输出两次“&span&消息&/span&” C.先输出“消息”,再输出“&span&消息&/span&” D.输出两次“消息” 17.(单选题)有 html 代码如下: &p id=&msg&&&span&消息&/span&&span&通知&/span&&/p& 还 有 JavaScript 代码如下: var p = document.getElementById('msg'); console.log( p.nodeValue ); console.log( p.textContent ); 上述代码的输出结果是(C)。A.先输出“消息通知”,再输出“null” B.输出两次“消息通知” C.先输出“null”,再输出“消息通知” D.以上都不对18.(单选题)有 html 代码如下: &div id=&news&& &p&新闻标题 1&/p& &p class=&current&&新闻 标 题 2&/p& &p& 新 闻 标 题 3&/p& &/div& 还 有 document.getElementById('news'); var ps = JavaScript 代 码 如 下 : var div =div.getElementsByClassName('current');console.log( ps[0].innerHTML ); 上述代码的输出结果是(A)。 A.新闻标题 1 B.新闻标题 2 C.null D.程序错误19.(单选题)有 html 代码如下: &div id=&news&& &p&新闻标题 1&/p& &p&新闻标题 2&/p& &p& 新闻标题 3&/p& &/div& 还有 JavaScript 代码如下:var div = document.getElementById('news'); console.log(div.firstChild.innerHTML); console.log(div.firstElementChild.innerHTML); 上述代码的 输出结果是(A)。 A.先输出“undefined”,再输出“新闻标题 1” B.输出两次“undefined” C.输出两次“新闻标题 1” D.先输出“新闻标题 1”,再输出“undefined” 20.( 单 选 题 ) 查 看 如 下 代 码 :var div = document.createElement('div'); var p =document.createElement(&p&); p.innerHTML = &联系我们&; var txt = document.createTextNode(' 版权声明'); div.appendChild(p); div.appendChild(txt); console.log(div.innerHTML); 上述代码的 输出结果是(A)。 A.&p&联系我们&/p&版权声明 B.&p&联系我们版权声明&/p& C.版权声明&p&联系我们&/p& D.程序错误21.( 单选题 ) 有 html 代码如下: &ul id=&menu&&&li& 首页 &/li&&li& 联系我们 &/li&&/ul& 还有 JavaScript 代 码 如 下 : document.createElement('li'); var ul = document.getElementById('menu'); var newLi = newLi.appendChild(document.createTextNode(' 新 闻 '));ul.insertBefore(newLi, ul.lastChild); console.log(ul.innerHTML); 上述代码的输出结果是(C)。 A.&li&新闻&/li&&li&首页&/li&&li&联系我们&/li& B.&li&首页&/li&&li&联系我们&/li&&li&新闻&/li& C.&li&首页&/li&&li&新闻&/li&&li&联系我们&/li& D.程序错误22.( 单选题 ) 有 html 代码如下: &ul id=&menu&&&li& 首页 &/li&&li& 联系我们 &/li&&/ul& 还有 JavaScript 代 码 如 下 : var ul = document.getElementById('menu'); var newLi =document.createElement('li'); newLi.innerHTML = & 招 聘 &; newLi.replaceChild( newLi, ul.lastChild ); console.log(ul.innerHTML); 上述代码的输出结果是(C)。 A.&li&首页&/li&&li&招聘&/li& B.&li&首页&/li&&li&联系我们&/li&&li&招聘&/li& C.&li&招聘&/li&&li&联系我们&/li& D.程序错误23.(单选题)下列不属于浏览器内置对象的是(D)。 A.navigator B.document C.window D.request24.(单选题)其 html 代码如下: &body onload=&initialClock();&& &span id=&mySpan&&&/span& &/body& 相应的 JavaScript 代码如下: function initialClock() { //&& 插入代码 &&; };function timerFunc() { var v = new Date(); document.getElementById(&mySpan&).innerHTML = v.toLocaleTimeString(); } 现需要在 span 元素中实现动态时钟的显示,”插入代码“处所需要 的代码是(B)。 A.window.setInterval(timerFunc,1000); B.window.setInterval(timerFunc(),1000); C.window.setTimeout(timerFunc,1000); D.window.setTimeout(timerFunc(),1000);25.(单选题)需要在原有浏览器窗口中打开地址为 http://www.bjsxt.com/ 的页面,且保留历 史访问记录。下列选项中,正确的是(D)。 A.location.href = &http://www.bjsxt.com&; B.window.open(&http://www.bjsxt.com&); C.location.replace(&http://www.bjsxt.com&); D.history.go(&http://www.bjsxt.com&); 26.(单选题)关于 event 对象,下列描述中,错误的是(D)。 A.任何事件触发后将会产生一个 event 对象 B.event 对象记录事件发生时的鼠标位置、键盘按键状态和触发对象等信息 C.event 对象的 cancelBubble 属性,用于设置是否取消事件冒泡 D.event 对象的 srcElement 属性,用于获取触发事件的节点对象 (Window象或 Element 对象的引用。) 对象、Document 对27.(单选题)有变量 obj 表示页面上的某个元素。现需要修改该元素的显示方式即将该元素 显示为行内元素。下列选项中,正确的是(A)。 A.obj.style.display = 'inline'; B.obj.style.display = 'none'; C.obj.style.show = 'inline'; D.obj.style.show = 'none';28.(单选题)HTML 页面上有一个超级链接, 要实现当鼠标移入该超级链接时, 超级链接的文 本背景色变为灰色。下列选项中,能实现此功能的是(D)。 A.&a href=&#& onmouseover=&this.style.background.color='gray';&&注册&/a& B.&a href=&#& onmouseout=&this.style.background-color='gray';&&注册&/a& C.&a href=&#& onmouseover=&this.style.backgroundColor=&&注册&/a& D.&a href=&#& onmouseover=&this.style.backgroundColor='gray';&&注册&/a&29.(单选题)如果不给 cookie 设置过期时间,那么 cookie 默认保存时间是(C)。 A.立刻过期 B.cookie 无法设置 C.在浏览器会话结束时过期 D.永不过期30.( 多 选 题 ) 有 html 代 码 如 下 : &select id=&datas& size=&3&& &option&aa&/option& &option&bb&/option& &option&cc&/option& &/select& 还有 JavaScript 代码如下: var list = document.getElementById('datas'); 现需要将 html 代码中的列表框,修改为下拉列表框。下 列选项中,正确的是(A B)。 A.list.removeAttribute(&size&); B.list.removeAttributeNode(list.attributes[1]); C.list.removeAttributeNode(&size&); D.list.removeAttribute(list.attributes[1]);31.(多选题)有 html 代码如下: &input type=&checkbox& name=&state& value=&1& /&未付款 &input type=&checkbox& name=&state& value=&2& /& 未 发 货 &input type=&checkbox&name=&state& value=&3& /&已发货 下列选项中, 能获取第二个多选框的 value 值的是 ( C D) 。 A.document.getElementsByTagName('state')[1].attributes[&value&].value B.document.getElementsByName('input')[1].attributes[&value&].value C.document.getElementsByTagName('input')[1].attributes[&value&].value D.document.getElementsByName('state')[1].attributes[&value&].value32.(多选题)有 html 代码如下: &input type=&text& id=&t1& /& 下列选项中,能向文本框中写 入文本的是(B D)。 A.document.getElementById(&t1&).setAttribute(&value&,&aa&); B.document.getElementById(&t1&).innerHTML = &bb&; C.document.getElementsByTagName(&input&)[0].setAttribute(&value&,&cc&); D.document.getElementsByTagName(&input&)[0].innerHTML = &dd&;33.(多选题)有 html 代码如下: &a id=&bdlink& href=&javascript:void(0);&&百度搜索&/a& 还有 JavaScript 代码如下: var a = document.getElementById(&bdlink&); 为了将该超级链接元素的 href 属性的值修改为“#”,下列选项中,正确的是(A C)。 A.a.attributes[&href&].value = &#&; B.a.attributes[&href&] = &#&; C.a.setAttribute(&href&,&#&); D.a.setAttributeNode(&href&,&#&); (ERROR)34.(多选题)有 html 代码如下: &a id=&bdlink& href=&javascript:void(0);&&百度搜索&/a& 还有 JavaScript 代码如下: var a = document.getElementById(&bdlink&); 为了获取该超级链接元素 的 href 属性的值,下列选项中,正确的是(A B C D)。 A.a.attributes[&href&].value B.a.getAttribute(&href&) C.a.attributes[1].value D.a.getAttributeNode(&href&).value35.(单选题)查看如下代码: var str = &1 & 2&; console.log(str); console.log(eval(str)); 执行后的 结果是(A)。 A.1 & 2 和 true B.true 和 true C.先输出 1 & 2,然后程序错误 D.以上均不对36(单选题)有下述 JS 代码: var i = 0; var sum = 0; do{ i++; if( i%2 === 0){ } if( i%5 === 0){ } sum += }while( i&10 ); console.log( 'sum=' + sum ); 其运行结果应该是下列哪项 (B)。 A.sum=0 B.sum=4 C.sum=Infinity D.死循环38.(单选题)有 html 代码如下: &body& &div id=&d1&&&span&bb&/span&&/div& &/body& 还有 JavaScript 代 码 如 下 : document.createElement(&p&); var obj = document.getElementById(&d1&); var newObj = newObj.innerHTML = &text&; obj.insertBefore(newObj,obj.firstChild); console.log(obj.innerHTML); 上述代码的输出结果是(B)。 A.&p&text&span&bb&/span&&/p& B.&p&text&/p&&span&bb&/span& C.&span&bb&/span&&p&text&/p& D.代码错误39.(单选题)下列选项中,能够在新的浏览器窗口或者标签页中打开目标页面的是(C)。 A.location.href = &https://www.baidu.com&; B.history.go(&https://www.baidu.com&); C.window.open(&https://www.baidu.com&);(新窗口打开) D.location.replace(&https://www.baidu.com&) (本窗口打开)40.(单选题)查看如下代码: var x = &10&; function f1( x ){ x = x+2; } console.log(x); x = f1(x); console.log(x); 执行后的结果是(A)。 A.10 和 102 B.10 和 10 C.undefined 和 102 D.10 和 1242.( 单 选 题 ) 查 看 如 下 代 码 : var arr1 = [10, 20]; arr1.push( 30,40 ); arr1.pop(); arr1.push([50,60]); arr1.pop(); console.log(arr1.toString()); 执行后的结果是(A)。Pop(删除 末端元素) A.10,20,30 B.10,20 C.10,20,30,50 D.1043.(单选题)有 html 代码如下: &p id=&msg&&通知: &span&消息&/span&&/p& 还有 JavaScript 代码如下: var p = document.getElementById('msg'); console.log( p.nodeValue ); 上述代码的输出结果是(B)。console.log( p.textContent );A.先输出“通知:”,再输出“通知:消息” B.先输出 null,再输出“通知:消息” C.先输出 null,再输出“消息” D.先输出“通知:”,再输出“&span&消息&/span&”44.(单选题)查看如下代码: var score = 75; var result = score &= 90 ? &aa& : (score&=80 ? &bb& : (score & 60 ? &cc& : &dd&) ); console.log(result); 上述代码的输出结果是(D)。 A.aa B.bb C.cc D.dd45.(单选题)查看如下代码: var x = 10; function f1( num ){ return num++; } var y = f1( x ); console.log(x); console.log(y); 执行后的结果是(B)。 A.10 和 11 B.10 和 10 C.11 和 10 D.11 和 1146.(单选题)有 html 代码如下: &div id=&d1&& &span&bb&/span& &/div& 还有 JavaScript 代码如下: var obj = document.getElementById(&d1&); console.log(obj.firstChild.nodeName); 上述代码的输 出结果是(C)。 A.span B.SPAN C.#text D.#TEXT48.(单选题)页面上有一个提交按钮,单击该提交按钮后,需要弹出确认对话框。如果单击 对话框上的“取消”按钮,则页面停留在当前页面;如果单击对话框上的“确定”按钮,则发生 表单提交。为实现此功能,以下代码中,正确的是()。 A.&form& &input type=&submit& value=&delete& onclick=&return confirm('真的要删除吗?');& /& &/form& B.&form& &input type=&submit& value=&delete& onclick=&confirm(' 真 的 要 删 除 吗 ? ');& /& &/form& C.&form& &input type=&button& value=&delete& onclick=&return confirm('真的要删除吗?');& /& &/form& D.&form& &input type=&button& value=&delete& onclick=&confirm(' 真 的 要 删 除 吗 ? ');& /& &/form&50.(单选题)查看如下代码: function func1(num){ if(num & 0) console.log(&负数&); else if(num === 0) console.log(&零&); else if(num & 0) console.log(&正数&); else console.log(&非数字&); } func1(&-1&); func1(&0&); 执行后的结果是(D)。 A.“非数字”和“非数字” B.“负数”和“零” C.“非数字”和“零” D.“负数”和“非数字”51.(单选题)有下述 JS 代码:var status = '党员'; switch( status ) { case '党员': console.log('您好! 党员!'); case '团员': console.log('您好!团员!'); default: console.log('您好!群众!'); } 其运 行结果是下列的哪一项(C)。 A.您好!党员! B.您好!党员! 您好!团员! C.您好!党员! 您好!团员! 您好!群众! D.执行错误52.( 单 选 题 ) 有 JavaScript 代 码 如 下 : var jsObj = 空 白 处 ; alert(jsObj.name + &:& + jsObj.score.math); 现需要实现,弹出结果为“mary:85”。下列选项中,能填入横线空白处的 正确代码是(A)。 A.{ 'name': ' mary', 'score': { 'en': 90, 'math': 85} } B.&{ 'name': ' mary', 'score': { 'en': 90, 'math': 85} }& C.{ 'name': ' mary', 'score.math': 85 } D.&{ 'name': ' mary', 'score.math': 85 }& (mary:85)53.(单选题)有下述 JS 代码: var x = 10; var y = 20; var z = x&y ? x++ : ++ console.log( 'x=' + x + '; y=' + y + '; z=' + z); 其运行结果是(B)。(注意区分实际值和返回值) A.x=11; y=21; z=11 B.x=11; y=20; z=10 C.x=11; y=21; z=10 D.x=11; y=20; z=1154.(单选题)查看如下代码: var a = &10&; var b = 10; console.log (a+1 == b + 1); 上述代码的输 出结果是(B)。(字符串与数字) A.true B.false C.程序错误 D.undefined55.(单选题): function f1( ){ x = 10; ++x; } f1(); console.log(x); 执行后的结果是 (B) A.10 B.11 C.Undefined D.程序错误56.( 单选题 ) 有 html 代码如下: &body& &p id=&p1&& 回复 &a&10&/a&&/p& &/body& 还有 JavaScript 代 码 如 下 : var p = document.getElementById('p1');console.log(p.firstChild.innerHTML); console.log(p.firstElementChild.innerHTML); 上述代码的输 出结果是(C)。 A.代码错误 B.两次都输出 10 C.先输出 undefined,再输出 10 D.先输出 “回复”,再输出 1057.( 单选题 ) 查看如下代码: function func1(arr) { for(var data in arr) { data++; } for(var i=0;i&arr.i++) { arr[i]++; } } var datas = [10,20]; func1(datas); console.log(datas.toString()); 执行后的结果是(B)。 A.10,20 B.11,21 C.12,22 D.13,2358.(单选题)在 HTML 文档中包含一个超链接, 要实现当鼠标移入该链接时, 超链接文本大小 变为 30px。下列选项中,正确的是(A)。 A.&a href=&#& onmouseover=&this.style.fontSize=’30px’&&注册&/a& B.&a href=&#& onmouseover =&this.style.font-size=’30px’&&注册&/a& C.&a href=&#& onmouseover=&this.style.fontsize=’30px’&&注册&/a& D.&a href=&#& onmouseover=&this.style.font.size=’30px’&&注册&/a&59.(单选题)下列有关 for(;;)循环和 for(in)循环的表述中,错误的是(D)。对于可变数组进行枚举操作时,你不能通过添加或删除对象这类操作来改变数组容器。如果你这么做了,枚举器会很困 惑,而你将得到未定义的结果。 A.for(;;)循环可以得到顺序、倒序、跳序的下标,故可以顺序、倒序、跳序遍历集合中的每 个元素; B.for(in)循环可以得到顺序、倒序、跳序的下标,故可以顺序、倒序、跳序遍历集合中的每 个元素; C.for(;;)循环可以修改集合中值; D.for(in)循环可以修改集合中值;60.(单选题)查看如下代码: function func1(n){ var arr = [1,1]; for(var i=0;i&n;i++){ arr[i+2] = arr[i] + arr[i+1]; } return arr[n-1]; } console.log(func1(7)); 上述代码运行后,输出结果是(C)。 A.undefined B.8 C.13 D.2161.(单选题)查看如下代码: var a = 20; var b = &2&; var c = (a+1)/b; document.write (c); 上述代 码的输出结果是(A)。 A.10.5 B.10 C.11 D.(20+1)/2 63.(单选题)有下述 JS 代码: var arr = [10, 20, 30]; function add( arrayObj ){ for(var i in arr){ arrayObj[i] ++; } console.log( arrayObj ); } add( arr ); console.log( arr ); 此段代码执行后的 结果是(D)。 A.[10,20,30] [10,20,30] B.[11,21,31] [10,20,30] C.[10,20,30] [11,21,31] D.[11,21,31] [11,21,31]64.(单选题)下列关于 JavaScript 中数组的描述中,错误的是(B )。 A.var arr = [3]; 创建了一个长度为 1 的数组,值为 3。 B.var arr = new Array(3); 创建了一个长度为 1 的数组,值为 3。(长为 3,值为空) C.var arr = [ [3] ]; 创建了一个长度为 1 的数组,值为一个长度为 1 的数组。 D.var arr = new Array( [3] ); 创建了一个长度为 1 的数组,值为一个长度为 1 的数组。65.( 单选题 ) 有下列代码: var x = 10; function f1( num ){ ++ } var y = f1( x ); console.log( 'x=' + x + '; y=' + y ); 执行后的结果是(A)。 A.x=10; y=undefined B.x=10; y=11 C.x=11; y=11 D.x=11; y=undefined 66.(单选题)假设有一个整数数组 numArray,下列哪个选项可以实现把其中的元素由小到大 排列(A B)。A A.numArray.sort(); B.numArray.sort( function(a,b){return a-b;} ); C.numArray.sort( (function(a,b){return a-b;})() ); D.numArray.sort( ).reverse( );67.(单选题)查看如下代码: var a = &205.1&; var b = 2; console.log(b + a); console.log(isNaN(b + a)); 上述代码的输出结果是(A)。 A.2205.1 和 false B.207.1 和 false C.2205.1 和 true D.207.1 和 true68.(单选题)有 html 代码如下: &body& &a&login&/a& &div id=&news&& &a&新闻标题 1&/a& &a class=&current&&新闻标题 2&/a& &a&新闻标题 3&/a& &/div& &/body& 还有 JavaScript 代码如下: var div = document.querySelector('#news'); var aNodes = div.querySelectorAll('a'); console.log(aNodes.length); var node = div.querySelector('a.current'); console.log(node.innerHTML); 上述代码的输出结果是(A)。 A.先输出 3,再输出“新闻标题 2” B.先输出 4,再输出“新闻标题 2” C.先输出 3,再输出 null D.先输出 4,再输出 null69.(单选题)有下述 JS 代码: function printArray( arr ){ for(var i in arr){ if( arr[i] instanceof Array ){ printArray( arr[i] ); }else{ document.write( arr[i] + ' ' ); } } } var data = [ 1, [20,21], [[301,302],[310,311]]]; printArray( data ); 上述代码的输出结果是(A)。 A.1 20 21 301 302 310 311 B.1 20 301 C.无限递归 D.代码错误70.(单选题)查看如下代码: function triangle(num) { var result = [[1], [1, 1]]; for (var i = 2; i & i++) { result.push([1]); for (var j = 1; j & j++) { result[i][j] = result[i - 1][j - 1] + result[i - 1][j]; } result[i][i] = 1; } } var arr = triangle(5); console.log(arr[4].toString()); 上述代码运 行后,输出结果是(B)。 A.1,3,3,1 B.1,4,6,4,1 C.1,5,10,10,5,1 D.以上都不对 71.(单选题)现需要实现每隔一秒钟弹出一个对话框,且此弹出过程持续 5 秒钟。下列选项 中,正确的是(B)。 A.var id = setInterval(alert(&Hello JavaScript&),1000); setTimeout(clearInterval(id),5*1000); B.setInterval(function(){alert(&Hello JavaScript&);},5*1000) C.setInterval(alert(&Hello JavaScript&),1000); setTimeout(clearInterval(id),5*1000); D.varid=setInterval(function(){alert(&HelloJavaScript&);},1000) setTimeout(function(){clearInterval(id);},5*1000) (无限弹框) JavaScript&);},1000) setTimeout(function(){alert(&Hello72.(单选题)html 页面上有一个 id 为 b1 的按钮,现需要使用 JavaScript 代码为其定义单 击事件:单击该按钮后,弹出“js”。下列选项中,错误的是(C)。 A.document.getElementById(&b1&).onclick = function() { alert(&js&); }; B.document.getElementById(&b1&).onclick = new function(){ alert(&js&); }; C.document.getElementById(&b1&).onclick = new Function(&alert(js); &); D.document.getElementById(&b1&).onclick = clickF function clickFunc() { alert(&js&); }73.(单选题)有下述 JS 代码: var data = [100, 3, 20]; for(var i=1; i&data. i++){ for(var j=0; j&data.length-i; j++){ if(data[j]&data[j+1]){ var tmp = data[j]; data[j] = data[j+1]; data[j+1] = } } } console.log( data ); 此段代码的执行结果是(C)。 A.[100, 3, 20] B.[3, 20, 100] C.[100, 20, 3] D.死循环74.(单选题)下述脚本代码,需要在页面实现了一个数字时钟,空白处脚本依次填写(B)。 &script type=&text/javascript&& var vID; window.onload = function () { 空 白 处 ; }; window.onunload = function () { 空 白 处 }; function addFunc() { var v = new Date(); document.getElementById(&mySpan&).innerHTML = v.toLocaleTimeString(); } &/script& A.vID = window. setTimeout(addFunc, 1000); window.clearTimeout(vID);(定时数字时钟) B.vID = window.setInterval(addFunc, 1000); window.clearInterval(vID);(即时数字时钟) C.vID = window.setTimer(addFunc, 1000); window.clearTimer(vID);(函数失效) D.vID = window.setDateTime(addFunc, 1000); window.clearDateTime(vID);(函数失效)75.(多选题)页面上有一个 id 为 course 的下拉列表框,下面选项中,能向下拉列表中添加一 个新的选项的是()。 A.document.course.add(new Option(&JS&)); B.var newObj = document.createElement(&option&); newObj.innerHTML = &JS&;document.course.add(newObj); C.document.getElementById(&course&).add(new Option(&JS&)); D.var newObj = document.createElement(&option&); newObj.innerHTML = &JS&;document.getElementById(&course&).add(newObj);76.(单选题)JavaScript中的 Global 对象用于收集所有的全局函数, 下列不是全局函 数的有哪些()。Js 全局函数(escape(),eval(),isNan(),isFinite(),parseFloat(),parseInt(),unescape();js 包含三大对象(1.内置 静态对象 2.本地对象 非静态 3.宿主对象 DOM BOM 内存活 )) A.setTimeout( ) B.getElementById( ) C.parseInt( ) D.alert( )77.(多选题)下列哪些方法可以在数组尾部添加一个新元素(C D)。 A.arr[ ] = 10; B.arr[ arr.length ] = 10; C.arr[ arr.length+1 ] = 10; D.arr.push( 10 );78.(多选题)查看如下代码: var n = 5; var result = ; console.log(result); 现需要判断变量 n 的 值是否为 10:如果为 10 ,则输出“对了”;如果比 10 小,则输出“小了”;否则输出“大了”。 为实现此功能,横线处的代码为( C D)。 A.n == 10 ? (&对了& : n & 10 ? &大了& : &小了&) B.n == 10 ? (&对了& : n & 10) ? (&大了& : &小了&) C.n == 10 ? &对了& : ( n & 10 ? &大了& : &小了&) D.n == 10 ? &对了& : n & 10 ? &大了& : &小了&79.(多选题)有 html 代码如下: &select id=&datas& size=&5&& &option&aa&/option& &option&bb&/option& &option&cc&/option& &/select& 现需要删除列表框中的第二项(文本为 bb 的选项)。下列选项中,正确的是(A B )。 A.varobj=document.getElementById(&datas&); obj.removeChild(obj.firstElementChild.nextElementSibling); B.varobj=document.getElementById(&datas&); obj.removeChild(obj.getElementsByTagName(&option&)[1]); C.var obj = document.getElementById(&datas&); obj.removeChild(obj.firstChild.nextSibling); 删除了 aaD.var obj = document.getElementById(&datas&); obj.removeChild(obj.getElementsByTagName(&option&)[0]); 删除了 aa80、(多选题)下述哪些选项执行时不会出错 ( A D) var userAge = 10; A.console.log( userAge++ & 10 && userName=='tom' ); (false) B.console.log( userAge++ &= 10 && userName=='tom' ); 错误:name not definde C.console.log( ++userAge & 10 || userName=='tom' ); D.console.log( ++userAge & 10 || userName=='tom' ); (true) 81、(单选题)已知字符串',a,,b,'其中没有空白字符,使用逗号对其进行拆分,得到的结果是如下哪一项:A(A) [null, 'a', null, 'b', null] (B) ['', 'a', '', 'b', ''] (C) [null, 'a', null, 'b'] (D) ['', 'a', '', 'b'] (E) ['a', 'b']84、(单选)声明一个对象,给它加上 name 属性和 show 方法显示 其 name 的值;以下代码正确的是A var obj={name:&zhangsan&,show:function(){alert(name);}}; B var obj={name:&zhangsan&,show:{alert(this.name);}}; C varobj={name:&zhangsan&,show: function(){alert(this.name);}}; D var obj={name:&zhangsan&,show:function(){alert(name);};85、(单选)分析下面的 JavaScript 代码段,输出结果是:(A) var a=new Array(2,4,4,5,6); Var sum = for(var i=0;i&a.i++){ sum +=a[i]}; document.write(sum); A.21 B.24456 C.2,4,4,5,6 D 1986、(单选)在 javascript 里 下列选项中不属于数组的方法是(B) A sort (指定顺序) B length () C concat (组合) D reverse (逆序)87、 (单选) javascript 中表达式 parseInt(?8x8?)+parseFloat(?8?) 的结果是什么?(C)A 88 B 96 C 16 D8x8888、(多选)以下关于 Array 数组对象的说法不正确的是(C D ) A. 对数组里数据的排序可以用 sort 函数,如果排序效果非预期,可以 给 sort 函数加一个排序函数的参数 B. reverse 用于对数组数据的倒序排列 C. 向数组的最后位置加一个新元素,可以用 pop 方法 D. unshift 方法用于向数组删除第一个元素 89、下面的 JavaScript 语句中,( A)实现检索当前页面中的表单 元素中的所有文本框,并将它们全部清空 A. for(var i=0;i& form1.elements.i++) { if(form1.elements.type==”text”) form1.elements.value=”&;} B. for(var i=0;i&document.forms.i++) { if(forms[0].elements.type==”text”) forms[0].elements.value=”&; } C. if(document.form.elements.type==”text”) form.elements.value=”&; D. for(var i=0;i&document.forms. i++){ for(var j=0;j&document.forms.elements. j++){ if(document.forms.elements[j].type==”text”) document.forms.elements[j].value=”&; } }90、关于正则表达式声明 6 位数字的邮编,以下代码正确的是( ) A. var reg = /\d6/; B. var reg = \d{6}\; C. var reg = /\d{6}/; D. var reg = new RegExp(“\d{6}”);91、(单选)那个对象包括了 Open( A)方法 A.window B.document C.location D.body92、(单选)在 JavaScript 中,文本域中失去焦点事件是(A) A.onblur B.onLostFocused C.onfocus D.onchange93、( A)事件处理程序可用于在用户提交表单时执行函数 A.onsubmit B.onclick C.onchange D.onexit94、分析下面的 javascript 代码段,输出的结果是: (B) var a=12.52; b=10.35; c=Math.round(a); d=Math.round(b); document.write(c+d) A.22.87 B.23 C.22 D.24 96、(单选题)有下述 javaScript 代码:var i = 0; var sum = 0; do{ i++; if( i%2 === 0){ } if( i%5 === 0){ } sum += }while( i&10 ); console.log( 'sum=' + sum ); 其运行结果应该是下列哪项(B) A.sum = 0; B.sum = 4; c.sum = 8 D.死循环97、(单选题)有 html 代码如下: &body& &div id=&d1&&&span&bb&/span&&/div& &/body&还有 JavaScript 代码如下: var obj = document.getElementById(&d1&); var newObj = document.createElement(&p&); newObj.innerHTML = &text&; obj.insertBefore(newObj, obj.firstChild); console.log(obj.innerHTML);上述代码的输出结果是:(B)A.&p&text&span&bb&/span&&/p& B.&p&text&/p&&span&bb&/span& C.&span&bb&/span&&p&text&/p& D.代码错误 98、(单选题)查看如下代码:var score = 75; var result = score &= 90 ? &aa& : (score&=80 ? &bb& : (score & 60 ? &cc& : &dd&) ); Console.log(result);上述代码输出结果是(D) A.aa B.bb C.cc D.dd 填空题1、声明常量关键字____const_______ 2、声明一个变量使用关键字______var______ 3、JavaScript 中命名法有_____匈牙利命名法__________、________下划 线命名法__________、________大驼峰命名法__________、__________小驼峰 命名法__________四种 4、检测给定变量的数据类型_____typeof、instanceof_________运算符 5、所谓对象,就是一种_________无序的对象____________集合,由若干个 _____键值对_______构成 6、读 取 对 象 的 属 性 , 有 哪 两 种 方 法 : _____ 点 运 算 符 object.value________和_____方括号运算符 object[“value”]_________ 7、数值键名不能使用______点________运算符 8、Base64 转 码 的 两 个 方 法 分 别 为 ____btoa ( ) ___________ 和 _________atob()________ 9、判断数组类型可以使用方法___Array.isArray()或 instanceof Array_________________ 10、在数组末端添加一个元素或多个元素使用的方法: ___push() ____________ 11、在数组末端删除一个元素或多个元素使用的方法:_____pop() __________ 12、在数组第一个位置添加元素使用的方法: ____unshift () ___________ 13、在删除数组第一个元素使用的方法:_____shift()__________ 14、颠倒数组中元素的顺序使用的方法:______reverse()_________ 15、_____任何类型______________数据都可以放入数组 16 字符串截取方法 ____substring () _________ 、 ______substr () __________、_____slice()_____________ 17、字符串就是零个或多个排在一起的字符,放在_____单引号_____和 ____双引号_____之间 18、去掉字符串两端空格使用________trim()______方法 19、javaScript 中注释有几种?分别为哪些? 1、单行文本注释:// 2、多行文本注释:/*…*/ 3、文档注释:/**...*/20、javaScript 中命名变量的标识符由哪四种字符构成?注意什么问 题? 字母、数字、下划线和美元符号,其中数字不能作为标识符的首字母。 21、变量类型分为哪些?分别是什么? 变量类型分为:原始类项和引用类型 原始类型有:number、string、boolean、undefined、null 引用类型有:Function、Object、Array、Date 等22、根据变量命名规则,下列变量正确的是哪些?并指出错误 mygirl 、_mygirl 、$mygirl、6mygirl、%mygirl、mygirl-my 正确的是 mygirl、_mygirl、$mygirl 错误的是:6mygirl(数字不能开通)、%mygirl(只能有字母数字下 划线和$符号)、mygirl-my(只能含有字母数字下划线和$f 符号)23、break 语句和 continue 语句区别 Break:是用来结束本次整体循环; Continue:是结束本次循环,进行下一次循环24、解释一下比较运算符中 “==”与“===”区别 ?==?:比较两个变量值是否相等 ?===?:用来比较两个变量值是否相等,以及两个变量类型是否相 等。25、生成对象的 3 种方法有哪些? Var obj={}; Var obj=new Object(); Var obj=Object.create(null);26 、 改 变 浏 览 器 位 置 的 方 法 : 3 个 ( 效 果 是 一 样 的 ) _______window.location=??________________ ________document.location.href=??________________________ 、 、 _________document.location.assign(??)______________ 27、用来选中当前文档中的元素可以用哪些方法?分别解释 1、querySelector(): css 选择器:element、id、class,返回匹配 指定的 CSS 选择器的元素节点。如果有多个节点满足匹配条件,则返 回第一个匹配的节点,如果没有发现匹配的节点,则返回 null; 2、querySelectorAll(): css 选择器:element、id、class,返 回匹配的指定 CSS 选择器的元素节点的集合; 3、getElementById(): 通过 id 查找指定元素,返回一个匹配 的节点; 4、getElementsByClassName(); 通过 class 查找指定元素, 返回匹配的集合; 5、getElementsByTagName(); 素,返回匹配的集合; 6、 getElementsByName();通过拥有 name 属性的元素查找匹 配的元素,返回匹配的集合。 通过 element 查找指定元简答题1、请写出字符串转换成数组及数组转换成字符串的方法字符串转换为数组:split();(以参数为规则分割字符串) 数组转换为字符串:toString()和 join()(以参数作为分割符) 2、请写出数组去重代码//函数上: var arr = ['hello','node','element','node','hello','blue','red']; var tamp=[]; function quchong(x){ for(var i=0;i& x.i++){ if(tamp.indexOf(x[i])==-1){ tamp.push(x[i]); } } } console.log(quchong(arr)); //原型链上 var arr = ['hello','node','element','node','hello','blue','red']; function Array(){}; Array.prototype.quchong=function(x){ var tamp=[]; for(var i=0;i& x.i++){ if(tamp.indexOf(x[i])==-1){ tamp.push(x[i]); } } }; var subArray=new Array(); console.log(subArray.quchong(arr));3、请写出字符串‘’ qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBN M”中随机获取其中 5 个的代码Var str='qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'; var tamp=''; function suijishu(x){ for(var i=0;i&x;i++){ var index=Math.floor(Math.random()*str.length); tamp+=str.slice(index,index+1); } } console.log(suijishu(5));4、请写出 Url 地址解析代码var url='http://witmax.cn/index.php?key0=0&key1=1&key2=2'; function parseQueryString(){ var locationSearch=url.slice(-21).length&0?url.slice(-21):''; var str1=locationSearch.slice(1); var arr1=str1.split('&'); var item= var value= var name= var obj={}; for(var i=0;i&arr1.i++){ item=arr1[i].split('='); name=item[0]; value=item[1]; obj[name]= } } console.log(parseQueryString());5、你是如何理解闭包?写一个简单的闭包例子1、 闭包就是能够读取其他函数内部变量的函数。 由于在 Javascript 语言中, 只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成&定义在 一个函数内部的函数&。所以,在本质上,闭包就是将函数内部和函数外部连接 起来的一座桥梁。 2、 使用闭包的注意点: 1、 由于闭包会使得函数中的变量都被保存在内存中, 内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在 IE 中可能 导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。 2、闭包会在父函数外部,改变父函数内部变量的值。所以,如果你把父函数当 作对象(object)使用,把闭包当作它的公用方法(Public Method),把内部 变量当作它的私有属性(private value),这时一定要小心,不要随便改变父 函数内部变量的值。 function createIncrementor(start) { return function () { return start++; //内部变量,通过闭包,start 的状态被保留了 };//每次调用都是在上一次调用的基础上进行计算 } var inc = createIncrementor(5); console.log(inc()); console.log(inc()); console.log(inc()); //举例 function aa(){ var a=10; return function(){ } } console.log(aa()())1、请写出你所知道的所有事件(注:HTML 事件、DOM0 级事 件、DOM2 级事件)a、html 事件处理程序?嵌入在标签元素中,添加事件属性; 缺点:代码耦合度太高,不利于维护、修改; b、DOM0 事件处理程序?添加事件对象 element.ontype = function(){}; 删除一个对象绑定事件 element.ontype = null; 缺点:给同一个元素绑定的第二次事件会覆盖第一次绑定事件; c 、 DOM2 级 事 件 处 理 程 序 ?element.addEventListener(type , function(){},false) , false 冒泡事件(重要); true 捕获事件;优点;可以 绑定多个事件处理程序(同一元素标签)、代码耦合度低(便于修改、维护 等) ;elenment.removeEventListener(type,function(){},false)//删除事件绑 定;缺点:ie6\7\8 不支持这个属性;请描述 target 和 currenttarget 的区别?target 是事件的真正发出者,代表当前目标对象(事件作用的对象),如 果是一个点击事件的话,那么你点击了谁,谁就是这个点击事件的作用对象。 currentTarget 始终是监听事件者,代表注册监听器的对象(事件监听者), 监听事件的对象(元素)你点击的元素不一定就注册了监听器,也许是它的子元 素或者父元素。 事件作用的元素(对象)= 注册监听器的元素(对象) event.currentTarget = this = event.target = 事件作用的元素 事件作用的元素(对象) != 注册监听器的元素(对象) event.currentTarget = this = 注册监听器的元素(对象)!=event.target = 事件作用的元素(对象)3、请写出 this 关键字的用法?a、作为普通函数调用 window.name = &globalName&; var getName1 = function (){ return this. }; console.log(getName1()); // 输出 globalName b、作为对象的方法调用 var obj = { a:1, getA:function(){ alert(this === obj); // 输出 true alert(this.a); //输出 1 } }; obj.getA(); c、构造器调用 var MyClass = function(){ this.name = 'seven'; }; var obj = new MyClass(); d、Function.prototype.call 和 Function.prototype.apply 可以动态地 改变传入函数的 this 指向 var obj1 = { name:'seven', getName:function(){ return this. } }; var obj2 = { name:'anne'}; console.log(obj1.getName()); // 'seven' console.log(obj1.getName.call(obj2));// 'anne' 4、事件委托是什么?也叫事件代理,由于事件会在冒泡阶段向上传播到父节点,因此可以把子节 点的监听函数定义在父节点上,由父节点的监听函数统一处理多个子元素的事 件。这种方法叫做事件的代理。5、如何阻止事件冒泡和默认事件?(1)event.preventDefault():取消浏览器对当前事件的默认行为; 阻止事件的默认行为,兼容 IE 和 DOM function preventDefault(event){ if(event.preventDefault){ event.preventDefault(); }else{ event.returnValue= } } (2)event.stopPropagation():阻止事件在 DOM 中继续传播,防止再触发定义 在别的节点上的监听函数。 阻止事件冒泡方法,兼容 IE 和 DOM function stopPropagation(event){ if(event.stopPropagation){ event.stopPropagation(); }else{ event.cancelBubble=6、请写一个继承代码function Parent(x,y,z){ this.money=x; this.house=y; this.gold=z; } Parent.prototype.sum=function(){ return this.money+';'+this.house+';'+this. }; function Son(x,y,z){ this.age=x; this.gender=y; this.name=z; } Son.prototype=new Parent(0,690,100001); Son.prototype.hahaha=function(){ return this.name+this.age+this. }; var firstChild=new Son(20,'男','李小明'); console.log(firstChild.money); console.log(firstChild.house); console.log(firstChild.gold); console.log(firstChild.sum()); console.log(firstChild.name); console.log(firstChild.gender); console.log(firstChild.age); console.log(firstChild.hahaha());9、写一个正则代码,验证邮箱和电话号码电话号码:var regexp=/\d{4}\-{1}\d{7}/ 手机号码:var regexp=/0?(13|14|15|17|18)[0-9]{9}/ 验证邮箱: Var regexp=/(\w+((-w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Z a-z0-9]+)/11、请描述 call 和 apply 的区别apply 接受两个参数:1、第一个参数指定了函数体内 this 对象的指向;2、 第二个参数为一个带下标的集合(可以为数组)也可以为类数组。apply 方法把 这个集合中的元素作为参数传递给被调用的函数 call 参数数量不固定:1、第一个参数指定了函数体内的 this 指向;2、第 二个参数开始往后,每个参数被依次传入函数。 call 和 apply 最常见的用途:改变函数内部的 this 指向。12、请写出兼容 ie 的几种方式1、浏览器窗口的内部高度和宽度(包含滚动条) Var w=document.documentElement.clientWidth||document.body.clientW Var h=document.documentElement.clientHeight||document.body.clientH 2、获取网页内容高度和宽度(网页尺寸) Var w=document.documentElement.scrollWidth||document.body.scrollW Var h=document.documentElement.scrollHeight||document.body.scrollH 3、获取网页内容的总高度和总宽度(包括滚动条等边线,会随窗口的显示 大小改变)(网页尺寸)例如:offsetHeight=clientHeight+滚动条+边框 Var w=document.documentElement.offseWidth||document.body.offsetW Var h=document.documentElement.offsetHeight||document.body.offsetH 4、事件兼容 IE var obj= { add: function (element, type, handler) { if (element.addEventListener) { element.addEventListener(type, handler, false) } else if (element.attachEvent) { element.attachEvent('on' + type, handler) } else { element['on' + type] = handler } }, del: function (element, type, handler) { if (element.removeEEventListener) { element.removeEventListener(type, handler, false) } else if (element.detachEvent) { element.detachEvent('on' + type, handler) } else { element['on' + type] = } } } 5、兼容浏览器 getClassName 方法 function getClass(className,parent){ var oParent=parent?document.getElementById(parent): var eles=[]; var elements=oParent.getElementsByTagName('*'); for(var i=0;i&elements.i++){ if(elements[i].className==className){ eles.push(elements[i]); } } } console.log(getClass('title')[0].style.color = 'red'); console.log(getClass('title')[0].style.fontSize = '20px'); 6、var event.target=event.targrt||event.srcElement 7、var event=event||window.event 8、阻止事件的默认行为,兼容 IE 和 DOM function preventDefault(event){ if(event.preventDefault){ event.preventDefault(); }else{ event.returnValue= } } 9、阻止事件冒泡方法,兼容 IE 和 DOM function stopPropagation(event){ if(event.stopPropagation){ event.stopPropagation(); }else{ event.cancelBubble= } }13、简述 BOM 和 DOM 各自的概念BOM 是 browser object model 的缩写,简称浏览器对象模型,BOM 提供了 独立于内容而与浏览器窗口进行交互的对象,由于 BOM 主要用于管理窗口与窗 口之间的通讯,因此其核心对象是 window,BOM 由一系列相关的对象构成,并 且每个对象都提供了很多方法与属性,BOM 缺乏标准,JavaScript 语法的标准化 组织是 ECMA,DOM 的标准化组织是 W3C,BOM 最初是 Netscape 浏览器标准 的一部分. 文档对象模型(Document Object Model,简称 DOM),是 W3C 组织推荐的 处理可扩展标志语言的标准编程接口。在网页上,组织页面(或文档)的对象被 组织在一个树形结构中,用来表示文档中对象的标准模型就称为 DOM。DOM 实际 上是以面向对象方式描述的文档模型。DOM 定义了表示和修改文档所需的对象、 这些对象的行为和属性以及这些对象之间的关系。 可以把 DOM 认为是页面上数据 和结构的一个树形表示,不过页面当然可能并不是以这种树的方式具体实现。14、总结遍历节点树的相关方法 nextSibling、 previousSibling、 parentNode、 parentElement、 childNodes、 firstChild、 lastChild、 firstElementChild lastElementChild15、列举DOM 中定义的节点类型和各自的名值DOM 模型把一篇 XML/HTML 文档的内容理解为一棵向下生长的树,文档中的每个 内容都是这棵树上的一个节点,根据文档内容的不同,可以把这些节点分为哪些类型?每 种类型的节点名和节点值各是什么?节点: nodeName nodeType Element 大写的 HTML 元素命 1 Attribute 属性名 2 Text #text 3 Comment #comment 8 Document #document 9 Document_type 等同于 DocumentType.name 10 Document_fragment #document-fragment 1116、总结读取一个p 标签中的文本内容有哪些方法(注意浏览器兼容问题)创建一个 HTML 页面,演示可以使用哪些方法读取一个 p 标签中的文本内容。注意提示出浏览器兼容性问题。TextContent(IE8 及以下不支持)innerText(firefox 不支持)&p id=&p1&&这是一个 p 标签&/p& var p=document.getElementById('p1'); console.log(p.innerText); console.log(p.textContent); 17、列举 BOM 对象及各自的含义?Window、location、navigator、screen 和 history Window:BOM 的核心对象, window 对象是脚本中的全局对象, 可以在任何地方调用, 网页中定义的任何一个对象、变量和函数,都是以 window 作为其 Global 对象。 Location:它提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功 能。Window.location===document.location Navigator:识别客户端浏览器的事实标准 Screen:基本上只用来表明客户端的能力,包括浏览器外部的显示器的信息,如 像素宽度和高度。 History:保存着用户上网的历史记录,从窗口被打开的那一个刻算起。18、如何在 js 代码中,获取 event 对象并读取相关信 息?window.onload=function(){ var event=event||window. console.log(event); }19、总结JavaScript 中的运算符有哪些类别总结 JavaScript 中的运算符有哪些类别1、算术运算符 + - * / % ++ -2、关系运算 & & &= &= == === != !== 3、逻辑运算 && || ! 4、赋值运算 = += -= *= /= %= 5、字符连接运算 + 6、条件(三目)运算 ?20、说明下列代码的输出结果var a = 10 ; var b = 10 ; console.log( a++ & ++b );//false console.log('a=' + a );//11 console.log('b=' + b );//1121、指出下列代码运行后的结果1. 2. 3. 4. 5. 6. 7. 8.} function testFunc() { var count=10; do { console.log(count+& &); count++; }while(count&5); 10+一个空格22、请简述 while 语句和 do-while 语句的区别?While 先判断是否符合条件,不符合一次都不执行。 do-while 先循环一次,然后再判断是否符合条件,不符合,结束循环。23、求约数求出某整数的所有约数,即可以整除该整数的数值(如:10 可以被 1、2、5、10 整除, 这些数字是 10 的约数),并逐一在控制台输出var a=10; function qiuyueshu(x){ for(var i=1;i&=x;i++){ if(x%i==0){ console.log(i); } } } qiuyueshu(a);24、下列代码运行运行效果是什么? console.log( Math.floor( Math.random()*10 ) );////[0,10)的整数 1.console.log( Math.ceil( Math.random()*10 ) );//[0,10]的整数 2.console.log( parseInt( Math.random()*40 ) + 60 );//[60,100) 的整数3.console.log( Math.ceil( 2.1/0.7 ) );//425、arguments 属性的类型问题Function 对象的 arguments 属性中保存着函数当前传递进来的实际参数列表,由于 实参可能有多个,那么 arguments 是 Array 类型的吗?不是,arguments 很像数组,但它是一个对象。数组专有的方法(比如 slice), 不能在 arguments 对象上直接使用。26、简述 JS 中的对象有哪些种类并举例JavaScript 代码中可以使用的对象有很多,来源不同,也涉及到不同程度的浏览器兼 容性问题,请详细的加以区分。 JS 中,可以将对象分为“内部对象”、“宿主对象”和“自定义对象”三种。 1,内部对象 js 中的内部对象包括 Array、Boolean、Date、Function、Global、Math、Number、Object、 RegExp、 String 以及各种错误类对象, 包括 Error、 EvalError、 RangeError、 ReferenceError、 SyntaxError 和 TypeError。其中 Global 和 Math 这两个对象又被称为“内置对象”,这两 个对象在脚本程序初始化时被创建,不必实例化这两个对象。 2.宿主对象 宿主对象就是执行 JS 脚本的环境提供的对象。 对于嵌入到网页中的 JS 来说, 其宿主对象就 是浏览器提供的对象,所以又称为浏览器对象,如 IE、Firefox 等浏览器提供的对象。不同 的浏览器提供的宿主对象可能不同,即使提供的对象相同,其实现方式也大相径庭!这会带 来浏览器兼容问题,增加开发难度。浏览器对象有很多,如 Window 和 Document 等等。 3.自定义对象 顾名思义,就是开发人员自己定义的对象。JS 允许使用自定义对象,使 JS 应用及功能得到 扩充。31、请简述三个 HTML5 中的表单元素及其作用元素名称 说明 form input 表示 HTML 表单 表示用来收集用户输入数据的控件textarea 表示可以输入多行文本的控件 select 表示用来提供一组固定的选项 option 表示提供提供一个选项 optgroup 表示一组相关的 option 元素 button 表示可用来提交或重置的表单按钮(或一般按钮) datalist 定义一组提供给用户的建议值 fieldset 表示一组表单元素 legend 表示 fieldset 元素的说明性标签 label 表示表单元素的说明标签 output 表示计算结果元素名称 说明 select 生成一个下拉列表进行选 择optgroup 对 select 元素进行编组 option select 元素中的项目 textarea 生成一个多行文本框 output 表示计算结果32、你做过的页面在哪些浏览器测试过,这些浏览器的内核 分别是什么?谷歌 chrome (webkit 内核)IE(Trident 内核) 火狐 firefox(Gecko) Webkit 内核 谷歌和 safira -webkitGecko 内核 火狐 -mozTrident 内核 IE -msPresto 内核 opera -o- 33、1 var a =1; test(); function test(){ console.log(a);//undefined var a =2; console.log(a);//2 } 以上程序的运行是结果:??34、希望获取到页面所有的 checkbox 怎么做 (不使用第三 方框架)Document.querySelectorAll() Document.getElementsByclassName() Document.getElementsByName() 用 Document.getElementsByTagName()的到所有的 input,然后再用 for 循环遍历出所有的 checkbox36、阅读以下 JavaScript 代码: if (window.addEventListener) { var addListener = function(el, type, listener, useCapture) { el.addEventListener(type, listener, useCapture); }; } else if (document.all) { addListener = function(el, type, listener) { el.attachEvent(&on& + type, function() { listener.apply(el); }); }; } 请阐述 a) 代码的功能; 添加监听事件,兼容 IE b) 代码的优点和缺点; 兼容 IE,缺点:代码复杂 c) listener.apply(el) 在此处的作用; 改变 this 指向 d) 如果有可改进之处,请给出改进后的代码,并说明理由。 事件兼容 IE var obj= { add: function (element, type, handler) { if (element.addEventListener) { element.addEventListener(type, handler, false) } else if (element.attachEvent) { element.attachEvent('on' + type, handler) } else { element['on' + type] = handler } }, del: function (element, type, handler) { if (element.removeEventListener) { element.removeEventListener(type, handler, false) } else if (element.detachEvent) { element.detachEvent('on' + type, handler) } else { element['on' + type] = } } }37、尝试实现注释部分的 Javascript 代码,可在其他任何地方添加更多代码(如不能实现, 说明一下不能实现的原因): var Obj = function(msg){ this.msg = this.shout = function(){ alert(this.msg); } this.waitAndShout = function(){ //隔五秒钟后执行上面的 shout 方法 } }// 方法一: var Obj = function(msg){ this.msg = this.shout = function(){ alert(this.msg); }; this.waitAndShout = function(){ that= setTimeout(function () { that.shout() },5000) } }; var obj= new Obj('dad'); obj.waitAndShout(); //方法二 var Obj=function(msg){ this.msg = this.shout = function(){ console.log(this.msg); }; this.waitAndShout =function(){ var that= setTimeout(function(){ console.log(that.msg); },5000); }}; var mm=new Obj('haha'); mm.waitAndShout();38、请编写一个 JavaScript 函数,它的作用是校验输入的字符串是否是一个有效的电子 邮件地址。要求: a) 使用正则表达式。 b) 如果有效返回 true ,反之为 false。function jiaoyanEmail(x){ var repexp=/(\w+((-w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[ A-Za-z0-9]+)/; return repexp.test(x) } console.log(jiaoyanEmail(''))39、请编写一段 JavaScript 脚本生成下面这段 DOM 结构。要求:使用标准的 DOM 方法 或属性。 &div id=”example”& &p class=”slogan”&你喜欢&/p& &/div&function create(x){ return document.createElement(x); } var div=create('div'); div.id='example'; document.body.appendChild(div); var p=create('p'); p.className='slogan'; p.innerHTML='你喜欢'; div.appendChild(p);40、对于下面这段代码: &a href=”somewhere.html” onclick=”dosomething()”& 问题一:请列举其优缺点,说说你的看法。html 事件处理程序―&嵌入在标签元素中,添加事件属性;缺点:代码耦合 度太高,不利于维护、修改;问题二:请编写一个通用的事件注册函数(请看下面的代码)。 function addEvent(element, type, handler) { // 在此输入你的代码,实现预定功能 if(element.addEventListener){ element.addEventListener(type,handler,false) }else if(element.attachEvent){ element.attachEvent('on'+type,handler) }else{ element['on'+type]= } }41、下面这个 ul,如何点击每一列的时候 alert 其 index? &ul id=”test”& &li&这是第一条&/li& &li&这是第二条&/li& &li&这是第三条&/li& &/ul&方法一: var ul=document.getElementById('test'); var li=document.getElementsByTagName('li'); for(var i=0;i&li.i++){ li[i].index=i+1; li[i].onclick=function(){ alert(this.index); } } 方法二: var ul=document.getElementById('test'); var li=ul.getElementsByTagName('li'); for(var i=0;i&li.i++){ (function (i) { li[i].onclick=function(){ alert(i); } }(i)) }42、给 String 对象添加一个方法,传入一个 string 类型的参数,然后将 string 的每个字 符间价格空格返回,例如:addSpace(“hello world”) // -& ?h e l l o w o r l d?function addSpace(x){ var arr= x.split(''); var str=arr.join(' ');//两个冒号之间有一个空格
} console.log(addSpace('Hello World'));43、定义一个 log 方法,让它可以代理 console.log 的方法//方法一:(这个方法不对) function log(){ for(var i=0;i&arguments.i++){ console.log(arguments[i]); } } log(1,2,3,23,44,555,555555); //方法二:(用这个方法) function log(){ console.log.apply(console,arguments) } log(1,2,3,23,44,555,555555);44、对作用域上下文和 this 的理解,看下列代码:var User = { count: 1, getCount: function() { return this. } }; console.log(User.getCount());// what?====1对象的方法调用 this 指向该对象var func = User.getC console.log(func());// what?===undefined作为普通函数调用 this 指向 window // what?问两处 console 输出什么?为什么?45、用面向对象的 Javascript 来介绍一下自己!function Model(name,age,height){ this.name= this.age= this.height= } Model.prototype.Hello=function(){ return '我是: '+this.name+',年龄: '+this.age+',身高: '+this. }; var my=new Model('张建红',25,178); console.log(my.name); console.log(my.age); console.log(my.height); console.log(my.Hello());46、下面是个输入框,当没有获取焦点时,显示灰色的提示信息:当用户输入时,隐藏提示文字,且恢复为默认色:当输入框失去焦点,如果输入为空,需还原提示信息:要求: a) 写出 HTML 和 CSS 代码 b) 用 JavaScript 实现功能var input=document.createElement('input'); input.setAttribute('placeholder','请输入内容'); document.body.appendChild(input); input.onfocus=function(){ input.removeAttribute('placeholder'); }; input.onblur=function(){ if(input.value==''){ input.setAttribute('placeholder','请输入内容') } }48、请给 Array 本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多 个),返回值是一个包含被删除的重复条目的新数组。var arr=['a','a','b','b','c','f','r','r','f']; function Array(){} Array.prototype.quchong=function(x){ var tamp=[]; var item=[]; for(var i=0;i& x.i++){ if(tamp.indexOf(x[i])==-1){ tamp.push(x[i]); }else{ item.push(x[i]); } } }; var subArray=new Array(); console.log(subArray.quchong(arr));49、请给出异步加载 js 方案,不少于两种(1) defer,只支持 IE (2) async: async 的定义和用法(是 HTML5 的属性) async 属性规定一旦脚本可用,则会异步执行。 (3) 创建 script,插入到 DOM 中,加载完毕后 callBack,50、js 中如何定义 class,如何扩展 prototype?JS 中定义 class 是通过 function,要定义 class 只需要定义 function,并注 意 this 的使用。 function Myclass(name){ this.name=//通过 this 定义属性 }; Myclass.prototype.hello= function () {//扩充方法 return this.name+'!!!!!'; }; Myclass.prototype.age='3';//扩充属性 var mc=new Myclass('小明'); console.log(mc.name); console.log(mc.age); console.log(mc.hello());51、 如何添加 html 元素的事件,有几种方法?1、HTML 事件处理程序:嵌入在标签元素中,添加事件属性。缺点:代码耦合 度太高,不利于维护、修改. 如:&div onclick=&myClick()&&&/div& 2、DOM0 级事件处理程序:添加事件 element.ontype= function(){};删除一个 对象绑定事件 element.ontype = null。缺点:给同一个元素绑定的第二次事件 会覆盖第一次绑定事件. 3、DOM2 级事件处理程序(用的多):添加事件:element.addEventListener(' 添加监听事件',function(){},false) // false 冒泡事件(重要); 获事件。删除事件:element.removeEventListener('添加监听事件', function(){},false)优点;可以绑定多个事件处理程序(同一元素标签)、代 码耦合度低(便于修改、维护等)。缺点:ie6\7\8 不支持属性 4、ie 事件处理程序:这个方法支持 ie5\6\7\8\9\10。ie11 以上放弃此方法, 改支持 addEventListener()方法: 添加事件: element.attachEvent( ‘on’ +type, callback) 。删除监听事件:detachEvent(‘on’+type,callback) 。52、documen.write 和 innerHTML 的区别?true 捕document.write 是直接写入到页面的内容流,如果在写之前没有调用 document.open, 浏览器会自动调用 open。每次写完关闭之后重新调用该函数, 会导致页面被重写。 innerHTML 则是 DOM 页面元素的一个属性,代表该元素的 html 内容。可以 精确到某一个具体的元素来进行更改。 innerHTML 很多情况下都优于 document.write, 其原因在于其允许更精确的 控制要刷新页面的那一个部分。53、web 前端开发的注意哪些优化问题?1.使用惰性函数 2.图片能使用雪碧图的尽量使用雪碧图(Css Sprites) 3.能写成函数形式的尽量写成函数,如(去重复函数),减少代码量 4.使用 document fragment 操作 DOM,提高加载速度 5.资源合并与压缩,如果可以的话,尽可能的将外部的脚本、样式进行合并, 多个合为一个。另外, CSS、 Javascript、Image 都可以用相应的工具进行压 缩,压缩后往往能省下不少空间。 6、尽量不用闭包;
编程题1、制作可伸缩隐藏的侧边栏制作可伸缩隐藏的侧边栏,默认情况下,页面效果如下图 1 所示图1当用户单击中间橘黄色区域时,则隐藏右侧内容,效果如下图 2 所示图2 当用户再次单击中间绝黄色区域时,右侧内容区域可以再次显示,恢复到图 1 所示效果//方法一&!DOCTYPE html& &html& &head lang=&en&& &meta charset=&UTF-8&& &title&&/title& &style& #left{ height:200 width:100 background: line-height: 200 text-align: float: } #center1{ height: 200 width: 20 background: line-height: 200 text-align: float: } #center2{ height: 200 width: 20 background: line-height: 200 text-align: float: display: } #right{ height:200 width:100 background: line-height: 200 text-align: float: } &/style& &/head& &body& &div& &div id=&left&&左侧内容&/div& &div id=&center1&&&&&/div& &div id=&center2&&&&&/div& &div id=&right&&右侧内容&/div& &/div& &/body& &script type=&text/javascript&& var center1=document.getElementById('center1'); var center2=document.getElementById('center2'); var right=document.getElementById('right'); center1.onclick=function(){ right.style.display='none'; center1.style.display='none'; center2.style.display='block'; }; center2.onclick=function(){ right.style.display='block'; center1.style.display='block'; center2.style.display='none'; } &/script& &/html& //方法二 &!DOCTYPE html& &html& &head lang=&en&& &meta charset=&UTF-8&& &title&&/title& &style& #left{ height:200 width:100 background: line-height: 200 text-align: float: } #center{ height: 200 width: 20 background: line-height: 200 text-align: float: } #right{ height:200 width:100 background: line-height: 200 text-align: float: } &/style& &/head& &body& &div& &div id=&left&&左侧内容&/div& &div id=&center&&&/div& &div id=&right&&右侧内容&/div& &/div& &/body& &script type=&text/javascript&& var center=document.getElementById('center'); var right=document.getElementById('right'); center.innerHTML='&&'; center.onclick=function(){ if(center.className!=='yicang'){ right.style.display='none'; center.className='yicang'; center.innerHTML='&&'; }else{ right.style.display='block'; center.className=''; center.innerHTML='&&'; } }; &/script& &/html&2、隐藏选定 DIV页面中有若干个显示数据的区块,如图-1 所示: 图-1单击某区块,可以选定该元素(以红色边框突出显示);再次单击,可以取消选定, 如图-2 所示:图-2单击“隐藏选定”按钮,可以将选定的元素隐藏起来,如图-3 所示:图-3忽略 IE8 及以下版本浏览器的兼容性问题,实现上述需求。&!DOCTYPE html& &html& &head lang=&en&& &meta charset=&UTF-8&& &title&&/title& &style& #container{ margin:10 } #container div{ float: margin:0px 20 } #container div img{ width: 250 height:300 display: } &/style& &/head& &body& &div id=&box&& &h2&隐藏选定 DIV&/h2& &button type=&button& id=&btn&&隐藏选定&/button& &div id=&container&& &div&&img src=&img/i1.jpg& alt=&&/&&/div& &div&&img src=&img/i2.jpg& alt=&&/&&/div& &div&&img src=&img/i3.jpg& alt=&&/&&/div& &div&&img src=&img/i4.jpg& alt=&&/&&/div& &/div& &/div& &/body& &script type=&text/javascript&& var btn=document.getElementById('btn'); var divList=document.getElementById('container').getElementsB yTagName('div'); var imgList=document.getElementsByTagName('img'); for(var i=0;i&divList.i++){ //方法一 // // // // // // // // // divList[i].index=i; divList[i].onclick=function(){ if(divList[this.index].className=='yincang'){ this.style.border=''; this.className=''; }else{ this.style.border='2px solid red'; this.className='yincang' } //}; //方法二 (function(i){ divList[i].onclick=function(){ if(divList[i].className=='yincang'){ divList[i].style.border=''; divList[i].className=''; }else{ divList[i].style.border='2px solid red'; divList[i].className='yincang' } } }(i))}; btn.onclick=function(){ for(var i=0;i&divList.i++){ if(divList[i].className=='yincang'){ divList[i].style.display='none'; } } } &/script& &/html&3、动态创建表格创建页面,效果如图-4 所示:图-4单击页面上的“增加产品“按钮,则在表格中增加一行,行中的各单元格显示文本框, 用于录入相应的数据,界面效果如图-5 所示: /************************************************************************************/&!DOCTYPE html& &html& &head lang=&en&& &meta charset=&UTF-8&& &title&&/title& &style& table tr th{ background: height: 40 width: 200 line-height: 20 text-align: } #btn{ margin-top: 20 display: } &/style& &/head& &body& &form action=&&& &h2&动态创建表格&/h2& &table border=&1px solid gray& cellpadding=&0& cellspacing=&0& id=&table&& &tr& &th&产品 ID&/th& &th&产品名称&/th& &th&产品价格&/th& &/tr& &/table& &button type=&button& id=&btn&&增加产品&/button& &/form& &/body& &script type=&text/javascript&& function create(x){ return document.createElement(x); } var table=document.getElementById('table'); var btn=document.getElementById('btn'); btn.onclick=function(){ var tr=create('tr'); table.appendChild(tr); for(var i=0;i&3;i++){ var td=create('td'); var input=create('input'); tr.appendChild(td); td.appendChild(input); input.type='text'; } } &/script& &/html&4、页面内进度条效果在页面中模拟实现如图-3 中的效果:图-3图中的进度条以随机的速度前进,直至 100%&!doctype html& &html lang=&en&& &head& &meta charset=&UTF-8&& &title&Document&/title& &style& #div1{ width:200 height: 20 overflow: border:1 } #div2{ height: 20 background: width: 0 } &/style& &/head& &body& &div& &h2&页面内进度条效果&/h2& &div id=&div1&& &div id=&div2&&&/div& &/div& &p&系统监测进度:&span id=&span&&&/span&&/p& &/div& &/body& &script type=&text/javascript&& var div1=document.getElementById('div1'); var div2=document.getElementById('div2'); var span=document.getElementById('span'); var index=0; var timer=setInterval(function(){ index=index+Math.ceil(Math.random()*100); div2.style.width=index+'%'; span.innerHTML=index+'%'; if(index&=100){ clearInterval(timer); div2.style.width=index+'%'; span.innerHTML='100%'; } },1000) &/script& &/html& 5、广告轮播(提高题,选做)有四张图片,其名称和图片效果如图-5 所示:图-5需要使用图-5 中的四张图片完成页面上的广告轮播效果,详细要求如下: 1、页面加载后,先在页面上显示第一张图片(rose.jpg),当前图片所对应的数字编 号也高亮显示。页面效果如图-6 所示。图-62、每隔 3s,自动更换页面上的图片显示,并修改图片所对应的数字编号的样式,效 果如图-7 所示: 图-73、图片轮换显示的顺序为:&rose.jpg&、&daffodil.jpg&、&apple.jpg&、 &daisy.jpg&; 4、一轮显示完毕后,重复下一轮显示; 5、鼠标移入图片时,停止图片轮换,鼠标移出图片时,继续图片轮换; 6、 鼠标移入图片下方的某个数字编号, 则显示该数字所对应的图片, 且停止图片轮换; 7、鼠标移出图片下方的某个数字编号,则继续图片轮换。&!DOCTYPE html& &html& &head lang=&en&& &meta charset=&UTF-8&& &title&&/title& &style& #top{ width: 250 height: 200 overflow: margin: 10px 20 position: } #box{ position: width: 1500 height: 200 } #box img{ width: 250 height: 200 display: float: } #container{ margin: 10px 50 } #container span{ width: 20 height: 20 float: display: margin: 0px 10 background: line-height: 20 text-align: } #container .yanse{ background: } &/style& &/head& &body& &div id=&top&& &div id=&box& style=&left:-250px&& &img src=&img/i4.jpg& alt=&&/& &img src=&img/i1.jpg& alt=&&/& &img src=&img/i2.jpg& alt=&&/& &img src=&img/i3.jpg& alt=&&/& &img src=&img/i4.jpg& alt=&&/& &img src=&img/i1.jpg& alt=&&/& &/div& &/div& &div id=&container&& &span class=&yanse&&1&/span& &span&2&/span& &span&3&/span& &span&4&/span& &/div& &/body& &script type=&text/javascript&& window.onload=function(){ var box=document.getElementById('box'); var spanList=document.getElementsByTagName('span'); var index=0; var timer= time=function(){//轮转循环 box.style.left=parseInt(box.style.left)-250+'px'; if(parseInt(box.style.left)&-1000){ box.style.left=-250+'px' } index+=1; if(index&3){ index=0 } for(var i=0;i&spanList.i++){ spanList[i].className='none'; } spanList[index].className='yanse'; }; timer=setInterval(time,1000); box.onmouseover=function(){ clearInterval(timer); }; box.onmouseout=function(){ timer=setInterval(time,1000); }; for(var i=0;i&spanList.i++){ spanList[i].num=i; spanList[i].onmouseover=function(){ clearInterval(timer); for(var i=0;i&spanList.i++){ spanList[i].className='none'; } spanList[this.num].className='yanse'; box.style.left=-250*(this.num+1)+'px'; console.log(box.style.left); index=this. console.log(index); }; spanList[i].onmouseout=function(){ timer=setInterval(time,1000); } } } &/script& &/html& 6、成绩等级判定由用户输入一个学生的语文成绩,若输入的值小于 0 或大于 100,在控制台中输出“成绩 无效”;若在 80 以上,输出“优秀&;若在 60 以上,输出“及格”;否则输出不及格&!DOCTYPE html& &html& &head lang=&en&& &meta charset=&UTF-8&& &title&&/title& &/head& &body& &/body& &script type=&text/javascript&& function score(x){ if(x&0||x&100){ console.log('语文成绩:成绩无效!!'); }else if(x&80&&x&=100){ console.log('语文成绩:优秀!!'); }else if(x&=60&&x&=80){ console.log('语文成绩:及格!!'); }else{ console.log('语文成绩:不及格!!'); } } score(-9); score(100); score(90); score(80); score(70); score(60); score(30); &/script& &/html& 7、完成函数 showImg(),要求能够动态根据下拉列表的选 项变化,更新图片的显示&!DOCTYPE html& &html& &head lang=&en&& &meta charset=&UTF-8&& &title&&/title& &style& select{ margin: 20px 0 } div img{ width: 250 height: 200 float: display: } &/style& &/head& &body& &select name=&& id=&&& &option value=&-1&&请选择&/option& &option value=&1& class=&mm&&美女 1&/option& &option value=&2& class=&mm&&美女 2&/option& &option value=&3& class=&mm&&美女 3&/option& &option value=&4& class=&mm&&美女 4&/option& &/select& &div& &img src=&img/i1.jpg& &img src=&img/i2.jpg& &img src=&img/i3.jpg& &img src=&img/i4.jpg& &/div& &/body&alt=&&/& alt=&&/& alt=&&/& alt=&&/& &script type=&text/javascript&& var optionList=document.getElementsByClassName('mm'); var imgList=document.getElementsByTagName('img'); var select=document.getElementsByTagName('select')[0]; var div=document.getElementsByTagName('div')[0]; select.onchange=function(){ if(select.value==-1){ div.style.display='none'; }else{ div.style.display='block'; for(var i=0;i&optionList.i++){ optionList[i].value=i; for(var j=0;j&imgList.j++){ imgList[j].style.display='none'; } imgList[this.value].style.display='block'; } } } &/script& &/html&8、完成 foo()函数的内容,要求能够弹出对话框提示当前选 中的是第几个单选框(自己写 html)&!DOCTYPE html& &html& &head lang=&en&& &meta charset=&UTF-8&& &title&&/title& &/head& &body& &label for=&diyige&&第一个&/label& &input type=&radio& id=&diyige& name=&danxuan&/& &label for=&dierge&&第二个&/label& &input type=&radio& id=&dierge& name=&danxuan&/& &label for=&disange&&第三个&/label& &input type=&radio& id=&disange& name=&danxuan&/& &label for=&disige&&第四个&/label& &input type=&radio& id=&disige& name=&danxuan&/& &/body& &script type=&text/javascript&& function foo(){ var radioList=document.getElementsByName('danxuan'); for(var i=0;i&radioList.i++){ radioList[i].index=i+1; radioList[i].onclick=function(){ alert('当前选中的是第'+this.index+'个对话框'); } } } foo(); &/script& &/html& //方法二&!DOCTYPE html& &html& &head lang=&en&& &meta charset=&UTF-8&& &title&&/title& &style& #b img{display:} &/style& &/head& &body& &select id=&a& onchange=&showImg(this.value)&& &option value=&-1&&--请选择--&/option& &option value=&0&&图一&/option& &option value=&1&&图二&/option& &option value=&2&&图三&/option& &option value=&3&&图四&/option& &/select& &div id=&b&& &img src=&images/door1.png& alt=&&/& &img src=&images/door2.png& alt=&&/& &img src=&images/door3.png& alt=&&/& &img src=&images/door4.png& alt=&&/& &/div& &/body& &script& var select=document.getElementById('a'); var div=document.getElementById('b'); var img=div.querySelectorAll('img'); function showImg(value){ for(var i=0;i&4;i++){ img[i].style.display='none'; } img[value].style.display='block'; } &/script& &/html&9、判断一个字符串中出现次数最多的字符,统计这个次数&!DOCTYPE html& &html& &head lang=&en&& &meta charset=&UTF-8&& &title&&/title& &/head& &body& &/body& &script type=&text/javascript&& var str='a

我要回帖

更多关于 gt执行器 的文章

 

随机推荐