JavaScript题库

 1. 下面语句得到值为true的有	A 	C 
 A   "1" == 1  
 B 1==="1"
 C "2" > "19" 
 D "2"==19
2. 下面哪些方法可以实现将字符串“123”变成数值型  A   B C D
	A Number()  B parseInt()  C parseFloat()  D Boolean()
3. 下面声明变量及赋值的写法正确的有      B    C   D		 
	A var _myName = 12a 
    B var _myName = "12a"
    C var myName = 12  
    D var $myName = true
**4. console.log(typeof typeof 123456) 的值为    string*
**5.  typeof null 检测出来的数据类型是		object
**6. 在JS中,"1555"+3的运行结果是    		 15553
**7. 在JS中,3+"1555"+3的运行结果是 		 315553
**8. 在JS中,3+3+"1555"+3的运行结果是		615553
**9. console.log(NaN==NaN)   false
**10.console.log(isNaN(123))   false
**10. isNaN("abc")的结果是       true
**11. isNaN(123) 的结果是     false
**12. isNaN("3a")的结果是   NaN
**13.  console.log(Number("      "));         0
14. 如果弹出一个可输入信息的框,可以使用哪一个方法     B

A     confirm()
**B   prompt()**
C     alert()
D     以上都对
15. var sum=0; for(var i=0;i<10;i++){ sum += i; } console.log( i )          10
16. 下面哪一个字符串变量定义语句是不正确的       ( C)
	A  var mytext="Here is some text!"
    B  var mytext='Here is some text!'
    C  var mytext='Here is some text!"
    D  var mytext="Here is\ some text!"
 3. 有下述JS代码:  
	var x = 10; var y = 20; 
 	var z = x<y ? x++ : ++y ; 
 	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=11
  5. 哪个操作符比较变量需要比较值及类型    B
	A  ==
    B  ===(严格等)
    C  =
    D  以上都不用
 10. 如下代码,会弹出来是什么 var a; alert(a);   C
	A  报错
    B  a is not define
    C  undefined
    D  0
17. var num = 123.456789;哪种方法可以保留3位小数     B
    A  num.toString(3)
    B  num.toFixed(3)
    C  parseFloat(num,3)
    D  Number(num,3)
18. 关于NaN的说法正确的是   A    C 
	A  NaN的数据类型为数字类型 也就是 typeof(NaN)的结果为number
    B  NaN == NaN 返回true
    C  NaN不等于任何数,包括自己本身,NaN == NaN 返回false
    D  如果已知变量num不是数字,那么num == NaN 将得到true
19 代码的输出结果是    (A)
	var num = 2; 
	switch(num) {    
        case 1: console.log("1");    
        case 2: console.log("2");    
        default: console.log("default"); 
	}
	A  先输出2,再输出default
    B  输出2
    C  程序错误
    D  先输出1,再输出2,再输出default
  20. 执行以下代码,控制台会打印几次       (B)(至少一次)
    var age = 17; 
    do{   
        console.log("十八岁以下禁止观看"); 
    }while(age>=18)	
    A  0
    B  1
    C  2
    D  无限次
 21. Number(true) 返回值为         (B)
	A  true 
    B  1
    C  0
    D  NaN
   22. 分析下段代码输出结果是              B
    var t = 10; 
    function test(test){  
        t = t + test;  
        var t = 3;  
        console.log(t); 
    } 
    test(t);
    A  6
    B  3
    C  13
    D  NaN
23. 分析下段代码输出结果是            C
    var t = 10; 
    function test(test){  
        t = t + test;  
        console.log(t); 
    } 
    test(t);
    A  6
    B  3
    C  20
    D  NaN
  24.有下述JS代码:    B
 var i = 0; 
 var sum = 0; 
 do{    
     i++;   
     if( i%2 === 0){   continue; }    I   0  1  2    3  
     if( i%5=== 0){    break;  }    SUM   0  1        2
     sum += i; 
 }while( i<10 ); 
 console.log( 'sum=' + sum ); 
 其运行结果应该是下列哪项        
    A  sum=0
    B  sum=4
    C  sum=Infinity
    D  死循环

25.如何快速的将数组arr清空    (A)

A  arr.length = 0

B  arr = ""

C  arr.length = ""

D  arr.length = []
26.下面哪个是window窗口大小改变触发的事件     (B)

A  onmouseover

B  onresize

C  onmouseout

