javascript基本面试题
- 格式:docx
- 大小:36.01 KB
- 文档页数:17
js面试题object常用方法1.如何判断一个变量是否是对象类型?可以使用 `typeof` 来判断一个变量的类型,`typeof` 返回的是一个字符串,指示变量的类型。
对于对象类型,`typeof` 会返回`"object"`。
2.如何检查一个对象是否包含一些特定的属性?可以使用 `hasOwnProperty(` 方法来检查一个对象是否包含一些特定的属性。
该方法返回一个布尔值,表示对象是否具有指定的属性。
3.如何取得对象中所有的属性名?可以使用 `Object.keys(` 方法来获取一个对象中的所有属性名。
该方法返回一个数组,包含对象中的所有属性名。
4.如何取得对象中所有的属性值?可以使用 `Object.values(` 方法来获取一个对象中的所有属性值。
该方法返回一个数组,包含对象中的所有属性值。
5.如何将两个对象合并成一个新的对象?可以使用 `Object.assign(` 方法来合并两个对象。
该方法接受多个参数,其中第一个参数是目标对象,后面的参数都是源对象,它们的属性将被复制到目标对象中。
6.如何删除对象中的属性?可以使用 `delete` 关键字来删除对象中的属性。
例如,`delete obj.property` 将删除 `obj` 对象中的 `property` 属性。
7.如何遍历对象的所有属性?可以使用 `for...in` 循环来遍历对象的所有属性。
这样可以对每个属性执行一些操作,例如打印属性名或属性值。
8.如何创建一个空对象?可以使用 `Object.create(null)` 来创建一个空对象。
该方法会创建一个没有原型的对象,因此没有任何属性和方法。
9.如何判断一个属性是对象自身的属性还是继承自原型链的属性?可以使用 `hasOwnProperty(` 方法来判断一个属性是否是对象自身的属性。
如果返回 `true`,则说明该属性是对象自身的属性;如果返回`false`,则说明该属性是继承自原型链的属性。
js算法面试经典100题以下是面试中常见的100个经典算法问题,适用于JavaScript:1. 两数之和2. 反转字符串3. 验证回文串4. 整数反转5. 最长公共前缀6. 合并两个有序数组7. 有效的括号8. 删除排序数组中的重复项9. 删除链表中的节点10. 实现 strStr()11. 替换空格12. 二叉树的最大深度13. 对称二叉树14. 二叉树的层次遍历15. 二叉搜索树的最近公共祖先16. 删除链表的倒数第N个节点17. 旋转数组18. 合并两个有序链表19. 链表的中间节点20. 最大子序和21. 阶乘尾部的零22. 爬楼梯23. 二叉树的前序遍历24. 杨辉三角25. 有效的数独26. 反转链表27. 验证二叉搜索树28. 实现Trie29. 最长有效括号30. 合并区间31. 两两交换链表中的节点32. 下一个排列33. 逆波兰表达式求值34. 最大矩形35. 字符串相乘36. 删除链表中的重复元素37. 螺旋矩阵38. 使用队列实现栈39. 最长连续序列40. 交错字符串41. 单词拆分42. 最后一个单词的长度43. 二叉树的右视图44. 跳跃游戏45. 翻转二叉树46. 字母异位词分组47. 复原IP地址48. 最小覆盖子串49. 丑数50. 栈的压入弹出序列51. 二叉树中和为某一值的路径52. 二叉搜索树的后序遍历序列53. 二进制求和54. 分隔链表55. 不同路径56. 最小路径和57. 字符串转换整数58. 搜索二维矩阵59. 环形链表60. 路径总和61. 删除链表的节点62. 最长上升子序列63. 最大子数组乘积64. 排序链表的合并65. 在排序数组中查找元素的第一个和最后一个位置66. 同结构的二叉树67. 乘积最大子数组68. 两个排序数组的中位数69. 合并K个排序链表70. 数组中的逆序对71. 反转链表的前N个节点72. 最大值和最小值的差73. 翻转字符串中的单词74. 前 K 个高频元素75. 分青红蓝球问题76. 回文数77. 括号生成78. 长度最小的子数组79. 根据身高和序号重组队列80. 两数相加81. 数字的英文表示82. 二叉树的锯齿形层次遍历83. 在O(1)时间内删除链表节点84. 用栈实现队列85. 二叉树的层平均值86. 二叉树的右侧视图87. 螺旋矩阵 II88. 颜色分类89. 寻找重复数90. 打家劫舍91. 按序打印92. 找到字符串中所有字母异位词93. 丑数 II94. 外观数列95. 在排序链表中删除重复元素 II96. 两数相除97. 不同的二叉搜索树98. 最长回文子串99. 缺失的第一个正数100. 寻找最大公约数这些问题涵盖了数据结构和算法中的常见题目。
一、jquery解答题1. jQuery 库中的 $() 是什么?(答案如下)$() 函数是 jQuery() 函数的别称,乍一看这很怪异,还使 jQuery 代码晦涩难懂。
一旦你适应了,你会爱上它的简洁。
$() 函数用于将任何对象包裹成 jQuery 对象,接着你就被允许调用定义在 jQuery 对象上的多个不同方法。
你甚至可以将一个选择器字符串传入 $() 函数,它会返回一个包含所有匹配的 DOM 元素数组的 jQuery 对象。
这个问题我已经见过好几次被提及,尽管它非常基础,它经常被用来区分一个开发人员是否了解 jQuery。
2. 网页上有 5 个 <div> 元素,如何使用 jQuery来选择它们?(答案)另一个重要的 jQuery 问题是基于选择器的。
jQuery 支持不同类型的选择器,例如 ID 选择器、class 选择器、标签选择器。
鉴于这个问题没提到 ID 和 class,你可以用标签选择器来选择所有的 div 元素。
jQuery 代码:$("div"),这样会返回一个包含所有 5 个 div 标签的 jQuery 对象。
更详细的解答参见上面链接的文章。
3. jQuery 里的 ID 选择器和 class 选择器有何不同?(答案)如果你用过 CSS,你也许就知道 ID 选择器和 class 选择器之间的差异,jQuery 也同样如此。
ID 选择器使用 ID 来选择元素,比如 #element1,而 class 选择器使用 CSS class 来选择元素。
当你只需要选择一个元素时,使用 ID 选择器,而如果你想要选择一组具有相同 CSS class 的元素,就要用 class 选择器。
在面试过程中,你有很大几率会被要求使用 ID 选择器和 class 选择器来写代码。
下面的 jQuery 代码使用了 ID 选择器和 class 选择器:正如你所见,从语法角度来说,ID 选择器和 class 选择器的另一个不同之处是,前者用字符”#”而后者用字符”.”。
事件循环经典面试题事件循环是JavaScript中非常重要的一个概念,也是面试中常被问到的知识点之一。
本文将介绍事件循环的基本概念、工作原理以及常见的面试题,并分析各个题目的解答思路。
一、事件循环的基本概念事件循环是指JavaScript中用于处理异步操作的一种机制。
在JavaScript中,事件循环负责监听各种事件(如用户交互、异步请求返回等),并根据事件的类型和优先级来调度对应的回调函数执行。
通过事件循环,JavaScript可以实现非阻塞的异步编程,提高程序的响应速度和性能。
二、事件循环的工作原理JavaScript的事件循环基于单线程模型,通过一个事件队列(Event Queue)来管理待执行的事件和对应的回调函数。
事件循环的核心原理可以描述为以下几个步骤:1. 执行同步任务(JS代码):JavaScript引擎首先执行当前的同步任务,直至任务队列为空或达到执行时间限制。
2. 处理微任务(Microtask):在同步任务执行完毕后,JavaScript引擎会立即处理所有的微任务。
常见的微任务包括Promise的回调函数、MutationObserver以及一些浏览器API的回调函数等。
微任务的执行机制优先级高于宏任务,即优先执行微任务,直到微任务队列为空。
3. 执行事件循环中的宏任务(Macrotask):在处理完所有的微任务后,JavaScript引擎会从任务队列中选择一个宏任务执行。
常见的宏任务包括setTimeout和setInterval的回调函数、UI渲染等。
4. 重复执行以上步骤:重复执行上述步骤,即处理微任务、执行一个宏任务,直至任务队列和微任务队列都为空。
三、常见事件循环的面试题针对事件循环的特性,面试中常常会出现一些相关的题目,下面将介绍几个经典的面试题,并给出解答思路。
题目一:下面代码的输出是什么?```javascriptconsole.log('script start');setTimeout(function(){console.log('setTimeout');}, 0);Promise.resolve().then(function(){console.log('promise1');}).then(function(){console.log('promise2');});console.log('script end');```解答:根据上述事件循环的工作原理,可以得知该题代码的输出顺序为:```script startscript endpromise1promise2setTimeout```题目二:下面代码的输出是什么?```javascriptconsole.log('script start');setTimeout(function(){console.log('setTimeout');}, 0);new Promise(function(resolve){console.log('promise1');resolve();}).then(function(){console.log('promise2');});console.log('script end');```解答:根据上述题目一的思路,可以得知该题代码的输出顺序为:```script startpromise1script endpromise2setTimeout```题目三:下面代码的输出是什么?```javascriptconsole.log('script start');setTimeout(function(){console.log('setTimeout1');Promise.resolve().then(function(){console.log('promise1');});}, 0);setTimeout(function(){console.log('setTimeout2');}, 0);console.log('script end');```解答:根据上述题目一的思路,可以得知该题代码的输出顺序为:```script startscript endsetTimeout1promise1setTimeout2```四、总结事件循环作为JavaScript中重要的概念,是理解异步编程的关键之一。
闭包的面试题闭包是JavaScript中一个重要的概念,在面试中也经常会遇到与闭包相关的面试题。
下面将介绍一些常见的闭包面试题,并解答这些问题。
题目一:什么是闭包?回答:闭包是指有权访问另一个函数作用域中变量的函数。
闭包使得函数可以保留对其创建时所在作用域的访问权,即使该函数在其创建时所在的作用域之外执行。
题目二:请给出一个闭包的实例。
回答:以下是一个闭包的例子:```javascriptfunction outer() {var count = 0;function inner() {count++;console.log(count);}return inner;}var closure = outer();closure(); // 输出1closure(); // 输出2```在这个例子中,`inner`函数可以访问`outer`函数中的`count`变量,即使`outer`函数已经执行完毕并返回了。
通过将`inner`函数赋值给`closure`变量,我们创建了一个闭包,使得`inner`函数仍然可以访问并修改`count`变量。
题目三:闭包有什么应用场景?回答:闭包在JavaScript中有许多应用场景,以下列举几个常见的例子:1. 封装私有变量:通过闭包,我们可以创建仅在特定函数范围内访问的私有变量,防止变量被外部访问和修改。
2. 计数器:使用闭包可以创建计数器函数,每次调用计数器函数时,返回的值会自增。
3. 延迟函数执行:通过使用闭包,我们可以延迟函数的执行,将函数定义和函数执行的时机分开。
4. 模块化开发:使用闭包可以实现模块化开发,将代码划分为独立的模块,提高代码的可维护性和复用性。
题目四:闭包会有什么问题?回答:虽然闭包在某些情况下非常有用,但也会带来一些问题。
其中最常见的问题是内存泄漏。
当一个函数形成闭包后,它会继续持有对其所在作用域的引用,导致作用域的变量无法被垃圾回收机制回收。
1、form中的input有哪些类型?各是做什么处理使用的?text radio c heckbox file button image submit reset hiddensubmit是button的一个特例,也是button的一种,它把提交这个动作自动集成了。
如果表单在点击提交按钮后需要用JS进行处理(包括输入验证)后再提交的话,通常都必须把submit 改成button,即取消其自动提交的行为,否则,将会造成提交两次的效果,对于动态网页来说,也就是对数据库操作两次。
button具有name、v alue属性,能触发onclick事件submit继承了buttonsubmit增加了触发表单onsubmit事件的功能、增加了执行表单的submit()方法的功能INPUT type=submit按回车提交表单button提交的是innerTEXT2、table标签中border,c ellpadding td标签中c olspan,rowspan分别起什么作用?border边界cellpadding边距cellpadding,是补白,是指单元格内文字与边框的距离cellspacing,两个单元格之间的距离colspan跨列数rowspan跨行数3、form中的input可以设置readonly和disable,请问这两项属性有什么区别?readonly不可编辑,但可以选择和复制disable不能编辑复制选择4、JS中的三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)的命令是什么?alertconfirmprompt5.题目:当点击按钮时,如何实现两个td的值互换?用jav asc ript实现此功能。
分析:这个题主要是考变量传值。
其次是考如何取元素的值。
第一种代码如下:Code1<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd">2<html xmlns="/1999/xhtml">3<head>4<meta http-equiv="Content-Type"content="text/html; charset=gb2312"/>5<title>无标题文档</title>6<script type="text/javascript">7//<![CDATA[8function submitbtn() {910var tText1=document.getElementById('txt1');11var SubmitBtn1=document.getElementById('submitBtn1');12var tText2=document.getElementById('txt2');13var SubmitBtn2=document.getElementById('submitBtn2');14 SubmitBtn1.onclick=function() {15var temp=tText1.value;16 tText1.value=tText2.value;17 tText2.value=temp;18 };19 SubmitBtn2.onclick=function() {20var temp=tText2.value;21 tText2.value=tText1.value;22 tText1.value=temp;23 };24}25window.onload=function() {26 submitbtn();27}28//]]>29</script>30</head>3132<body>33<input type="text"value="12345666"id="txt1"/>34<input type="submit"id="submitBtn1"/>35<input type="text"value="12345222"id="txt2"/>36<input type="submit"id="submitBtn2"/>37</body>38</html>复制代码第二种代码如下:Code1<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd">2<html xmlns="/1999/xhtml">3<head>4<meta http-equiv="Content-Type"content="text/html; charset=gb2312"/> 5<title>无标题文档</title>6<script type="text/javascript">7//<![CDATA[8function submitbtn() {910var tText1=document.getElementById('txt1');11var SubmitBtn1=document.getElementById('submitBtn1');12var tText2=document.getElementById('txt2');13var SubmitBtn2=document.getElementById('submitBtn2');14 SubmitBtn1.onclick=function() {15var temp=tText1.innerHTML;16 tText1.innerHTML=tText2.innerHTML;17 tText2.innerHTML=temp;18 };19 SubmitBtn2.onclick=function() {20var temp=tText2.innerHTML;21 tText2.innerHTML=tText1.innerHTML;22 tText1.innerHTML=temp;23 };24}25window.onload=function() {26 submitbtn();27}28//]]>29</script>30</head>3132<body>33<table width="200"border="1"cellpadding="0"cellspacing="0">34<tr>35 <td id="txt1">321445</td>36 <td><input type="submit"id="submitBtn1"/></td>37</tr>38<tr>39 <td id="txt2">123133</td>40 <td><input type="submit"id="submitBtn2"/></td>41</tr>42</table>43</body>44</html>45复制代码6. "闭包"问题Code<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><title>Untitled Page</title><script type="text/javascript">window.onload=function(){var ii,a="";var d=document.getElementsByTagName("DIV");for(ii=0;ii<d.length;ii++){if(d[ii].id=="top"){a=d[ii].getElementsByTagName("li");for(var i=0;i<a.length;i++){//a[i].onmouseover=function(){show(i)}; //此处的i是一个变量,在运行show取i的值,很显示你的i每次都会最终变成a.lengtha[i].onmouseover=new Function("show("+i+")");//这里的i是一个常量,就是此刻i是值}}}}function show(z){alert(z);}</script></head><body><div>div1</div><div id="top"><ul><li>a</li><li>a</li><li>a</li><li>a</li><li>a</li></ul></div></body></html>复制代码使用注释行的时候,总是提示5.在一般编程语言中, 参数都是"传值", 假设一个C函数的原型是int Fun(int value);当你调用这个函数时, Fun函数首先会在自己的函数栈上copy一份参数, 就是这个函数的副本, 当你在Fun 外部修改value值, 并不会影响Fun内部的v alue.而Jav asc ript的内嵌函数很特殊, 它并不会copy一个参数副本, 所有函数公用一套参数, 所以你在函数外部修改了参数值, 函数内部也会受影响.这就是为什么你的show函数, 它的z参数是最后一个值, 因为每一次循环, z都被更改了. 传值和传址的问题一、单选题1、以下哪条语句会产生运行错误:()A.var obj = ( );B.var obj = [ ];C.var obj = { };D.var obj = / /;2、以下哪个单词不属于javascript保留字:()A.withB.parentC.classD.void3、请选择结果为真的表达式:()A.null instanceof ObjectB.null === undefinedC.null == undefinedD.NaN == NaN二、不定项选择题4、请选择对javascript理解有误的:()A.JScript是javascript的简称B.javascript是网景公司开发的一种Java脚本语言,其目的是为了简化Java的开发难度C.FireFox和IE存在大量兼容性问题的主要原因在于他们对javascript的支持不同上D.AJAX技术一定要使用javascript技术5、foo对象有att属性,那么获取att属性的值,以下哪些做法是可以的:()A.foo.attB.foo(“att”)C.foo[“att”]D.foo{“att”}E.foo[“a”+”t”+”t”]6、在不指定特殊属性的情况下,哪几种HTML标签可以手动输入文本:()1 2 3 4A.<TEXTAREA></TEXTAREA>B.<INPUT type=”text”/>C.<INPUT type=”hidden”/>D.<DIV></DIV>7、以下哪些是javascript的全局函数:()A.escapeB.parseFloatC.evalD.setTimeoutE.alert8、关于IFrame表述正确的有:()A.通过IFrame,网页可以嵌入其他网页内容,并可以动态更改B.在相同域名下,内嵌的IFrame可以获取外层网页的对象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()方法可以用来刷新当前页面C.window.location=”a.html”和window.location.href=”a.html”的作用都是把当前页面替换成a.html页面D.定义了全局变量g;可以用window.g的方式来存取该变量三、问答题:1、谈谈javascript数组排序方法sort()的使用,重点介绍sort()参数的使用及其内部机制2、简述DIV元素和SPAN元素的区别。
Nodejs基础面试题与答案以下是10道关于Node.js的面试题和答案:1.问题:什么是Node.js?答案:Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它使得开发者可以使用JavaScript来编写服务器端软件。
Node.js是基于事件驱动、非阻塞I/O模型的,使其轻量且高效,非常适合实时应用如聊天、实时通信等。
2.问题:Node.js中的事件循环是什么?答案:事件循环是Node.js的核心机制之一,它处理异步操作,并使用回调函数将结果传递给请求的发起者。
事件循环会不断地从事件队列中取出事件,然后执行对应的回调函数,直到队列为空。
3.问题:Node.js中的阻塞和非阻塞有什么区别?答案:阻塞操作是指执行一个操作需要等待其完成,例如读取文件。
非阻塞操作是指执行一个操作不需要等待其完成,例如发送HTTP请求。
在Node.js 中,由于其基于事件驱动的设计,大部分操作都是非阻塞的。
4.问题:Node.js中的Error-first Callbacks是什么?答案:Error-first Callbacks是Node.js中处理错误的一种约定,它要求回调函数的第一个参数为错误对象(如果有的话),其余参数为正常返回的数据。
这种约定使得开发者可以方便地处理错误,避免在回调函数中忘记检查错误。
5.问题:Node.js中的异步操作有哪些?答案:Node.js中的异步操作有很多种,包括读取文件、发送HTTP请求、数据库查询等。
这些操作都是非阻塞的,可以使用回调函数、Promise、async/await等方式来处理异步操作的结果。
6.问题:Node.js中的模块系统是什么?答案:Node.js的模块系统是基于CommonJS规范的,它允许开发者将代码拆分成多个文件,并在需要时引入这些文件。
每个文件都是一个模块,有自己的作用域和变量。
在模块中声明的变量是私有的,只有该模块可以访问。
第1篇一、JavaScript基础知识1. JavaScript有哪几种数据类型?JavaScript有7种基本数据类型:undefined、null、string、boolean、number、symbol(ES6)、BigInt。
其中,object类型包含function、Array、Date等。
解析:了解JavaScript数据类型是基础,便于后续学习。
2. target和currentTarget的区别是什么?target:返回触发事件的元素。
currentTarget:返回绑定事件的元素。
解析:区分这两个属性,有助于理解事件冒泡和捕获过程。
3. (document).ready()方法和window.onload的区别是什么?(document).ready()方法在DOM完全加载完成后执行,且只执行一次。
而window.onload在页面内容完全加载完成后执行,包括图片、样式表等。
解析:了解这两种方法,便于在页面加载时执行相应的代码。
4. 如何判断一个变量是数组类型?可以使用Array.isArray()方法判断一个变量是否为数组。
解析:掌握Array.isArray()方法,有助于判断数组类型。
5. 如何实现深拷贝和浅拷贝?浅拷贝:使用Object.assign()或扩展运算符...进行拷贝。
深拷贝:使用JSON.parse(JSON.stringify(obj))进行拷贝。
解析:深拷贝和浅拷贝是面试高频题,要掌握其实现方法。
二、ES6新特性1. ES6有哪些新特性?ES6新特性包括:let、const、箭头函数、模板字符串、解构赋值、扩展运算符、Promise、async/await、class、模块化等。
解析:了解ES6新特性,有助于提高代码质量。
2. 箭头函数和普通函数的区别是什么?箭头函数:没有自己的this,继承父级作用域的this。
普通函数:有自己的this,可以单独定义。
javascriptthis的理解(⾯试题)最近遇到⼀道考察this的⾯试题,结果是四分之三回答错了,本来对this的了解还是⽐较清楚的,⼀下⼦就被弄蒙了。
代码如下:var x = 10;var foo = {x : 20,bar : function(){var x = 30;console.log(this.x)}};foo.bar();(foo.bar)();(foo.bar = foo.bar)();(foo.bar,foo.bar)(); 我给出的答案是 20,10,20,?;解释我答题时的思路:第⼀个:对象中的this永远指向该对象,所以是foo中的x=20;第⼆个:foo.bar=function(){......},所以我考虑执⾏代码相当于(function(){var x = 30;console.log(this.x)})();故this指向window,所以x=10;第三个:foo.bar赋值给foo.bar,那这个函数没变,跟第⼀题⼀样,输出x=20;第四题我不懂;先不说哪个对哪个错,先了解跟这道题有关的基本知识(1)⼀个对象中⼀个带有this的⽅法被调⽤后,this指向window,不是调⽤它的对象;var a = {b : "b",c : function(){console.log(this.b);}};var A = a.c;A();//undefined;var obj = {b : "objB",c : function(){var fn = a.c;fn();}};obj.c();//undefined//这⾥不是只想obj中的b(2)关于⾃执⾏匿名函数(function(){}())||(function(){})()(function(){console.log("helloworld")})();//helloworld//匿名函数⾃执⾏,不需要调⽤但请注意:(console.log("helloworld"))();//helloworld//TypeError: undefined is not a function//就是()()中不是⼀个函数,输出结果后会弹出错误提⽰。
一、单选题1、以下哪条语句会产生运行错误:(a )A.var obj = ();//语法错误B.var obj = [];//创建数组C.var obj = {};//创建对象D.var obj = //;原因:var obj = new Array ();是对的;JavaScript 中大括号表示创建对象。
var obj = { id:1, name:"jacky" };alert();上例表示创建一个具有属性 id (值为 1)、属性 name (值为 jacky )的对象。
属性名称可以用引号引起来成 "id"、"name",也可以不引。
当然除了属性,也可以创建方法。
试验代码/* window.onload=function(){ // var obj = ();var obj1 = [];//objectvar obj2 = {};//objectvar obj3 = //;//undefinealert(typeof(obj1));alert(typeof(obj2));alert(typeof(obj3));}*/function showName(){ alert(); }var obj = { id:1, name:"jacky", showName:showName };obj.showName();2、以下哪个单词不属于javascript 保留字:(b )A.withB.parentC.classD.void以下的保留字不可以用作变量,函数名,对象名等,其中有的保留字是为以后JAV ASCRIPT 扩展用的.abstract boolean break byte case catch char class const continue default do double elseextends false final finally float for function goto if implements import in instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient true try var void while with3、请选择结果为真的表达式:(c)A.null instanceof Object(if(!(null instanceof Object))是真的)B.null === undefinedC.null == undefinedD.NaN == NaN(1) null确实可以理解为原始类型,不能当Object理解!null,int,float.....等这些用关键字表示的类型,都不属于Object.至于可以把null作为参数,只是特殊规定而已.可以这么理解: 对象的引用代表的是一个内存的值,null是一个空引用,可以理解为内存的值为0;按这个意思对代码(2) function f1(){ }1. alert(f1 instanceof Function);//true2. alert(f1 instanceof Object);//true3. alert(Function instanceof Object);//true4. alert(Object instanceof Function);//trueFunction 是Object的实例,Object又是Function的实例Function是函数的构造函数,而Object也是函数,Function自身也是函数Object.prototype是一切原型链的顶点,instanceof会查找整个原型链alert(Function);alert(Function.prototype);alert(Function.__proto__);alert(Object);alert(Object.prototype);alert(Object.__proto__);alert((function(){}).prototype);alert((function(){}).__proto__);alert((function(){}).__proto__.prototype);alert((function(){}).prototype.__proto__);alert(Array.__proto__);alert((123).__proto__);alert((Number).__proto__);alert(("test").__proto__);alert((String).__proto__);alert((true).__proto__);alert((Boolean).__proto__);/* window.onload=function(){if(NaN == NaN){alert("ddd");}}*/二、不定项选择题4、请选择对javascript理解有误的:(abcd)A.JScript是javascript的简称B.javascript是网景公司开发的一种Java脚本语言,其目的是为了简化Java 的开发难度C.FireFox和IE存在大量兼容性问题的主要原因在于他们对javascript的支持不同上D.AJAX技术一定要使用javascript技术5、foo对象有att属性,那么获取att属性的值,以下哪些做法是可以的:(ACE)A.foo.attB.foo(“att”)C.foo[“att”]D.foo{“att”}E.foo[“a”+”t”+”t”]6、在不指定特殊属性的情况下,哪几种HTML标签可以手动输入文本:(a ce)A.<TEXTAREA></TEXTAREA>B.<INPUT type=”text”/>C.<INPUT type=”hidden”/>D.<DIV></DIV>7、以下哪些是javascript的全局函数:(abc)A.escapeB.parseFloatC.evalD.setTimeoutE.alert8、关于IFrame表述正确的有:(abcd)A.通过IFrame,网页可以嵌入其他网页内容,并可以动态更改B.在相同域名下,内嵌的IFrame可以获取外层网页的对象C.在相同域名下,外层网页脚本可以获取IFrame网页内的对象D.可以通过脚本调整IFrame的大小9、关于表格表述正确的有:(abcde)A.表格中可以包含TBODY元素B.表格中可以包含CAPTION元素C.表格中可以包含多个TBODY元素D.表格中可以包含COLGROUP元素E.表格中可以包含COL元素10、关于IE的window对象表述正确的有:(acd)A.window.opener属性本身就是指向window对象B.window.reload()方法可以用来刷新当前页面C.window.location=”a.html”和window.location.href=”a.html”的作用都是把当前页面替换成a.html页面D.定义了全局变量g;可以用window.g的方式来存取该变量三、问答题:1、谈谈javascript数组排序方法sort()的使用,重点介绍sort()参数的使用及其内部机制sort的实现的功能类似JAVA的比较器,数据排序从多维数组的第一维开始排序可以自己定义排序方法,很不多的函数2、简述DIV元素和SPAN元素的区别。
DIV有回车,SPAN没有3、结合text这段结构,谈谈innerHTML outerHTML innerText之间的区别。
innerHTML对象里面的HTML,outerHTML包括对象和里面的innerText对象里面的文本4、说几条XHTML规范的内容(至少3条)属性加引号,不能有不匹配的标签,加定义5、对Web标准化(或网站重构)知道哪些相关的知识,简述几条你知道的Web 标准?网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。
对应的网站标准也分三方面:结构化标准语言,主要包括XHTML 和XML;表现标准语言主要包括CSS;行为标准主要包括对象模型(如W3C DOM)、ECMAScript等。
四、程序题:1、完成foo()函数的内容,要求能够弹出对话框提示当前选中的是第几个单选框。
<html><head><script>function foo(){// 在此处添加代码var rg = document.getElementsByName("radioGroup");for( var i = 0; i < rg.length; i++ ){if( rg[i].checked ){alert("你选择了第" + (i+1) + "个单选框");}}return false;}</script></head><body><form name="form1" onsubmit="return foo();"><input type="radio" name="radioGroup" /><input type="radio" name="radioGroup" /><input type="radio" name="radioGroup" /><input type="radio" name="radioGroup" /><input type="radio" name="radioGroup" /><input type="radio" name="radioGroup" /><input type="submit" /></form></body></html>2、填充注释部分的函数体,使得foo()函数调用弹出”成功”的对话框。