杰普javascript试题一讲解
javascript笔试题及答案
javascript笔试题及答案### JavaScript 笔试题及答案#### 题目一:数组去重问题描述:给定一个数组,编写一个函数来移除数组中的所有重复元素,只保留唯一的元素。
代码实现:```javascriptfunction uniqueArray(arr) {return [...new Set(arr)];}// 测试console.log(uniqueArray([1, 2, 2, 3, 4, 4, 5])); // 输出: [1, 2, 3, 4, 5]```#### 题目二:深拷贝对象问题描述:编写一个函数来实现对象的深拷贝,确保拷贝后的属性和原对象的属性是独立的。
代码实现:```javascriptfunction deepClone(obj) {if (obj === null || typeof obj !== 'object') {return obj;}let cloneObj = Array.isArray(obj) ? [] : {};for (let key in obj) {if (obj.hasOwnProperty(key)) {cloneObj[key] = deepClone(obj[key]);}}return cloneObj;}// 测试let original = { a: 1, b: { c: 2 } };let copied = deepClone(original);copied.b.c = 3;console.log(original.b.c); // 输出: 2```#### 题目三:实现 Promise.all问题描述:实现一个函数,该函数接受一个 Promise 数组作为参数,并返回一个新的 Promise,当所有输入的 Promise 都成功时,返回的 Promise 将被解决。
代码实现:```javascriptfunction customPromiseAll(promises) {return new Promise((resolve, reject) => {let resolvedCount = 0;let result = [];promises.forEach((promise, index) => {promise.then(value => {result[index] = value;resolvedCount++;if (resolvedCount === promises.length) {resolve(result);}}).catch(reject);});});}// 测试customPromiseAll([Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)]).then(console.log); // 输出: [1, 2, 3]```#### 题目四:计算斐波那契数列问题描述:编写一个函数来计算斐波那契数列的第 n 项。
常见js面试题及答案
常见js面试题及答案1. 解释JavaScript中的闭包是什么?闭包是一个函数和声明该函数的词法环境的组合。
闭包让你可以从内部函数访问外部函数作用域中的变量,即使外部函数已经执行完毕。
2. JavaScript中的`var`、`let`和`const`之间有什么区别?- `var`:函数作用域或全局作用域,变量提升。
- `let`:块级作用域,没有变量提升。
- `const`:块级作用域,声明时必须初始化,且值不可改变。
3. 如何判断一个对象是否为数组?可以使用`Array.isArray()`方法来判断一个对象是否为数组。
4. 解释JavaScript中的原型继承。
原型继承是一种基于原型链的继承方式,每个对象都有一个原型对象,对象的属性和方法可以通过原型链向上查找。
5. 什么是事件冒泡和事件捕获?- 事件冒泡:事件从最具体的元素开始,逐级向上传播到最不具体的节点。
- 事件捕获:事件从最不具体的节点开始,逐级向下传播到最具体的元素。
6. 如何实现深拷贝?可以使用递归复制对象的每个属性,对于数组和对象类型的属性,继续递归拷贝。
7. 解释JavaScript中的异步编程。
异步编程允许程序在等待某些操作完成时继续执行其他任务,常见的异步编程模式有回调函数、Promise、async/await等。
8. 什么是IIFE?IIFE(Immediately Invoked Function Expression)是一种立即执行的函数表达式,它在定义后立即被调用。
9. 如何实现防抖和节流?- 防抖(Debounce):在指定时间内,连续触发事件只执行最后一次。
- 节流(Throttle):在指定时间内,只执行一次事件。
10. 解释JavaScript中的事件循环。
事件循环是JavaScript运行时环境的一部分,它负责管理调用栈和任务队列,确保异步任务在适当的时候执行。
11. 什么是Promise?Promise是一个代表异步操作最终完成或失败的对象,它有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。
JavaScript程序设计试题一及答案
C.在相同域名下,外层网页脚本可以获取IFrame网页内的对象
D.可以通过脚本调整IFrame的大小
9、关于表格表述正确的有:()
A.表格中可以包含TBODY元素B.表格中可以包含CAPTION元素
C.表格中可以包含多个TBODY元素D.表格中可以包含COLGROUP元素
E.表格中可以包含COL元素
10、关于IE的window对象表述正确的有:()
A. window.opener属性本身就是指向window对象
B. window.reload()方法可以Fra bibliotek来刷新当前页面
C. window.location=”a.html”和window.location.href=”a.html”的作用都是把当前页面替换成a.html页面
}
newstr=newstr.substring(0,newstr.length-1)
return newstr;
}
return str.split(",").reverse().join(",");
B. javascript是网景公司开发的一种Java脚本语言,其目的是为了简化Java的开发难度
C. FireFox和IE存在大量兼容性问题的主要原因在于他们对javascript的支持不同上
D. AJAX技术一定要使用javascript技术
5、foo对象有att属性,那么获取att属性的值,以下哪些做法是可以的:()
3、请选择结果为真的表达式:()
A. null instanceof Object B. null === undefined
js 面试题及答案
js 面试题及答案JavaScript(简称 JS)是一种基于对象和事件驱动的脚本语言,常用于网页开发。
在进行JS开发时,经常需要面试来选择优秀的候选人。
本文将针对常见的JS面试题提供详细的答案,帮助读者更好地准备面试。
一、变量和数据类型1. 什么是变量?变量是用于存储和表示数据的一个名字。
在JS中,可以使用var、let或const关键字来声明一个变量。
2. 有哪些常见的数据类型?JS中有七种常见的数据类型,分别是:字符串(string)、数字(number)、布尔值(boolean)、对象(object)、数组(array)、Null和Undefined。
3. Null和Undefined有什么区别?Null表示一个空对象指针,也可以用于表示空值;Undefined表示一个未定义的值,即变量声明但未被赋值。
二、运算符和流程控制1. 请解释一下什么是短路求值。
短路求值是指在进行逻辑与(&&)和逻辑或(||)运算时,如果能根据前面的条件判断出最终结果,则停止执行后续的条件判断。
2. 请解释一下什么是深拷贝和浅拷贝。
深拷贝是指创建一个新的对像或数组,将原来对象或数组中的值完全复制到新对象或数组中。
浅拷贝是指将原对象或数组中的引用复制给新对象或数组。
3. 如何判断一个变量的具体数据类型?可以使用typeof运算符来判断一个变量的具体数据类型。
例如,typeof 5将返回"number"。
三、函数和作用域1. 什么是闭包?闭包是指一个函数能够访问和操作在其词法作用域外的变量。
2. 匿名函数和具名函数有什么区别?匿名函数没有名字,通常用于声明立即执行的函数。
具名函数则有名字,能够在定义后被多次调用。
3. 请解释一下什么是作用域链。
作用域链是指在函数执行期间,JS引擎按照函数的嵌套关系,从内层函数到外层函数依次查找变量的过程。
四、面向对象编程1. 什么是原型?原型链又是什么?每个对象都有一个原型对象,在没有定义某个属性或方法时会根据原型链进行查找。
Javascript综合复习试题(卷)大全和答案解析
Javascript综合复习试题(卷)大全和答案解析Javascript综合复习题【共116题】每份考卷中javascript只占一半。
题型和分数如下:1. 单选题:10题*1分=10分2. 填空题:5题*1分=5分3. 程序阅读题:2题*4分=8分4. 程序实现题:2题*5分=10分5. 简答题:3题*5分=15分合计:48分,共22题。
剩余52分,23题是另一门课程。
【提示:本综合复习题的目的是让同学们多见识各种题目。
选择题、填空题以及程序阅读题可以仔细做,对于程序实现和简答题建议先理解再记忆,切记死背答案。
】第一部分:单选题1. Javascript中,以下哪条语句一定会产生运行错误?答案(B )A、var _变量=NaN;B、var Obj = [];C、var obj = //;D、var obj = {};2. 以下两个变量a和b,a+b的哪个结果是NaN ?答案( C )A、var a=undefind; b=NaNB、v ara= '123' ; b=NaNC、var a =undefined , b =NaND、var a=NaN , b='undefined'3. var a=10; b=20; c=4; ++b+c+a++ 以下哪个结果是正确的?答案(B )A、34B、35C、36D、374. Javascript中,以下代码运行后变量y的值是:答案( D )var x = [ ‘ abcde ' , 123456];var y = typeof typeof x[1];A、"function"B、"object"C、"number"D、"string"5. Javascript中,以下那两个变量的值不是==: 答案( B )A、var a=0 , b=-0;B、var a=NaN , b=NaN;C、var a=nullb=un defi ned;D、var a=[] , b=false;6. Javascript中,以下声明变量语句中哪个不正确?答案(D )A、var aa;B、var bb=3; cc='good';C、var dd = ee = 100;D、var ff=3, gg='he's good';7. Javascript中,foo对象有att属性,那么以下获取att属性值的表达式哪个是错误的?答案(C )A、foo.attB、foo["att"]C、foo{"att"}D、foo["a"+"t"+"t"]8. Javascript中,以下代码运行后变量y的值是:答案(B )var x = [typeof x, typeof y][1];var y = typeof typeof x;A、”n umber"B、"string"C、"undefined"D、"object"9. 下面哪个javascript变量名称不合法( D )A. stri ngB. le ngthC.非法字符D.this10. 下面哪个描述不正确(B )A. NaN!=nullB.NaN==NaNC.{}!=falseD. null!=false11. var arr = new Array(new Array(9,0,3,4,5) , ['a' , 'b' , 'c'] , newArray(2,9,0,6));则arr[1][3]= ( D )A.cB.6C.4D.u ndefi ned12. 有如下代码:var arr = new Array(9);arr[0]=1;arr[2]=2;该数组的length属性值为(D )A、2B、10C、8D、913. 有一个submit按钮,在这个按钮控件上添加哪个事件不起作用? ( D)A.onM ouseoutB.onm ouseoverC.on clickD.on submit14. 有一个变量var a=typeof string + 100+50 + NaN,以下哪个是alert(a)的结果?( C )A.fu nctio n150NaNB. fun ctio n10050NaNC. un defi ned10050NaND. NaN15.以下代码,哪个结果是正确的?(A)var str='123abc';str += str.replace('abc', ”);alert(str);A.123abc123B. 123abcC.123D. abc16. 以下哪个结果是正确的? ( C )var a=100 ,b="100.5a6", c="100.1";alert(Math.max(a , b ,c));A.100B. 100.1C.NaND.u ndefi ned17. 以下哪个语句能正确弹出结果:(D )A. alert(new Date(2011 , 12,25).getDay());B. alert(new Date(2011 , 12,25,5).getDay());C. alert(new Date(2011 , 12,25,5,5,9).getDay());D. 以上三个结果都正确18. 以下代码正确的运行结果是?( C )var arr=[0,1,2,3,4,5,6];arr2 = arr.slice(2,5);alert(arr2);A. 1,2,3B. 1,2,3,4C. 2,3,4D. 2,3,4,519. 下面哪个描述不正确(B )A. NaN!=nullB.nu ll!=u ndefi nedC.{}!=falseD.n ull!=false20. var a = new Array(new Array(9,0,3,6,5), new Array(2,9,0,6));则a[0][3]=21. 有一个变量var a=(100+50)+undefined+NaN ,以下哪个是(B )A.150u ndefin edNaNB.NaNC.150u ndefi ned10050u ndefi nedNaN22. 以下代码,哪个结果是正确的?(C )var a='123.5abc',b='100abc'; alert(parse In t(a)+Number(b));A.123100abcB. 123.5abc100abcC.NaN23. 以下哪个结果是正确的? ( B )var a=100,b="100.56",c="80"; alert(Math.max(a , b ,c)); A.100B. 100.56C.NaN24. 以下哪个正则表达式符号的描述正确? ( C )A. * 等同{1,}B. + 等同{0,}C. ?等同{0,1}D. \W 等同[0-9A-Za-z_] 25. 请选择结果为真的表达式:( C )A. typeof null !="object"B. n ull===un defi nedA.3B.6C.5D.Oalert(a)的结果?D.D. 223D.80C. 1 == "01.00"D. NaNNaN26. 以下哪个单词不属于javascript保留字:(C )A. withB. in sta nceofC. baseD. void27. 设置下拉列表框中某项被默认选中的属性是(C )A.checkedB. checkC. selectedD.select28. nodeType属性可用于获取节点类型,如果返回值为1,则表明该节点为(B )。
js基础试题及答案(一)
js基础试题及答案(⼀)⼀、单选题(共30题,每题2分)1.如下代码,会弹出来是什么 var num1=“1” ;var num2=1 alert(num1-num2);A 0B 11C 1+1D 报错正确答案: A解析:相减,进⾏隐⼠转换,全部为数字2.如下代码,会弹出来是什么 var num1=“hi” var num2=1 alert(num1+num2);A hi1B 1C hiD 报错正确答案: A解析:字符串拼接3.在JS中,“1555”+3的运⾏结果是A 1558B 1552C 15553D 1553正确答案: C解析:155534.parseInt(“20.2aa”) 返回值为A 20B 20.2C 20.2aaDNaN正确答案: A解析:205.分析输出结果是function sum(a){ a = a + 2; }var res = sum(2);console.log(res);A 2B 4C NaND undefined正确答案: D解析:undefined6.var a = false;var x = a? “A” : “B”;最终x的值为A AB BC trueD false正确答案: B解析:B7.下列变量名合法的是A 5showB returnC $userD var正确答案: C解析:变量名不能以数字开头,A错;BD是关键字,C正确8.需要在 html 页⾯上引⽤脚本⽂件myJs.js,下列语句中,正确的是A <script href="myJs.js" type="text/javascript" />B <script src="myJs.js" type="text/javascript" />C <script href="myJs.js" type="text/javascript"></script>D <script src="myJs.js" type="text/javascript"></script>正确答案: D解析:script 是双标签,src引⼊⽂件9.代码的输出结果是var a = 3;var b = 2;var c = (a+2)/b;document.write ©;A 2.0B 2.5C 16.0D (3+2)/2正确答案: B解析:js弱类型,(2+3)/2=2.510.代码的输出结果是function add(){undefinedvar sum = 1 + 2 ;console.log( sum ) ;}console.log(sum) ;A 输出两个3B 输出⼀个3C 程序报错D 输出⼀个undefined正确答案: C解析:sum是局部变量,全局环境未定义11.typeof null 检测出来的数据类型是A nullB numberC objectD undefined正确答案: C解析:null是空对象12.parseInt(“12a”)的结果是A NaNB 12aC 0D 12正确答案: D解析:因为parseInt()的转换规则:跳过开头结尾的空字符,从左到右依次执⾏转换,碰到第⼀个不认识的数字则停⽌,所以答案为D13.下列的哪⼀个表达式将返回假A !(3<=1)B (4>=4)&&(5<=2)C 2<3D (2<3)||(3<2)正确答案: B解析:&& 左右有⼀侧为假 ;整个表达式就为假14.关于循环下列说法正确的是A while循环⾄少会运⾏⼀次B do…while循环⾄少会运⾏⼀次C for循环⾄少会运⾏⼀次D switch循环⾄少会运⾏⼀次正确答案: B解析:do…while 是先执⾏后判断,不管条件成不成⽴,都会⾄少执⾏⼀次15.for(var i = 0; i < 10; i++){ i++; }console.log(i)的值是?A 10B 9C undefinedD 7正确答案: A解析:i++ 最终为10; 不⼩于10;结束for循环;此时i为1016.下⾯代码的执⾏结果为var a = 20;function foo(){undefinedconsole.log(a) ;var a = 10 ;console.log(a) ;}foo();A 20 10B 10 10C 20 20D undefined 10正确答案: D解析:函数中的a会变量提升;所以第⼀个a是undefined;a 赋值了10;所以a 是10;D选项是正确的17.有下述JS代码:var x = 10; var y = 20;var z = x<y ? x++ : ++y ;console.log( ‘x=’ + x + ‘; y=’ + y + ‘; z=’ + z);其运⾏结果是A x=11; y=21; z=11B x=11; y=20; z=10C x=11; y=21; z=10D x=11; y=20; z=11正确答案: B解析:x=11; y=20; z=1018.查看如下代码:function f1( ){undefinedconsole.log(x);var x = 10;123++x;console.log(x);}f1();执⾏后的结果是A 程序错误B undefined 和 10C undefined 和 11D 10 和 11正确答案: C解析:undefined 和 1119.引⽤名为"xxx.js"的外部脚本的正确语法是ABCD正确答案: C解析:JS脚本引⼊⽤src属性20.如下代码,会弹出来是什么 var a; alert(a);A 报错B a is not defineC undefinedD 0正确答案: C解析:变量提升21.如下代码,会弹出来是什么 alert(a);var a=12;A 报错B a is not defineC undefinedD 12正确答案: C解析:变量提升22.的组成不包括A ECMAScriptB DOMC BOMD document正确答案: D解析:23.console.log( typeof 123 === “number”)A 报错B trueC falseD 123正确答案: B解析:得到字符串的"number", 所以类型和值都相等为全等24.代码的输出结果是function fnMax(a,b,c){undefinedvar a,b,c;var max = a > b ? a : b;if(c > max){ max = c; }alert(max);1234567}fnMax(8,2,5);A 5B 2C 8D 10正确答案: C解析:8,2,5中的最⼤值为825.以下哪项不属于javascript的特征A Javascript是⼀种脚本语⾔B Javascript是事件驱动的C Javascript代码需要⼿动编译以后才能执⾏D Javascript是独⽴于平台的正确答案: C解析:JavaScript是基于事件驱动并独⽴于平台的脚本语⾔26.如下代码,会弹出来是什么 var num1=“1” ;var num2=1 alert(num1-num2);A 0B 11C 1+1D 报错正确答案: A解析:相减,进⾏隐⼠转换,全部为数字27.console.log(typeof typeof 123456),在控制台中打印什么内容A 123456B numberC stringD object正确答案: C解析:第⼀个 typeof 123456 返回 “number”然后typeof “number” 返回"string"28.console.log( (2==true)+1 )会弹出A trueB falseC 1D 2正确答案: C解析:29.如下代码,会弹出来是什么 var num1=“1”; var num2=1 alert(num1+num2)A 2B 11C 1+1D 报错正确答案: B解析:隐⼠转换30.下列表达式结果为false的是A !""B !{}C !undefinedD !!5正确答案: B解析:使⽤if去判断⼀个空对象结果仍然是true⼆、多选题(不定项选择)(共20题,每题2分)1.下⾯哪些是循环语句A whileB do…whileC forD switch正确答案: A,B,C解析:while、do…while、for2.下⾯哪些属于选择结构控制语句:A ifB forC switchD while正确答案: A,C解析:固定关键字3.下⾯选项中数据类型为数字类型的有A “1”B 1C trueD NaN正确答案: B,D解析:1、NaN4.下⾯语句得到值为true的有A “1” == 1B 1===“1”C “2” > “19”D “2”==19正确答案: A,C解析:⽐较相等两个等号会有隐式类型转换,只需值相等即可,三个等号必须类型和值同时相等结果才为true,故A对B错字符串之间的⼤⼩⽐较是按照ACSII编码⼤⼩,“2”的ASCII码⽐“1”的ASCII⼤,所以C正确数字跟字符串⽐较⼤⼩会将字符串隐式转换为数字,即 2>19,D选项错误5.下⾯语句得到值为数字2的有A 1 + ‘1’B 8 % ‘3’C ‘1’ + ‘1’D ‘4’ - 2正确答案: B,D解析:A是字符串拼接,结果为:“11”; B“3”会隐式转换位3,结果为8%3=2;C为字符串拼接,结果为 “11”; D“4”会隐式转换为4,结果为4-2=2故,答案为BD6.下⾯哪些是关键字A varB functionC caseD 以上都是关键字正确答案: A,B,C,D解析:var申明变量的关键字;function申明函数的关键字;case选择分⽀的关键字故答案为ABCD7.以下是JavaScript基本数据类型的是A ObjectB numberC stringD boolean正确答案: B,C,D解析:Object是引⽤类型8.以下运算符正确的是A ++B –C &&D >=正确答案: A,B,C,D解析:⾃增、⾃减、逻辑与、⼤于或等于9.JavaScript运算符都有哪些A 赋值运算符B 算术运算符C 关系运算符D 逻辑运算符正确答案: A,B,C,D解析:赋值运算符=、数学运算符+ - * / %、⼀元运算符++ --、逻辑运算符&& || !10.JavaScript的基本组成包括A DOMB BOMC jQueryD ECMAScript正确答案: A,B,D解析:JavaScript的基本组成包括DOM、BOM和ECMAScript11.以下哪些属于循环语句A switchB forC whileD do…while正确答案: B,C,D解析:循环语句 有三个 for while do…while; switch是选择结构12.函数的参数分为A 形参B 实参C 有参D ⽆参正确答案: A,B解析:参数 分为实参和形参13.以下哪些属于基本数据类型A objectB booleanC stringD number正确答案: B,C,D解析:null 和 undefined是特殊数据类型;14.函数中实参可以是A 常量B 变量C 只能是变量D 只能是常量正确答案: A,B解析:实参可以是变量 常量 ,形参只能是变量15.逻辑运算符有A >B <C ||D &&正确答案: C,D解析:逻辑运算符有三个 && || !;AB选项是⽐较16.javascript由哪⼏部分组成A jsB ECMAScriptC DOMD BOM正确答案: B,C,D解析:BCD17.下⾯声明变量及赋值的写法正确的有A var _myName = 12aB var _myName = “12a”C var myName = 12D var $myName = true正确答案: B,C,D解析:A选项 12a是字符串,不是纯数字,字符串要⽤引号18.下⾯哪些⽅法可以实现将字符串"123",变成数值型A Number()B parseInt()C parseFloat()D Boolean()正确答案: A,B,C解析:Boolean()转成布尔值19.下⾯哪些属于关系运算符?A >B >=C <D <=正确答案: A,B,C,D解析:关系20.下⾯哪些属于逻辑运算符?A &&B ||C !D 以上都不正确正确答案: A,B,C解析:逻辑运算符(⼆)⼀、单选题1.已知数组 var arr = [1,2,3,4,5],执⾏ arr.pop() 后,数组的长度是A 4B 5C 6D 7正确答案: A解析:arr.pop()是删除数组后⼀个数据2.var array = new Array(5); array.push(8); 数组array的长度是A 5B 6C 7D 8正确答案: B解析:new Array(5);创建⼀个长度为5的空数组,push⽅法在数组后增加⼀位,结果为63.3秒后,图⽚消失,应该使⽤下⾯哪个⽅法A hide()B setTimeout()C ClearIntervalD clearTimeout()正确答案: B解析:setTimeout延时器4.下⾯哪⼀个⽅法可以查找 class 名为 “xm”的元素A document.getElementsByClassName(“xm”)B document.getElementsByName(“xm”)C document.Class(“xm”)D document.ByName(“xm”)正确答案: A解析:document.getElementsByClassName(“xm”);获取class为xm的元素5.如果弹出⼀个可输⼊信息的框,可以使⽤哪⼀个⽅法A confirm()B prompt()C alert()D以上都对正确答案: B解析:prompt6.如何快速的将数组arr清空A arr.length = 0B arr = “”C arr.length = “”D arr.length = []正确答案: A解析:强⾏将数组的length设置为0,可以清空数组7.Math.floor(-3.14) 的结果是( )A -3.14B -3C -4D 3.14正确答案: C解析:8.下⾯哪个是window窗⼝⼤⼩改变触发的事件A onmouseoverB onresizeC onmouseoutD onclick正确答案: B解析:19.判断下⾯的代码输出为 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 6B NaNC 22D 26正确答案: A解析:10.请阅读下⾯代码 var num = Math.floor(Math.random()*100); 上述代码中num的取值范围是A 0–100B 1–99C 0–99D 1–100正确答案: C解析:公式:Math.random()*(max-min+1)+min11.关于nodeName描述错误的是A 元素节点的节点名始终是标签名B ⽂本节点的节点名始终是#documentC ⽂本节点的节点名始终是#textD 属性节点的节点名始终是属性名正确答案: B解析:⽂本节点名称是#text请阅读列代码⽂本list1list2list3以上代码的输出结果是Alist1B " "Clist2Dlist3正确答案: A解析:list.childNodes[0]为⽂本节点13.下列哪个对象不属于bom对象A documentB locationC historyD offsetWidth正确答案: D解析:14.关于JavaScript中的Math对象的说法,正确的是A Math.ceil(512.51)返回的结果为512B Math.floor( )⽅法⽤于对数字进⾏下舍⼊C Math.round(-512.51)返回的结果为-512D Math.random( )返回的结果范围为0-1,包括0和1正确答案: B解析:15.var arr = [3,4,6],删除数组中的最后⼀项A arr.pop()B arr.pop(6)C arr.shift()D arr.shift(6)正确答案: A解析:16.var arr = [5,3,2,4]; var res = arr.splice(0); console.log(res) 结果是A [5,3,2,4]B [5]C [5,3]D [2,4]正确答案: A解析:17.实现数组的倒序⽅法A reverse()B sort()C join()D find()正确答案: A解析:18.var str = “qianfengana”; var res = stIndexOf(“a”); console.log(res); 输出的结果是A 9B 2C 7D 10正确答案: D解析:19.添加节点的⽅法A ⽗节点.appendChild()B ⽗节点.append()C ⽗节点.prepend()D ⽗节点.prependChild()正确答案: A解析:20.var arr = [how,are,you]; arr.reverse(); alert(arr)A how,are,youB you,are,howC h,o,w,a,r,e,y,o,uD u,o,y,e,r,a,w,o,h正确答案: B解析:reverse翻转,直接修改原数组21.下列关于innerHTML和innerText描述正确的是A innerHTML会被解析成html标签渲染,innerText是纯⽂本显⽰B innerHTML会发⽣转义如 < 会被转换成 < ,innerText原样渲染C innerHTML和innerText都会被解析成html标签渲染D innerHTML和innerText都是纯⽂本显⽰正确答案: A解析:innerhtml不会发⽣转义22.关于setInterval(check ,10)中说法正确的是A 程序循环执⾏10次B check函数每10秒执⾏⼀次C 10做为参数传给函数checkD check函数每10毫秒执⾏⼀次正确答案: D解析:基本定时器概念23.获取从1970年/01/01 午夜到当前时间的毫秒值A getTime()B getDay()C setDate()D getDate()正确答案: A解析:A24.var arr = [100,4,2,3,200]; alert(arr.sort(function(a,b){return b - a;}))A 2,3,4,100,200B 200,100,4,3,2C 100,2,200,3,4D 4,3,200,2,100正确答案: B解析:解析:sort添加了⽐较器函数,并且b-a是降序排序25.在JavaScript中,下列关于window对象⽅法的说法错误的是A window对象包括location对象、history对象和document对象B window.onload 事件绑定的函数会在⼀个该页⾯加载完成后执⾏C window.open( )⽅法⽤于关闭指定的URL路径D window.close( )⽅法⽤于关闭浏览器窗⼝正确答案: C解析:open() ⽅法⽤于打开⼀个新的浏览器窗⼝或查找⼀个已命名的窗⼝。
javascript笔试题
javascript笔试题本篇文章将为您介绍一些JavaScript笔试题,供您测试和加深对JavaScript的理解和应用。
以下是一些常见的JavaScript笔试题及其解析。
1. 请解释JavaScript的事件冒泡和事件捕获是什么?事件冒泡和事件捕获是两种处理事件的不同策略。
事件冒泡是指当一个元素触发了某个事件时,该事件会从最内层的元素开始,逐级向外传播,直到传播到最外层的元素。
而事件捕获则是从最外层的元素开始,逐级向内传播,直到传播到最内层的元素。
2. 请解释JavaScript中的闭包是什么?闭包是指一个函数可以访问并操作其外部函数中的变量,即使外部函数已经执行完毕。
闭包在JavaScript中非常常见,可以用来创建私有变量、延迟执行函数等。
3. 请解释什么是原型链?原型链是JavaScript中实现继承的一种方式。
每个对象都有一个原型(prototype)属性,该属性指向一个对象。
当读取一个对象的属性时,如果该对象本身不存在该属性,JavaScript会沿着原型链向上查找该属性,直到找到或者到达原型链的顶端(null)为止。
4. 请解释JavaScript中的事件委托是什么?事件委托是一种常见的优化技术,通过将事件监听器绑定到父元素上,利用事件冒泡机制来触发事件。
这种方式可以减少对DOM元素的监听器数量,提高性能,尤其在需要对大量子元素添加事件监听器时非常有效。
5. 请解释JavaScript中的严格模式(strict mode)是什么?严格模式是一种可以帮助开发者编写更规范、更安全JavaScript代码的一种模式。
启用严格模式后,JavaScript引擎会对一些不规范的语法和行为给出错误提示,同时禁用一些不安全的特性。
严格模式可以通过在代码开头添加`"use strict";`来启用。
6. 请解释JavaScript中的this关键字是如何工作的?this关键字用于在函数内部引用函数的调用对象。
javascript试题及答案
javascript试题及答案javascript试题及答案【篇一:javascript考试试卷】txt>1、在javascript中能实现每隔一秒调用函数 foo( )的是()a. setinterval(foo( ),1000)b. clearinteval(foo( ),1000)c. cleartimeout(foo( ),1000)d. settimeout(foo( ),1000)2、以下哪项是javascript函数说法正确的是()a.可以接受参数b.返回一个值c.没有返回类型d. 没有return关键字3、以下哪个对象可用来在浏览器窗口中载入一个新网址() a.document.urlb.window.locationc.window.urld.window.close4、哪个对象包括了alert( )方法.a.windowb.documentc.locationd.body5、分析下面javascript的代码段:forminput type=”text” name=”txt1” value=”txt1”input type=”text” name=”txt2” value=”txt2”onfocus=alert(“我是焦点”) onblur=alert(“我不是焦点”) /form下面的说法正确的是()a. 当用鼠标选中txt2时,弹出“我是焦点”消息框,再用鼠标选中txt1文本框时,弹出“我不是焦点”消息框b. 当用鼠标选中txt1时,弹出“我是焦点”消息框,再用鼠标选中txt2文本框时,弹出“我不是焦点”消息框c. 假如现在输入光标在txt1上,用鼠标单击页面上除txt2以外的其他部分时,弹出“我不是焦点”消息框d. 假如现在输入光标在txt2上,用鼠标单击页面的其他部分时,弹出“我不是焦点”消息框6、在javascript中,文本域不支持的事件包括()a. onblurb. onlostfocusedc.onfocusd.onchange7、(“24.7” + 2.3 ) 的计算结果是()a. 27b. 24.72.3c. 24.72.3d. 26.78、()事件处理程序可用于在用户单击按钮时执行函数a. onsubmitb. onclickc. onchanged. onexit9、用户更改表单元素select 中的值时,就会调用()事件处理程序。
javascript面试题及答案
javascript面试题及答案javascript面试题及答案(一)一、假设为页面的onload事件指定了事件处理函数,如何删除该事件处理函数。
如何为一个事件指定两个或多个处理函数。
functionaddLoadEvent(func){varoldonLoad=window.onload;if(typeofwindow.onload!=function){window.onload=func;}else{window.onload=function(){oldonload();func();}}}addLoadEvent函数主要是完成如下的操作:1、把现有的window.onload事件处理函数的值存入到oldonload中。
2、如果在这个处理函数上还没有绑定任何函数,就将该函数添加给它。
3、如果在这个处理函数上已经绑定了一些函数,就把该函数追加到现有指定的末尾。
通过addLoadEvent函数,只需要调用该函数就可以进行绑定了。
二、写一个函数,返回指定的英文句子中的每个单词及其字符的起止位置,单词间使用一个空格隔开按空格拆分到数组里,取出每个元素三、构造一个自定义对象,实现对一个矩形的对象化,要求:a)描述矩形的标识(name)b)描述矩形的颜色(color)c)描述矩形的宽度(width)d)描述矩形的高度(height)e)提供获取矩形面积的方法(getArea())f)写出构造函数的完整代码g)给出调用的实例代码四、frame之间如何交换数据,frame和iframe有什么区别,iframe有哪些用途。
window.parent.frames它不同于Frame标记最大的特征即这个标记所引用的HTML文件不是与另外的HTML文件相互独立显示,而是可以直接嵌入在一个HTML文件中,与这个HTML 文件内容相互融合,成为一个整体;因为它可以多次在一个页面内显示同一内容,而不必重复写内容,所以人们形象称这种效果为“画中画”。
《JavaScript程序设计基础教程(第2版)》习题答案【精选】
《JavaScript 程序设计基础教程(第2版)》习题答案第一章Web 技术概述一、单选题1)D2)D3)D4)A5)C6)D7)C8)C9)D10)D11)A12)D13)D14)D15)A二、综合题(略)第二章HTML/XHTML 制作一、判断题1)对2)错3)对4)错5)对6)错7)错8)错9)错10)对11)对12)对13)错14)错15)对16)错17)对18)错19)错20)对21)错22)错二、单选题1)D2)C3)C4)B5)A6)B7)B8)B9)C10)C11)B12)C13)C14)C15)C16)C17)A三、综合题1)ex020301.htm2)ex020302.htm3)ex020303.htm4)ex020304.htm5)ex020305.htm6)ex020306.htm7)ex020307.htm8)ex020308.htm9)ex020309.htm10)ex020310.htm11)略第三章CSS 技术一、判断题1)错2)对3)错4)对5)错6)错7)对8)错9)对10)错11)对12)错13)错14)错15)错16)错17)错18)对19)对20)错21)错二、单选题1)B2)B3)A4)C5)B6)C7)A8)B9)D10)B11)D12)B13)A14)B15)D16)A17)B18)C19)B20)D21)B22)A23)D24)A三、综合题1)ex030301.htm2)ex030302.htm3)ex030303.htm4)ex030304.htm5)ex030305.htm6)ex030306.htm7)ex030307.htm8)ex030308.htm9)ex030309.htm10)ex030310.htm11)ex030311.htm12)ex030312.htm13)ex030313.htm14)ex030314.htm15)ex030315.htm16)略第四章JavaScript 编程基础一、判断题1)错JavaScript 是Microsoft公司设计的脚本语言。
JavaScript题库及详解答案
JavaScript题库及详解答案1. JavaScript是一种______语言。
A. 编译型B. 解释型C. 标记型D. 汇编型答案:B2. 以下哪个不是JavaScript的内置数据类型?A. NumberB. StringC. ObjectD. Array答案:C(注:Object和Array都是JavaScript的内置数据类型)3. JavaScript中的全局变量声明关键字是______。
A. varB. letC. constD. global答案:A4. 以下哪个是JavaScript中定义函数的正确方式?A. function myFunction() {}B. myFunction = function() {}C. A和B都是D. A和B都不是答案:C5. 以下哪个不是JavaScript中的事件类型?A. clickB. loadC. hoverD. resize答案:C(注:hover不是一个标准的事件类型)6. 在JavaScript中,以下哪个不是DOM操作的方法?A. getElementByIdB. getElementsByClassNameC. querySelectorD. queryAll答案:D(注:queryAll不是DOM操作的方法)7. 以下哪个JavaScript代码片段可以正确地输出"Hello, World!"?A. console.log("Hello, World!");B. alert("Hello, World!");C. document.write("Hello, World!");D. A和B都是答案:D8. 以下哪个JavaScript代码片段可以创建一个数组?A. var myArray = new Array();B. var myArray = [];C. A和B都可以D. A和B都不可以答案:C9. JavaScript中的闭包是什么?A. 一个函数可以记住并访问其自身作用域内的变量B. 一个函数可以访问全局变量C. 一个函数可以访问另一个函数的参数D. 一个函数可以访问另一个函数的局部变量答案:A10. 以下哪个JavaScript代码片段可以实现数组的排序?A. array.sort();B. array.reverse();C. A和B都可以D. A和B都不可以答案:A11. 以下哪个是JavaScript中实现继承的方式?A. 原型链B. 构造函数C. 私有属性D. 接口答案:A12. 以下哪个不是JavaScript中的错误类型?A. SyntaxErrorB. TypeErrorC. ReferenceErrorD. LogicError答案:D(注:LogicError不是JavaScript标准错误类型)13. 以下哪个JavaScript代码片段可以正确地实现异步操作?A. setTimeout(function() {...}, 1000);B. setInterval(function() {...}, 1000);C. A和B都可以D. A和B都不可以答案:A14. 以下哪个不是JavaScript中的模块化方案?A. CommonJSB. AMDC. ES ModulesD. JSON答案:D15. 以下哪个是JavaScript中使用Promise的好处?A. 可以避免回调地狱B. 可以并行执行异步操作C. A和B都是D. A和B都不是答案:C16. 以下哪个不是JavaScript中的条件语句?A. ifB. switchC. forD. while答案:C17. 以下哪个不是JavaScript中的循环语句?A. forB. whileC. do...whileD. forEach答案:D(注:forEach是数组的方法,不是循环语句)18. 以下哪个是JavaScript中使用严格模式的方法?A. 使用"use strict";声明B. 使用var声明变量C. 使用let声明变量D. 使用const声明变量答案:A19. 以下哪个不是JavaScript中的作用域?A. 全局作用域B. 函数作用域C. 块级作用域D. 对象作用域答案:D20. 以下哪个是JavaScript中实现模块化的方法?A. 使用var声明变量B. 使用let声明变量C. 使用const声明变量D. 使用模块化语法(import/export)答案:D。
Javascript笔试题及答案
onclick="window.location='new.html';"/> C. <input type="button" value="new"
9. 关于正则表达式声明 6 位数字的邮编,以下代码正确的是( C ) A. var reg = /\d6/; B. var reg = \d{6}\; C. var reg = /\d{6}/; D. var reg = new RegExp("\d{6}");
10. 关于 JavaScript 里的 xml 处理,以下说明正确的是( ACD ) A. Xml 是种可扩展标记语言,格式更规范,是作为未来 html 的替代 B. Xml 一般用于传输和存储数据,是对 html 的补充,两者的目的不同 C. 在 JavaScript 里解析和处理 xml 数据时,因为浏览器的不同,其做法也不同 D. 在 IE 浏览器里处理 xml,首先需要创建 ActiveXObject 对象
} }
2
8. 在表单(form1)中有一个文本框元素(fname),用于输入电话号码,格式如:010-82668155, 要求前 3 位是 010,紧接一个“-”,后面是 8 位数字。要求在提交表单时,根据上述条 件验证该文本框中输入内容的有效性,下列语句中,( A )能正确实现以上功能 A. var str= form1.fname.value; if(str.substr(0,4)!="010-" || str.substr(4).length!=8 || isNaN(parseFloat(str.substr(4)))) alert("无效的电话号码!"); B. var str= form1.fname.value; if(str.substr(0,4)!="010-" && str.substr(4).length!=8 && isNaN(parseFloat(str.substr(4)))) alert("无效的电话号码!"); C. var str= form1.fname.value; if(str.substr(0,3)!="010-" || str.substr(3).length!=8 || isNaN(parseFloat(str.substr(3)))) alert("无效的电话号码!"); D. var str= form1.fname.value; if(str.substr(0,4)!="010-" && str.substr(4).length!=8 && !isNaN(parseFloat(str.substr(4)))) alert("无效的电话号码!");
101道经典JavaScript面试题总结(附答案,建议收藏)
101道经典JavaScript⾯试题总结(附答案,建议收藏)最近在整理 JavaScript 的时候发现遇到了很多⾯试中常见的⾯试题,本部分主要是作者在 Github 等各⼤论坛收录的 JavaScript 相关知识和⼀些相关⾯试题时所做的笔记,分享这份总结给⼤家,对⼤家对 JavaScript 的可以来⼀次全⽅位的检漏和排查。
⽂章末尾有彩蛋不要错过!1. 介绍 js 的基本数据类型。
js ⼀共有六种基本数据类型,分别是 Undefined、Null、Boolean、Number、String,还有在 ES6 中新增的 Symbol 类型,代表创建后独⼀⽆⼆且不可变的数据类型,它的出现我认为主要是为了解决可能出现的全局变量冲突的问题。
2. JavaScript 有⼏种类型的值?你能画⼀下他们的内存图吗?js 可以分为两种类型的值,⼀种是基本数据类型,⼀种是复杂数据类型。
基本数据类型....(参考1)复杂数据类型指的是 Object 类型,所有其他的如 Array、Date 等数据类型都可以理解为 Object 类型的⼦类。
两种类型间的主要区别是它们的存储位置不同,基本数据类型的值直接保存在栈中,⽽复杂数据类型的值保存在堆中,通过使⽤在栈中保存对应的指针来获取堆中的值。
3. 什么是堆?什么是栈?它们之间有什么区别和联系?堆和栈的概念存在于数据结构中和操作系统内存中。
在数据结构中,栈中数据的存取⽅式为先进后出。
⽽堆是⼀个优先队列,是按优先级来进⾏排序的,优先级可以按照⼤⼩来规定。
完全⼆叉树是堆的⼀种实现⽅式。
在操作系统中,内存被分为栈区和堆区。
栈区内存由编译器⾃动分配释放,存放函数的参数值,局部变量的值等。
其操作⽅式类似于数据结构中的栈。
堆区内存⼀般由程序员分配释放,若程序员不释放,程序结束时可能由垃圾回收机制回收。
4. 内部属性 [[Class]] 是什么?所有 typeof 返回值为 "object" 的对象(如数组)都包含⼀个内部属性 [[Class]](我们可以把它看作⼀个内部的分类,⽽⾮传统的⾯向对象意义上的类)。
js基础面试题及答案
js基础面试题及答案近年来,从事JavaScript的程序员越来越多,JavaScript的曝光率也越来越高,小编收集了js基础面试题及答案,欢迎阅读。
js基础面试题及答案1、什么是JavaScript?(这是基本题,对很多程序员来说也是送分题!)JavaScript是客户端和服务器端脚本语言,可以插入到HTML 页面中,并且是目前较热门的Web开发语言。
同时,JavaScript也是面向对象编程语言。
类似的基本题目还包括:JavaScript都有哪些类型?JavaScript是谁发明的?......2、列举Java和JavaScript之间的区别?Java是一门十分完整、成熟的编程语言。
相比之下,JavaScript 是一个可以被引入HTML页面的编程语言。
这两种语言并不完全相互依赖,而是针对不同的意图而设计的。
Java是一种面向对象编程(OOPS)或结构化编程语言,类似的如C ++或C,而JavaScript是客户端脚本语言,它被称为非结构化编程。
3. JavaScript和ASP脚本相比,哪个更快?JavaScript更快。
JavaScript是一种客户端语言,因此它不需要Web服务器的协助来执行。
另一方面,ASP是服务器端语言,因此总是比JavaScript慢。
值得注意的是,Javascript现在也可用于服务器端语言(nodejs)。
4、什么是负无穷大?负无穷大是JavaScript中的一个数字,可以通过将负数除以零来得到。
5、关于如何将JavaScript代码分解成几行吗?在字符串语句中可以通过在第一行末尾使用反斜杠“”来完成例:document.write("This is a program");如果不是在字符串语句中更改为新行,那么javaScript会忽略行中的断点。
例:var x=1, y=2,z=x+y;上面的代码是完美的,但并不建议这样做,因为阻碍了调试。
JavaScript前端开发复习 题集附答案
JavaScript前端开发复习题集附答案JavaScript是一种面向对象的编程语言,主要用于客户端的网页编程,能够为网页增加动态功能。
作为前端开发人员,掌握JavaScript语言的各个细节是非常重要的。
下面是一些常见的JavaScript前端开发题目,以及它们的答案。
题目一:解释什么是JavaScript的对象?答案:JavaScript的对象是一种复合的数据类型,它可以包含多个键值对。
每个键值对都用“键:值”的形式表示,键是字符串类型,值可以是任意的JavaScript数据类型(包括其他对象)或方法。
对象的键值对集合被称为对象的属性和方法。
对象可以通过以下两种方式进行定义:1. 使用对象字面量的方式进行定义:```javascriptvar person = {name: "John",age: 30,gender: "male",sayHello: function() {console.log("Hello, I'm " + );}};```2. 使用构造函数的方式进行定义:```javascriptfunction Person(name, age, gender) { = name;this.age = age;this.gender = gender;this.sayHello = function() {console.log("Hello, I'm " + );};}var person = new Person("John", 30, "male");```题目二:解释什么是JavaScript的闭包?答案:JavaScript的闭包是指函数与其相关的引用环境组合而成的实体。
闭包可以让函数访问其创建时所处的词法作用域中的变量,即使函数是在其词法作用域之外被调用。
js面试题及答案
js面试题及答案Javascript(简称为JS)是一种广泛应用于网页上的编程语言。
在近年来,随着互联网的发展,JS的重要性也急速增长。
许多公司都将JS 作为面试的重要考察点。
本文将带你回顾一些常见的JS面试题及其答案,希望能够帮助你在JS面试中取得好成绩。
1. 请介绍一下Javascript的基本数据类型。
Javascript有六种基本数据类型,包括:数值(Number)、字符串(String)、布尔值(Boolean)、空(Null)、未定义(Undefined)以及符号(Symbol)。
数值类型是用来表示数值的,可以是整数或者浮点数;字符串类型是用来表示文本的,使用引号包裹起来;布尔值类型用来表示真(True)或假(False);空(Null)表示一个空引用;未定义(Undefined)表示尚未被赋值;符号(Symbol)在ES6中引入,用于创建唯一的标识符。
2. 解释一下JS中的事件冒泡和事件捕获。
事件冒泡和事件捕获是JS中两种不同的事件传播方式。
事件冒泡是指当一个元素上的事件被触发时,不仅该元素会受到影响,而且其父元素也会逐层触发该事件,直到根元素。
事件冒泡的顺序是从最具体的元素逐级向上传播,例如:点击了一个子元素,点击事件会先触发子元素的事件处理程序,然后再逐级往上触发祖先元素的事件处理程序。
事件捕获是指当一个元素上的事件被触发时,根元素会最先接收到该事件,然后逐级传递到具体的元素。
事件捕获的顺序与事件冒泡相反,从根元素开始,逐级向下传播。
3. 请解释一下手动绑定事件和自动绑定事件的区别。
手动绑定事件是通过addEventListener()方法或者HTML属性来手动为元素绑定事件处理程序。
手动绑定事件的方式允许我们在需要的时候添加或移除事件处理程序,以及更灵活地控制事件的传播方式。
自动绑定事件是指在HTML中直接使用内联事件处理程序属性,例如onclick="doSomething()"。
js面试题及答案
js面试题及答案# js面试题及答案1. 问题一:解释JavaScript中的闭包是什么?答案:闭包是一个函数能够记住并访问其创建时作用域中的变量,即使该函数在那个作用域之外被执行。
简单来说,闭包就是函数能够“记住”它被创建时的环境。
2. 问题二:什么是原型继承?答案:原型继承是JavaScript中实现对象之间继承的一种机制。
每个JavaScript对象都有一个原型对象,当我们试图访问一个对象的属性或方法时,如果该对象本身没有这个属性或方法,JavaScript引擎会去它的原型对象上查找。
3. 问题三:请解释`var`, `let`, 和 `const` 在JavaScript中的区别。
答案:- `var` 是ES5中定义变量的关键字,它的作用域是函数作用域或全局作用域,可以被重新声明和赋值。
- `let` 是ES6中新增的关键字,用于声明块级作用域的变量,不能在同一作用域内重新声明。
- `const` 同样是ES6新增的关键字,用于声明一个只读的常量,一旦声明并初始化后,不能重新赋值。
4. 问题四:什么是事件循环(Event Loop)?答案:事件循环是JavaScript运行时的一种机制,它允许JavaScript引擎在单线程中处理异步操作。
事件循环涉及到调用栈(Call Stack)、事件队列(Event Queue)和事件处理器等概念,通过循环检查调用栈是否为空,然后取出事件队列中的事件进行处理。
5. 问题五:解释`this`在JavaScript中的工作原理。
答案: `this`的值取决于函数的调用方式。
在全局函数中,`this`指向全局对象(在浏览器中是`window`)。
在对象的方法中,`this`通常指向调用该方法的对象。
在构造函数中,`this`指向新创建的对象。
使用箭头函数时,`this`的值由外层作用域决定。
6. 问题六:什么是异步编程,JavaScript中有哪些实现异步编程的方式?答案:- 异步编程允许程序在等待某些操作完成时继续执行其他任务,而不是阻塞等待。
javascript笔试题及答案
javascript笔试题及答案JavaScript笔试题及答案一、单选题(每题2分,共10分)1. JavaScript中,以下哪个是合法的变量名?A. 2variableB. variable-nameC. $variableD. undefined答案:B2. 下列哪个是JavaScript中的全局对象?A. StringB. MathC. ObjectD. Array答案:B3. 在JavaScript中,以下哪个语句可以正确地将字符串转换为数字?A. parseInt("123")B. parseFloat("123.45")C. Number("123.45")D. 以上都是答案:D4. 以下哪个不是JavaScript的内置对象?A. DateB. JSONC. FunctionD. Set答案:C5. 以下哪个属性可以用来获取或设置HTML元素的样式?A. styleB. classC. idD. innerHTML答案:A二、多选题(每题3分,共15分)6. JavaScript中,以下哪些是数据类型的关键字?A. varB. letC. constD. function答案:ABC7. 在JavaScript中,以下哪些是循环结构?A. forB. whileC. do-whileD. switch8. 以下哪些是JavaScript中的错误类型?A. SyntaxErrorB. TypeErrorC. ReferenceErrorD. Warning答案:ABC9. 以下哪些是JavaScript中的对象方法?A. toString()B. valueOf()C. hasOwnProperty()D. isPrototypeOf()答案:ABCD10. 以下哪些是JavaScript中常用的数组方法?A. push()B. pop()C. shift()D. unshift()答案:ABCD三、判断题(每题1分,共5分)11. JavaScript是弱类型语言。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一题:单项选择题(每题只有一个答案) 【每题1分,共15分】1. 我们可以在下列哪个HTML元素中放置javascript代码(A)A.<script>B.<javascript>C.<js>D.<scripting>2. 预测以下代码片段的输出结果: ( B )var str ;alert(typeof str);A. string ;B. undefined;C. object ;D. String;3. 下列哪个不是Javascript中注释的正确写法:( A)A.< !-- …… -- >B.//……C./*……*/D./*……*/4. 以下哪项不属于Javascript的特征?( C )A.Javascript是一种脚本语言B.Javascript是事件驱动的C.Javascript代码需要编译以后才能执行D.Javascript是独立于平台的5. 阅读下面的JavaScript代码:function f(y) {var x=y*y;return x;}for(x=0;x<5;x++) {y=f(x);document.writeln(y);}输出结果是(B)。
A.0 1 2 3 4B.0 1 4 9 16C.0 1 4 9 16 25D.以上答案都不对6. 关于Javascript中数组的说法中,不正确的是:( A )A.数组的长度必须在创建时给定,之后便不能改变B.由于数组是对象,因此创建数组需要使用new运算符C.数组内元素的类型可以不同D.数组可以在声明的同时进行初始化7. 以下关于Javascript中事件的描述中,不正确的是:(D )A.click——鼠标单击事件B.focus——获取焦点事件C.mouseover——鼠标指针移动到事件源对象上时触发的事件D.change——选择字段时触发的事件8.以下代码片段:function Student(name) { = name;this.move = function() {alert(+"准备移动了");}}Student.prototype.move = function() {alert(+"开始移动了! ");}var st = new Student("李四");st.move();下列说法正确的是( A)A.输出”李四准备移动了”B.输出”李四开始移动了”C.输出”李四准备移动了李四开始移动了””D.程序出错,没有任何输出。
9 预测以下代码片段的输出结果( C)add(10);//覆盖function add(i) { var k = i+10; alert(k); } ;function add(i) { var k = i+20; alert(k); } ;A.40B.20C.30D.程序出错10. 预测以下代码片段的输出结果(C )var student = new Object();student.study = function() {window.alert(“开始学习了”); }study();A.输出“开始学习了”B.程序出错。
不能在实例化对象之后,再添加方法C.程序出错。
study()方法不能直接调用。
应该用student 来调用D.程序出错。
给student.study 赋值时,右边的函数必须有名字11. 考察以下程序片段:var str = “12px”;var s = str.indexof(“2”);alert(s);以下选项正确的是( A )A.输出 1B.输出 2C.输出 pD.输出 1212. 考察以下程序片段( D )function Person() {}Person.prototype.move = function(){alert(+“移动”);}function Student(name) { = name;}Student.prototype.study = function(){alert(+”学习”);}Student.prototype = new Person();var st = new Student(“张三丰”);st.study();st.move();以下选项正确的是?A.依次输出”张三丰学习”“张三丰移动”B.依次输出”张三丰学习”“移动”C.输出”张三丰学习”,之后程序出错D.程序出错,什么都不能输出13 以下不属于Javascript基本类型的是( C )A.stringB.numberC.functionD.boolean14. Javascript是如何实现继承的?(A )A.创建父类对象作为子类的原型(prototype)B.使用extends关键子继承父类C.创建子类对象作为父类的原型(prototype)D.使用class关键子继承父类15. 分析以下程序片段var value = 3;var a = new Object();a.value = 1;b = a;b.value = 2;alert(a.value);以下选项正确的是? ( B )A. 1B.2C.3D.undefined第二题:多项选择题(每题至少有一个答案正确,答错不给分,漏选给一半分)【每题2分,共20分】1. 声明一个对象,给它加上name属性和show方法显示其name 值,以下代码中正确的是(D )A. var obj = [name:"zhangsan",show:function(){alert(name);}];B. var obj = {name:"zhangsan",show:"alert()"};C. var obj = {name:"zhangsan",show:function(){alert(name);}};D. var obj = {name:"zhangsan",show:function(){alert();}};2.以下关于Array数组对象的说法不正确的是( CD )A. 对数组里数据的排序可以用sort函数,如果排序效果非预期,可以给sort函数加一个排序函数的参数B.reverse用于对数组数据的倒序排列C.向数组的最后位置加一个新元素,可以用pop方法D.unshift方法用于向数组删除第一个元素3.点击页面的按钮,使之打开一个新窗口,加载一个网页,以下JavaScript代码中可行的是( AD )A. <input type="button" value="new"onclick="open('new.html', '_blank') "/>B. <input type="button" value="new"onclick="window.location='new.html';"/>C. <input type="button" value="new" onclick=" location.assign('new.html');"/>D. <form target="_blank" action="new.html"><input type="submit" value="new"/> </form>4.阅读以下代码:var s = "true";var o = { toString:function(){return false }}alert(s+o);以下选项正确的是:(A)A. truefalseB. true0C.1falseD.105. 阅读以下代码:var a = 1;run(a);function run(foo){console.log(foo);function foo(){alert(123);}//先加载函数foo = 2;console.log(foo);}输出结果为:( C)A. 1 2B. 123 2C. function foo(){alert(123);} 2D. 代码错误,没有输出结果6. foo对象有attr属性,以下获取attr属性的值的的做法正确的是:( ACD)A. foo.attrB. foo("attr");C. foo["attr"];D. var name = "attr"; foo[name]7. 以下创建数组语法正确的是:(AC )A. var arr = new Array(10);B. var arr = new [1,2,3,4];C. var arr = [1,"true",{name:"briup"}];D. var arr = {1,2,3};8. 阅读以下代码,运行结果为:( A )var num = 1;var obj = {num: 2,showNum:showNum}function showNum(){console.log(this.num);}obj.showNum();showNum();A. 2 1B. 2 2C. 1 1D. 1 29. 阅读以下代码,运行结果为(D )var a = "12a12b"console.log(parseInt(a));console.log(Number(a));A. 1212 12B.1212 NaNC.NaN 1212D.12 NaN10.阅读以下代码,运行结果为: (B)var name = "tom";function person(name){ = name;return ;}console.log(person("terry"));console.log(new person("tom"));A. tom person{name:"tom"}B. terry person{name:"tom"}C. terry tomD. tom terry第三题:填空题【每空1分,共25分】1.至少列出六个常用的String对象的方法_charAt,charCodeAt_IndexOf,_concat,_slice_,_substr______。