D  onclick
27.判断下面的代码输出为
 var a = 1; var b = a * 0; var a;
  if (b == b) { 
     console.log(b * 2 + "2"- 0 + 4);
   } else { 
     console.log(!b * 2 + "2"- 0 + 4);
    }        (A)
A  6
B  NaN
C  22
D  26
28.文本节点的节点类型用数字表示为         (C)

A  1

B  2

C  3

D  8
29.请阅读下面代码 var num = Math.floor(Math.random()*100); 上述代码中num的取值范围是     (C)

A  0--100

B  1--99

C  0--99

D  1--100
30.关于nodeName描述错误的是             (B)

A  元素节点的节点名始终是标签名

B  文本节点的节点名始终是#document

C  文本节点的节点名始终是#text

D  属性节点的节点名始终是属性名
31. 请阅读列代码 <ul id="list">文本
                <li>list1</li>  
                <li>list2</li>  
                <li>list3</li>
                </ul>
                 <script> 
                      var list = document.getElementById("list"); 
                       console.log(list.childNodes[0].nextSibling);
                 </script> 以上代码的输出结果是         (A)

A  <li>list1</li>
B  "    "
C  <li>list2</li>
D  <li>list3</li>
解析:list.childNodes[0]为文本节点
32.在javascript里,下列选项中不属于数组方法的是         (B)

A  sort()

B  length()

C  reverse()

D  concat()
33.var arr = [2,3,4,5,6];                   (B)
var sum =0;
 for(var i=1;i < arr.length;i++) { 
    sum +=arr[i]    
 } 
console.log(sum);                       
A  20
B  18
C  14
D  12
解析:下标从1开始
34.下列关于innerHTML和innerText描述正确的是               (A)

A  innerHTML会被解析成html标签渲染,innerText是纯文本显示

B  innerHTML会发生转义如 < 会被转换成 &lt; ,innerText原样渲染

C  innerHTML和innerText都会被解析成html标签渲染

D  innerHTML和innerText都是纯文本显示
35.下列哪个方法不能获取obj的样式            (C)
A  obj.style
B  obj.currentStyle[attr]
C  obj.offset
D  getComputedStyle(obj)[attr]
36.分析下面的代码,输出的结果是                 (C)
var arr=new Array(5);
arr[1]=1;
arr[5]=2;
console.log(arr.length)
A  2
B  5
C  6
D  报错
解析:数组的下标从0开始,arr[5]代表数组的第6项,所有数组的长度为6
37.为了避免重复的DOM插入操作,我们可以创建一个             (D)
A  文本文档
B  文本文件
C  文件碎片
D  文档碎片
38.哪个属性可以获得滚动条已经滚动的垂直距离             (C)
A  document.scrollTop
B  document.top
C  document.body.scrollTop
D  window.scrollTop
39.请阅读下面代码 var arr = [1,2,3,"hello"]; arr.concat("world"); 
console.log(arr.toString()); 上述代码的输出结果是          (A)
A  "1,2,3,hello"
B  "string"
C  "1,2,3,hello,world"
D  "1 2 3 hello world"
解析:concat不修改原数组!
40.var arr = [1,2,3,4]; arr.join("&"); console.log(arr);             (A)
A  [1,2,3,4]
B  1&2&3&4
C  [1&2&3&4]
D  1,2,3,4
解析:join 不改变原数组。
41.var  arr = [3,4,5]; var  res = arr.unshift(1,2); console.log(res); 输出的结果是             (C)
A  [1,2]
B  [3,4,5]
C  5
D  [1,2,3,4,5]

解析:unshift()执行后返回值为新数组的长度
42.下面哪些方式可以将div的文字设置为红色          (B C)
A  div.color = "red"
B  div.style.color ="red"
C  div.style.cssText="color:red"
D  div.cssText="red"
解析:对象.style.属性=“属性值”,可以设置字体颜色,对象.style.cssText="color:red",可以批量设置css属性
43.已知当前的系统时间,var now = new Date(),设置3天后的时间正确写法是         (B C)

A  now.setDate(now.getDate()+3)
B  now.setTime(now.getTime()+3)
C  now.setTime(now.getTime()+3*1000*3600*24)
D  now.setDate(now.getDate()+3*1000*3600*24)
解析:使用数学计算,计算出3天一共多少毫秒,设置给时间戳
44.var now = new Date(),设置3天后的时间正确写法是          (A C)
A  now.setDate(now.getDate()+3
B  now.setTime(now.getTime()+3)
C  now.setTime(now.getTime()+3*1000*3600*24)
D  now.setDate(now.getDate()+3*1000*3600*24)
45.以下等式成立的是          (A C)
A  typeof NaN == 'number'**
B  NaN == NaN
C  'abcd'.length == 4
D  'abcd'[1] == 'a'
45.下面关于数组方法描述正确的是      (B C)
A  可以通过splice()复制数组
B  forEach()可以遍历数组,等同于for循环
C  every(fn) 返回布尔值,如果该函数每一项都返回 true,才返回true
D  some(fn) 返回布尔值,如果该函数每一项都返回 true,才返回true
46.删除节点的方法      (A B)
A  remove()
B  removeChild()
C  move()
D  moveChild()
解析:元素.remove()可以删除当前元素,父元素.removeChild(子元素)可以根据父元素删除指定的子元素
47.以下数组方法中哪些可以改变原数组          (A D )
A  slice()
B  splice()
C  concat()
D  pop()
解析:slice为截取数组,不会修改原数组;concat为合并数组,不会修改原数组;splice为删除并替换局部,会修改原数组;pop删除数组中最后一位数据,会修改原数组
48.下列哪些方法可以遍历数组(A B C)
A  for
B  for-in
C  do-while
D  for-by
49.下列哪些选项属于DOM节点          (A B C D)
A  属性
B  文本
C  注释
D  标签
DOM节点有:属性,文本,注释,标签,根节点
50.下面对字符串的描述正确的是   (A C)
A  字符串的长度可以通过length属性获取
B  字符串可以通过charAt()获取某个字符对应的索引
C  字符串可以通过indexOf()获取某个字符对应的索引
D  字符串可以通过join()转成数组
51.以下选项,能够正确随机获取数组中元素的是 var arr = [“张三”,“李四”,“王二”,“二哈”]           A  B
A  Math.round(Math.random() * (arr.length-1) )
B  parseInt(Math.random() * arr.length )
C  Math.round(Math.random() * (arr.length) )
D  parseInt(Math.random() * (arr.length-1) )
解析:要随机获取数组的内容,只要能生成随机下标即可,arr的下标是0到arr.length-1之间,所以只要能生成0到3的随机正数即可;

A选项:Math.random() * (arr.length-1) 得到 0.0001-2.9999的随机数,Math.round()方法作用是四舍五入,经过该方法:得到0-3之间的随机数,正确;

B选项:Math.random() * arr.length得到0.0001-3.9999的随机数,parseInt( )方法能取整数部分,经过该方法:得到0-3之间的随机数,正确;

C选项:Math.random() * (arr.length) 得到0.0001-3.9999的随机数,四舍五入后:得到0-4之间的随机数,错误

D选项:Math.random() * (arr.length-1)得到 0.0001-2.9999的随机数,parseInt( )方法取整后:得到0-2之间的随机数,错误
52.var str = "ha ha xi hei"; str.replace("h",","**"请问str的值为    (A)
A."ha ha xi hei"
B."** ha xi hei"
C."** ** xi hei"
D.1**** **** xi hei"
53.下列哪种写法是正确的对象或者数组创建方法?    D
A.[{name=”zhangsan”},{name= "lisi"}]
B.{[“ name","age","lisi' ,30]}
C.{["name”" zhangsan"],[" age”:18]}
D.[{name:"zhangsan"},{name :"lisi" }
解析:对象是键值对格式,键和值之间用冒号
54.在JavaScript中,下列代码可以实现每隔5秒弹出"5秒到了!"的是   D
A.setTimeut(^alert(5秒到了!)",5) 
B.setTimeOut("ale(5秒到了!)" ,5000) 
C.setInterval("alert('5秒到了!)",5) 
D.setInterval("alert(5秒到了!'",5000)
解析:每隔5秒就弹出,那用的应该是循环定时器,setInterval("alert(5秒到了!",5000)间隔执行,间隔时间为5000毫秒,即5秒
54.var arr = [how,are,you]; arr.reverse(; alert(arr)     B
A.how,are,you
B.you,are,how
C.h,o,w,a,r,e,y,O,u
D.u,o,y,e,r,a,w,o,h
解析:reverse翻转,直接修改原数组
55.要求用JavaScript实现下面的功能:在一个文本框中内容发生改变后,单击页面的其他部分将弹出一个消息框显示文本框中的内容,下面语句正确的是    (A)
A  <input type="text" onClick="alert(this.value)">
B  <input type="text" onChange="alert(this.value)">
C  <input type="text" onChange="alert(text.value)">
D  <input type="text"onClick="alert(value)">
解析:onchange事件,在文本框内容发生变化切光标离开时触发
56.以下ES6字符串拼接中最推荐使用的是以下哪种写法?      B
A  `今天天气`+很好
B  `今天天气${"很好"} `
C  `今天天气`+${"很好"};
D  `今天天气+${很好} `;
57.以下选项中哪个是正则的量词 :    C
A  100
B  num
C  +
D  .
解析:+代表其前边的字符重复1~无限多次
58.以下哪些属性不是事件对象event的属性    C
A  offsetX
B  clientX
C  offsetLeft
D  target
解析:实时获取元素针对于offsetParent的left坐标
59.0.1+0.7 == 0.8  (0.1 + 0.7 计算结果是浮点数)   B
A  true
B  false
C  Infinity
D  NaN
解析:由于计算机存储数字的特点,导致浮点数的计算存在误差。 

0.1+0.7 === 0.7999999999999999

所以结果为false
60.下列代码的执行结果是 var arr = [1,11,2,22,3,4]; arr.sort(); document.write(arr);    A

A  1,11,2,22,3,4
B  1,2,3,4,11,22
C  22,11,4,3,2,1
D  报错
解析:arr.sort();直接用,不能对超过10以上的数字排序,所以会得:1,11,2,22,3,4
61.在HTML页面中包含如下所示代码,则编写Javascript函数判断是否按下键盘上的回车键正确的编码是 (回车键的键盘码是13)<input name="password"; type="text" onkeydown="myKeyDown()">        C
A  function myKeyDown(){ if (window.keyCode==13){  alert("你按下了回车键")}};
B  function myKeyDown(){ if (document.keyCode==13){  alert("你按下了回车键");}}
C  function myKeyDown(){ if (event.keyCode==13){  alert("你按下了回车键")}}
D  function myKeyDown(){ if (keyCode==13){  alert("你按下了回车键")}}
解析:keyCode是event对象下面的属性,keycode等于13说明按下了回车键
62.使用 JavaScript 向网页中输出<h1>hello</h1>,以下代码中可行的是         B

A  <script type="text/javascript">document.write(<h1>hello</h1>);</script>
B  <script type="text/javascript">document.write("<h1>hello</h1>");</script>
C  <script type="text/javascript"> <h1>hello</h1></script>
D  <h1><script type="text/javascript">document.write("hello");</script></h1>
解析:document.write()方法可以打印节点到页面显示,参数是字符串,如有标签需要写完整。document.write("<h1>hello</h1>");正确
63.关于mouseenter的说法,正确的是    B

A  与mouseup效果相同
B  当鼠标指针进入元素时,会发生mouseenter事件
C  和mouseover完全没有区别
D  与mousemove效果相同
解析:和mouseover效果相同,但是比mouseover好,不会引起冒泡
64.有var obj ={ name:”王大锤”, skill:”逗比”, logo:”日和漫画”} 使用循环将对象中的属性值依次取出并打印正确的是   C

A  for(var i=0; i<obj.length; i++){   console.log(obj[i]);  }
B  for(var i=0; i<obj.length; i++){  console.log(obj.index);  }
C  for(var attr in obj){    console.log(obj[attr])   }
D  return
解析:对象没有长度length,所以不能用for循环,需要用for in遍历。故A B错误,C正确
65.下面的 JavaScript 语句中,哪个实现检索当前页面中的表单元素中的所有文本框,并将它们全部清空   D

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

   if(form1.elements[i].type=="text") form1.elements[i].value=""; 

}

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

   if(forms[0].elements[i].type=="text") forms[0].elements[i].value="";

}

C  if(document.form.elements.type=="text") form.elements[i].value=""

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

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

       if(document.forms[i].elements[j].type=="text")     document.forms[i].elements[j].value="";

    }

 }
解析:for(var i=0;i<document.forms.length; i++){  

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

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

 document.forms[i].elements[j].value=""; } 

}

找到所有form里面所有的text文本框,把value设置为空。
66.下列代码的执行结果肯定不会是   document.write(parseInt(Math.random()*3))    D
A  1
B  0
C  2
D  3
解析:左闭右开
67.下列let声明变量说法有误的一项是      D

A  let在某个{}内部使用时,外部不能访问该let声明的变量

B  用 let 声明变量没有声明提升

C  let声明的变量, 变量声明之前该变量不可用,这种现象就称作暂时性死区;

D  let 不允许重复修改变量
解析:不允许修改的是常量

68.下列代码的执行结果是   C

var num1 = 1&&2;

var num2 = true||false; 

var result = num1*num2+3; 

document.write(result);

A  0

B  4

C  5

D  NaN
解析:var num1 = 1&&2; var num2 = true||false; var result = num1*num2+3 document.write(result);

分开运算:

var num1 = 1&&2;结果为2

var num2 = true||false;结果为true

 var result = num1*num2+3为 2*true+3(true会隐式转换为1),结果为5
69.for..of与for..in的区别,以下说法正确的是           (A B C D)

A  for in可以遍历对象,for of不能遍历对象

B  for of可以用来遍历map集合,for in不能遍历map集合

C  for in遍历数组得到的是数组的下标,for of遍历数组得到的是数组的元素

D  for in遍历键  for of遍历值
70.以下对严格模式的说法正确的是               (A B C D)

A  使用"use strict"定义严格模式

B  严格模式可以定义在函数的最顶端或程序的最顶端

C  在严格模式下 在变量a 没有声明时 a = 10 ; 这样的赋值会报错

D  严格模式执行效率更高
71.对事件委托的说法正确的是                (B C D)

A  所有的事件都可以实现事件委托;

B  减少了事件绑定浏览器重绘的次数,提高了程序的执行效率;

C  减少事件的冗余绑定,节约了事件资源。

D  可以解决动态添加的元素节点无法绑定事件的问题;
72.对事件绑定的说法正确的是           (A C)

A  传统事件绑定(dom.onclick),不能同时绑定多个同一事件,后面的会覆盖前面的;

B  利用事件监听不能完成事件的绑定

C  addEventListener()方法可以实现事件的绑定

D  传统事件触发,只能经过冒泡阶段,不经过捕获阶段;
73.事件中会产生哪些兼容问题           (A B C D)

A  事件对象的创建

B  事件冒泡

C  浏览器的默认行为

D  事件委托中事件源的获取
74.以下字符串方法支持正则表达式的有哪些    (B C D)

A  indexOf

B  match

C  replace

D  search
75,下面是正则中有意义的简写的有 :    (A B C D)

A  \d
B  \w
C  \s
D  \S
76.关于  window 对象表述正确的有       (A B C D)

A  window.open 方法 可以弹出一个新窗口
B  window.location.reload()方法可以用来刷新当前页面
C  window.location.href="a.html"的作用都是把当前页面替换成 a.html 页面
D  定义了全局变量 g;可以用 window.g 的方式来存取该变量
77.判断str是否含有字符串"abc",以下不正确的是     (A C D)

A  str.repl(/abc/)!=-1
B  str.indexOf('abc') >= 0
C  str=='abc'
D  'abc'.includes(str)
解析:A选项:字符串没有index()方法,错误;

B选项:indexOf()就是检测数组是否含有某个数的,有返回下标,没有返回-1,正确选项

C选项:str=='abc'这个是检测完全匹配的,不能检测到是否包含有,这个写法要完全匹配才正确,所以错误

D选项:字符串没有includes()方法,这个方法是数组的方法,错误
78.什么属性用于获取 HTML 文件的根节点       A
A. documentElement
B. rootElement 
C. documentNode
D. documentRoot
79.下列哪些不是es6中新增的:    C
    A.Objec.assign
   B.Array.from
   C.forEach
   D. for of 循环
80.下面哪个事件属性可以获取鼠标光标到页面可视区(浏览器边框)水平坐标    A
 A.   clientX
 B.   offsetX
 C.    pageX
 D.    screenX
81.下列代码的执行结果为 function fn(){ console.log( this ) }; fn();    C
A.    fn
B.     undefined
C.     window
D.     windows
82.下列关于事件委托说法错误的是    B
A.     事件委托可以解决事件绑定程序过多的问题
B.     事件委托利用了事件捕获原理
C.     事件委托可以提高代码性能
D.     事件委托可以应用在click,onmousedown事件中
83.有var obj ={ name:”王大锤”, skill:”逗比”, logo:”日和漫画”} 使用循环将对象中的属性值依次取出并打印正确的是

A.     for(var i=0; i<obj.length; i++){  console.log(obj[i]);  }
B.     for(var i=0; i<obj.length; i++){  console.log(obj.index);  }
C.     for(var attr in obj){   console.log(obj[attr])  }
D.     return
  解析:对象没有长度length,所以不能用for循环,需要用for in遍历。故A B错误,C正确
84.下面的 JavaScript 语句中,哪个实现检索当前页面中的表单元素中的所有文本框,并将它们全部清空:
     A.for(var i=0;i< form1.elements.length;i++) {   if(form1.elements[i].type=="text") form1.elements[i].value=""; }

     B.for(var i=0;i<document.forms.length;i++) {   if(forms[0].elements[i].type=="text") forms[0].elements[i].value="";}

     C.if(document.form.elements.type=="text") form.elements[i].value=""

     D  for(var i=0;i<document.forms.length; i++){    for(var j=0;j<document.forms[i].elements.length; j++){   
                      	    if(document.forms[i].elements[j].type=="text")     document.forms[i].elements[j].value="";    } }
85.foo对象有att属性,那么获取att属性的值,以下哪些做法是可以的
A  foo("att")
B  foo["att"]
C  foo{"att"}
D  foo[att
86.在JavaScript中,能够实现页面重新加载的选项是 ( )
A  document.head
B  document.getElementById
C  location.href
D  location.reload()
正确答案: D
解析:
1、reload 方法,该方法强迫浏览器刷新当前页面。 
语法:location.reload([bForceGet]) 
参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页。true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5(“刷新”) 
2、 replace 方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和“后退”来访问已经被替换的URL。 
语法: location.replace(URL) 
通常使用: location.reload() 或者是 history.go(0) 来做。 
此方法类似客户端点F5刷新页面,所以页面method=”post”时,会出现”网页过期”的提示。 
因为Session的安全保护机制。 
当调用 location.reload() 方法时, aspx页面此时在服务端内存里已经存在, 因此必定是 IsPostback 的。 
如果有这种应用: 需要重新加载该页面,也就是说期望页面能够在服务端重新被创建,期望是 Not IsPostback 的。 
这里,location.replace() 就可以完成此任务。被replace的页面每次都在服务端重新生成。 
代码: location.replace(location.href); 
3、返回并刷新页面: 
location.replace(document.referrer); 
document.referrer //前一个页面的URL
不要用 history.go(-1),或 history.back();来返回并刷新页面,这两种方法不会刷新页面。 

4、Javascript刷新页面的几种方法:

1,history.go(0)
2,location.reload()
3,location=location
4,location.assign(location)
5,document.execCommand('Refresh')
6,window.navigate(location)
7,location.replace(location)
8,document.URL=location.href
87.var n=10;setInterval(function(){ alert(n) var n=100; },1000)1s以后弹出n的值为()
A  10
B  100
C  undefined
D  报错
正确答案: C
解析:
计时函数中,定义的变量n有声明提升,被提升到函数作用域顶部,即在alert()之前,只提升声明,变量赋值位置不变,所以为undefined
88.关于函数参数说法正确的是:(       )
A  函数必须有参数
B  函数体中可以使用 arguments 来获取传递的实际参数值
C  函数必须有返回值
D  函数体中可以使用 parameters 来获取传递的实际参数

正确答案: B
解析:
可使用 arguments 在函数体中获取函数调用时的参数列表,在函数调用时,实参个数和形参个数可以不一致。
89.下列表达式运算结果为真的是
A  1<2 && “5”!=5
B  2>2*1 ||”5”==5
C  2>2*1 && 5==5
D  1<2 && ”5”===5
正确答案: B
解析:
==会做隐式转换,答案B中 ,5隐式转换为字符串后和“5”是一样的
90.以下代码 var  arr=[12,23,34]; arr[0]=15; 经过执行后,arr[0]的值是(   )
A  15
B  12
C  报错
D  以上都不对
正确答案: A
解析:
数组修改
91.有语句  
var x=0;   
while(      ){ 
        x+=2; 
 }   

要使while循环体执行10次,空白处的循环判定式应写为

A  x<10
B  x<=10
C  x<20 
D  x<=20 
92.Jq中找到指定div元素id为user错误的
A  $("#user")
B  $("#"+"user")
C  $("div[id=user]")
D  $("div[id==user]")
正确答案: D
解析:元素获取
93.下列jquery对象方法中返回布尔值的是

A  not()
B  has()
C  hasClass()
D  fiter()
正确答案: C
解析:hasClass()有类名返回true,没有返回false
94.有代码 var name = 'global'; var obj = {    name : 'obj',    dose : function(){        this.name = 'dose';        return function(){            return this.name;        }    } } console.log(obj.dose().call(this)); 问在控制台打印的结果为

A  global
B  obj
C  dose
D  undefined
正确答案: A
解析:
obj.dose().call(this)
obj.dose()返回的是函数function(){            return this.name;        }    
call(this)是调用了函数function(){            return this.name;        }  
并且使用window改变了函数中的this,所有this.name就是window.name
95.下面的this指向不是window的是那个

A  全局中的this
B  普通函数,直接调用的函数中获取的this
C  按钮侦听的事件函数中的this
D  函数通过call调用时,第一个参数填入null,函数中的this

正确答案: C
解析:鼠标事件中this指向被侦听的对象
96.以下不是闭包特点的是

A  函数嵌套函数
B  函数内部可以引用外部的参数和变量
C  参数和变量不会被垃圾回收机制回收
D  返回的函数可以不用存储在外部变量中

正确答案: D
解析:返回的函数必须存储在外部变量中
97.下列输出结果正确的是 var a = 0; var obj = { fn : function(a){ a = 2; a --; } } obj.fn(a); alert(a);
A  0
B  1
C  2
D  报错
正确答案: A
98.下列箭头函数书写正确的是
A  0--{}
B  a,b => {}
C  _ =>
D  caller
正确答案: C
99.JS中,下面哪个不是创建函数的方式
A  声明函数
B  函数表达式
C  Function构造函数
D  class函数
正确答案: D
100.关于jQuery框架,下列描述错误的是

A  jQuery框架支持链式写法
B  jQuery框架实现了跨浏览器的兼容包括IE低版本
C  jQuery1.x版本支持低版本IE浏览器
D  jQuery不能操作CSS3属性

正确答案: D
101.什么是闭包

A  闭包是指有权访问另一个函数作用域中的变量的函数
B  闭包是指有权访问任意函数作用域中的变量的函数
C  闭包是指有权访问全局个函数作用域中的变量的函数
D  闭包是指有权访问局部个函数作用域中的变量的函数

正确答案: A
102.混合继承是

A  混合了构造函数继承和原型链继承
B  其它都不对
C  混合了es6继承和原型链继承
D  混合了构造函数继承和es6继承

正确答案: A
103.$(document).ready()和window.onload 有什么区别

A  window.onload方法是在网页中所有的元素完全加载到浏览器后才执行,$(document).ready() 可以在DOM载入就绪是就对其进行操纵
B  没有区别
C  $(document).ready()方法是在网页中所有的元素完全加载到浏览器后才执行,$(document).ready() 可以在DOM载入就绪是就对其进行操纵
D  两者作用不一样

正确答案: A
解析:onload包含文档和资源加载完毕,ready指文档加载完毕
104.function People(name, age) {    this.name = “xixi”,    this.age = 18    return {} } var obj = new People();  People 函数被new调用之后的返回值(obj)是? 

A  {}
B  {name: “xixi” age: 18}
C  报错
D  函数体本身

正确答案: A
解析:return 对象比实例返回优先级更高
105.下面函数运行的结果是 function fn6(fn) {    return fn(3,5); } function fn7(a,b) {     return a+b; } function fn8(a,b) {     return a*b; } var s=fn6(fn7); var s1=fn6(fn8); console.log(s,s1);

A  3,5
B  5,3
C  8,15
D  15,8

正确答案: C
解析:这是一个回调函数的使用
106.以下运行的结果是false的是 function Box(){this.name='zhang';}     function Desk(){this.age=100;}     function Table(){this.lever=1000}     Desk.prototype=new Box();//通过原型链继承     var desk=new Desk();     var table=new Table();

A  alert(table instanceof Object)
B  alert(desk instanceof Box);
C  alert(Desk instanceof Box);
D  alert(desk  instanceof Desk );

正确答案: C
解析:A. 一切事物皆对象			B. Dest 继承了 Box, 所以正确	
C. Desk 是 Function的实例,和Box无关		D. desk 是 Desk 的实例
107.以下哪条语句会产生运行错误
A  var obj =()
B  var obj=[]
C  var obj ={}
D  var obj ={[]}

正确答案: A,D
108.使用new运算符生成一个实例时,需要执行的步骤有那些

A  创建一个新对象
B  改变this指向
C  执行构造函数里的代码
D  返回一个对象

正确答案: A,B,C,D
解析:当代码 new Foo(...) 执行时,会发生以下事情:
一个继承自 Foo.prototype 的新对象被创建。
使用指定的参数调用构造函数 Foo ,并将 this 绑定到新创建的对象。new Foo 等同于 new Foo(),也就是没有指定参数列表,Foo 不带任何参数调用的情况。
由构造函数返回的对象就是 new 表达式的结果。如果构造函数没有显式返回一个对象,则使用步骤1创建的对象。(一般情况下,构造函数不返回值,但是用户可以选择主动返回对象,来覆盖正常的对象创建步骤)

109.svn在进行版本管理时,可以实现的功能有

A  更新至某个指定的版本
B  对某个文件进行锁定
C  创建多个分支
D  对某个文件解除版本控制
正确答案: A,B,C,D
解析:四个选项都是svn可以实现的
110.以下关于jquery的说法正确的是

A  jquery可以和原生js结合一起使用
B  jquery对象和原生DOM对象不能相互转换
C  jquery对象可以使用原生js的方法
D  原生DOM对象不能使用jquery对象方法

正确答案: A,D
解析:jquery对象不可以使用原生js的方法
111.以下说法正确的是

A  类是对象的抽象化
B  对象是类的具象化
C  对象是类的实例化
D  对象就是类

正确答案: A,B,C
解析:在js中,类是构造函数
112.以下哪些属性是defineProperty可以定义的
A  Enumerable
B  Configurable
C  Writable
D  Value
正确答案: A,B,C,D
113.案例代码如下: <form>    <div class="big">大字体</div>          <div class="small">小字体</div> </form>     请选取文本是"大字体"的div对象

A  $("div.big");
B  $("div   .big")
C  $("div:contains('大字体')");
D  $("form > div.big");

正确答案: A,C,D
解析:此题考察不同选择器的用法,B选项是选取div里具有big类名(后代)的jquery对象集合
114.关于prototype原型和原型链说法正确的是
A  Javascript的继承机制基于原型,而不是Class类
B  凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象
C  普通对象没有prototype,但有__proto__属性
D  prototype属性(对象)会默认获得一个constructor(构造函数)属性,这个属性是一个指向prototype属性所在函数的指针

正确答案: A,B,C,D
115.$(this) 和 this 关键字在 jQuery 中有何不同

A  $(this) 和 this 使用上没有什么不同
B  $(this) 返回一个 jQuery 对象,你可以对它调用多个 jQuery 方法
C  this 代表当前元素,它是 JavaScript 关键词中的一个,表示上下文中的DOM 元素
D  this 可以调用 jQuery 的click() 方法

正确答案: B,C
解析:jquery对象只能访问jquery提供的方法,原生DOM对象不能直接访问jquery方法
116.在php中,下列哪些是输出(打印)函数。(  )

A  print
B  echo
C  print_r
D  write
正确答案: A,B,C
117.下面哪些是mysql的常用数据类型(   )

A  varchar
B  int
C  float
D  text
正确答案: A,B,C,D
118.jq中关于操作元素节点class属性的操作有

A  addClass
B  removeClass
C  attr("class", "box")
D  setClass

正确答案: A,B,C
解析:A是添加类名,B是删除类名,C是切换类名
119.jq中法可以发起ajax请求的方法有
A  $.ajax
B  $.get
C  $.post
D  $().load

正确答案: A,B,C,D
解析:识记题 $.ajax()jquery的底层封装 $.get() 封装get请求 $.getJSON()可以做跨域请求
120 .git切换分支的命令是
A  git init
B  git clone
C  git checkout
D  git add
121.关于require.js描述错误的是
A  用于解决多个js文件可能有依赖关系
B  require.js推崇依赖前置,在定义模块的时候就要声明其依赖的模块
C  require.js采用异步模块定义 
D  js加载的时候浏览器会停止页面渲染,加载文件越多,页面失去响应时间越长
122.   如何在SASS中引用父选择器:(       )
A  &
B  $
C  @
D  #
123.sass支持的语法有哪些
A  scss
B  缩进语法
C  JS语法
D  选项
124.jQuery中,哪些方法可以创建插件函数?
A  $.extend({abc:function(){})
B  $.fn.extend({abc:function(){}})
C  $.abc = function(){}
D  $.fn.abc = function(){}
125.jq中,哪些能返回第一个li?
A  $('li:eq(0)')
B  $('li').eq(0)
C  $('li:first')
D  $('li:one')
  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值