js笔试题目
- 格式:doc
- 大小:90.00 KB
- 文档页数:10
js笔试题及答案JavaScript(简称JS)是一种广泛应用于Web开发的编程语言。
本文将介绍一些常见的JS笔试题及其答案,帮助读者加深对JS语言的理解和掌握。
一、JS基础知识题1. 请解释JS中的数据类型有哪些?答:JS中有六种基本数据类型,分别是:字符串(String)、数字(Number)、布尔值(Boolean)、空(Null)、未定义(Undefined)和符号(Symbol)。
另外还有一种复杂数据类型,即对象(Object)。
2. 什么是JS的变量提升?答:JS的变量提升指的是在代码执行之前,JS引擎会将变量的声明提升到作用域的顶部。
这意味着我们可以在变量声明之前使用这个变量,但它的值会是undefined。
3. 如何判断一个变量的数据类型?答:可以使用typeof操作符来判断变量的数据类型。
例如,typeof "hello"会返回字符串类型;typeof 2022会返回数字类型。
二、JS语法题1. 请用JS代码实现数组去重。
答:```javascriptfunction removeDuplicates(arr) {return Array.from(new Set(arr));}```2. 如何定义一个箭头函数,并简要解释其用途?答:箭头函数是ES6中引入的一种新的函数定义方式。
它使用箭头(=>)来代替传统的function关键字。
箭头函数具有更简洁的语法和更明确的this指向,适用于需要定义匿名函数或回调函数的场景。
```javascriptconst add = (a, b) => a + b;```三、JS算法题1. 请写一个递归函数,计算斐波那契数列的第n项。
答:```javascriptfunction fibonacci(n) {if (n <= 1) {return n;} else {return fibonacci(n - 1) + fibonacci(n - 2);}}```2. 请写一个函数,判断一个字符串是否为回文字符串。
js基础笔试题及答案1. 以下哪个选项是JavaScript中的全局对象?A. windowB. documentC. navigatorD. history答案:A2. JavaScript中,以下哪个关键字用于声明一个函数?A. varB. functionC. letD. const答案:B3. 在JavaScript中,如何声明一个变量并初始化其值为10?A. var number = 10;B. let number = 10;C. const number = 10;D. Both A and B答案:D4. 以下哪个方法用于在数组中添加一个或多个元素?A. pop()B. push()C. shift()D. unshift()答案:B5. JavaScript中,以下哪个方法用于从数组中删除最后一个元素?A. pop()B. push()C. shift()D. unshift()答案:A6. 在JavaScript中,以下哪个对象用于处理日期和时间?A. DateB. TimeC. DateTimeD. Moment答案:A7. 如何在JavaScript中创建一个空对象?A. var obj = {};B. var obj = new Object();C. Both A and BD. None of the above答案:C8. 在JavaScript中,以下哪个方法用于将字符串转换为小写?A. toUpperCase()B. toLowerCase()C. toLocaleUpperCase()D. toLocaleLowerCase()答案:B9. 如何在JavaScript中使用三元运算符?A. condition ? value1 : value2B. if (condition) { value1 } else { value2 }C. switch (condition) { case value1: value2 }D. Both A and B答案:A10. 在JavaScript中,以下哪个关键字用于声明一个类?A. classB. functionC. constructorD. prototype答案:A。
js笔试题及答案一、选择题1. 在JavaScript中,用于声明一个名为`myVar`的变量,并且初始化为`10`的正确语法是:A. `var myVar = 10;`B. `var myVar: 10;`C. `myVar = 10;`D. `myVar : 10;`答案:A2. 下列哪个选项是JavaScript的全局对象?A. `window`B. `document`C. `navigator`D. 以上全部答案:D3. 以下代码的输出结果是什么?```javascriptconsole.log(0.1 + 0.2);```A. `0.3`B. `0.30000000000000004`C. `30`D. `30.00`答案:B4. 在JavaScript中,如何获取当前页面的URL地址?A. `window.location.href`B. `document.URL`C. `window.URL`D. `document.location`答案:A5. 下列哪个关键字用于定义JavaScript中的类?A. `class`B. `type`C. `interface`D. `object`答案:A二、填空题1. 在JavaScript中,使用________关键字可以创建一个新对象,该对象是某个构造函数的实例。
答案:new2. 事件冒泡是指事件首先被________捕获,然后逐级向上传递到DOM树的根节点。
答案:目标元素3. 在JavaScript中,使用________方法可以遍历数组中的所有元素。
答案:forEach4. 要在一个JavaScript函数中终止当前循环,并立即开始下一次循环迭代,应使用________关键字。
答案:continue5. 要在一个JavaScript函数中终止当前循环,并且不再继续执行后续的循环迭代,应使用________关键字。
答案:break三、简答题1. 请解释JavaScript中的闭包是什么,并给出一个简单的示例。
1、使用typeof bar==="object"判断bar是不是一个对象有神马潜在的弊端?如何避免这种弊端?使用 typeof 的弊端是显而易见的 (这种弊端同使用 instanceof):12 3 4 5 6let obj ={};let arr =[];console.log(typeofconsole.log(typeofconsole.log(typeofobj === 'object'); //truearr ==='object');//truenull ==='object');//true从上面的输出结果可知, typeof bar === "object" 并不能准确判断 bar 就是一个 Object。
可以通过 Object.prototype.toString.call(bar) === "[object Object]" 来避免这种弊端:12 3 4 5 6let obj ={};let arr =[];console.log(Object.prototype.toString.call (obj));//[object Object] console.log(Object.prototype.toString.call (arr));//[object Array] console.log(Object.prototype.toString.call (null));//[object Null]另外,为了珍爱生命,请远离 ==:而 [] === false 是返回 false 的。
2、下面的代码会在console输出神马?为什么?(function(){1var a = b = 3;2 })();3console.log("a defined? " + (typeof a !== 'undefined')); 4console.log("b defined? " + (typeof b !== 'undefined')); 56这跟变量作用域有关,输出换成下面的:1 console.log(b); //3console,log(typeof a);//undefined2拆解一下自执行函数中的变量赋值:b = 3;var a = b;所以 b 成了全局变量,而 a 是自执行函数的一个局部变量。
javascript试题一、选择题1. JavaScript中的哪个对象是用来获取当前页面的URL地址的?A. windowB. documentC. historyD. location2. 下列哪个选项是JavaScript中用来创建一个新的日期对象的方法?A. new Date()B. Date()C. currentTime()D. getYear()3. 在JavaScript中,用于获取字符串长度的属性是什么?A. lengthB. sizeC. countD. number4. 下面的哪个关键字用于在JavaScript中定义一个循环,该循环会一直执行直到指定的条件被满足?A. forB. whileC. do...whileD. until5. 在JavaScript中,如何正确地将一个变量声明为全局变量?A. var globalVariable = "Hello, World!";B. globalVariable = "Hello, World!";C. window.globalVariable = "Hello, World!";D. All of the above二、填空题1. 在JavaScript中,使用________关键字可以将函数定义为匿名函数。
2. JavaScript中,可以使用________方法来连接两个或多个字符串。
3. 在JavaScript中,________对象提供了一系列的事件监听器和方法,可以用来处理浏览器事件。
4. 使用JavaScript创建一个空数组,可以使用________表达式。
5. 要将JavaScript代码中的一个元素添加到数组的末尾,可以使用数组对象的________方法。
三、判断题1. JavaScript是一种服务器端脚本语言。
()2. 在JavaScript中,所有的代码都必须放在HTML文档的<head>标签内。
javascript试题及答案一、选择题(每题2分,共20分)1. JavaScript是一种:A. 编程语言B. 操作系统C. 浏览器D. 数据库答案:A2. 下列哪个不是JavaScript的内置对象?A. ArrayB. DateC. MathD. String答案:D3. JavaScript中,用于判断一个变量是否为数组的函数是:A. isArray()B. typeofC. instanceofD. Array.isArray()答案:D4. 在JavaScript中,以下哪个关键字用于定义全局变量?A. varB. letC. constD. all of the above答案:D5. 下列哪个选项是JavaScript中的函数声明?A. function myFunction() {}B. const myFunction = function() {};C. let myFunction = function() {};D. both A and B答案:D6. JavaScript中,用于创建对象的语法是:A. var obj = new Object();B. var obj = { name: "Kimi" };C. both A and BD. none of the above答案:C7. 在JavaScript中,以下哪个方法用于将字符串转换为小写?A. toLowerCase()B. toUpperCase()C. toLower()D. toUpper()答案:A8. 以下哪个选项是JavaScript中的事件类型?A. clickB. loadC. both A and BD. none of the above答案:C9. JavaScript中,用于获取当前日期和时间的函数是:A. Date()B. new Date()C. getTime()D. both A and B答案:D10. 下列哪个选项是JavaScript中的异步编程模式?A. CallbackB. PromiseC. Async/AwaitD. all of the above答案:D二、填空题(每题2分,共20分)1. JavaScript是一种运行在______上的脚本语言。
《JavaScript》笔试考试题一、单选题(每题2分,共10题,总共20分)1、下面选项中不属于JS基本数据类型的是()。
A、数值型B、布尔型C、函数D、字符串型2、分析如下代码段:var c="10",d=10;document.write(c+d);运行后在页面上输出内容为()。
A、10B、20C、1010D、程序报错3、在javaScript 中,可以使用()方法向程序赋值。
A、alertB、promptC、confirmD、parseInt4、删除数组的最后一个元素,使用数组的哪个方法()A、push()B、shift()C、pop()D、slice()5、把一个字符串转换成数组,使用哪个方法?()A、concat()B、indexOf()C、split()D、substr()6、关于正则表达式声明6位数字的邮编,以下代码正确的是()A、var reg = /\d6/;B、var reg = \d{6}\;C、var reg = /\d{6}/;D、var reg = new RegExp("d{6}");7、下列选项中语法格式正确的是()A、if(i<10;i++)B、for(i=0;i<10)C、for i=1 to 10D、for(i=0;i<=10;i++)8、有语句“var x=0;while(____) x+=2;”要使while循环体执行10次,空白处的循环判定式应写为()A、x<10B、x<=10C、x<20D、x<=209、如何产生一个5 到9 之间的随机数整数,包含5且包含9()A、parseInt(Math.random()*9)B、parseInt(Math.random()*5+5)C、parseInt(Math.random()*5 + 4)D、parseInt(Math.random()*4+5)10、以下程序的运行结果是( )for(i=0, j=0; i<10; i++, j++){k = i + j;}A、k = 16B、k = 18C、k = 10D、k = 20二、多选题(每题2分,共5题,共10分)1、下面选项中属于数组方法的是()A、push()B、pop()C、split()D、join()2、循环三要素为()A、循环条件B、循环类型C、循环体D、循环增量3、以下关于Array数组对象的说法不正确的是()A、push和pop属于数组中的栈方法B、reverse用于对数组数据的倒序排列C、向数组的最后位置加一个新元素,可以用pop方法D、unshift方法用于向数组删除第一个元素4、有字符串var str = ”abcdeabc”,那么str.indexOf(‘a’ ,3)的返回值为()A、0B、5C、-1D、NaN5、!(3+true>5&&(5>3))结果不是():A 、1 B、true C、3 D、false三、填空题(每题2分,共5题,共10分)1、看以下JavaScript程序,运行程序后变量c的值为__________var c = 14;if (3) {var a,b,c;a=“1”;b=3;c=a+b+c++;}2、看以下JavaScript程序,运行程序后变量y的值为__________var x,y;x=10;y=x++;3、正则表达式的字符________可以匹配前一项1次或多次,等价于{1,}。
javascript笔试题目(共17道)/t/20061122/10/5175917.html上次部门招聘需要web前台技术笔试题目,我在网上搜索一下,还真找不到什么。
于是自己编了几道。
招聘结束了,题目估计没用了。
这里公布出来,对js感兴趣的新手可以做做看,或许有帮助哦。
答案就不公布了,自己一试就知道了。
一、单选题1、以下哪条语句会产生运行错误:()A. var obj = ();B. var obj = []; //对,定义数组C. var obj = {}; //对,定义对象D. var obj = //;//对,正则表达式直接量,一对斜线之间的文本就构成了一个正则表达式直接量。
在斜线对中的第二条斜线之后还可以跟有一个或多个字母。
例如:/^HTML/ /\bjavascript\b/i2、以下哪个单词不属于javascript保留字:()A. withB. parentC. classD. void3、请选择结果为真的表达式:()A. null instanceof ObjectB. null === undefinedC. null == undefined//对。
可以把null作为参数,这是一个特殊规定详细出处参考:/article/23127.htmD. NaN == NaN答案:A B C二、不定项选择题4、请选择对javascript理解有误的:(ABCD)A. JScript是javascript的简称//错。
在网络程序员谈论Internet Explorer中的JavaScript的时候,他们实际上是指JScript。
B. javascript是网景公司开发的一种Java脚本语言,其目的是为了简化Java的开发难度//错。
JavaScript是Netscape(网景公司)开发的。
对JavaScript最常见的误解是认为它是Sun Microsystems公司的程序设计语言Java的简化版本。
第1 题. 在IE 中要想获得当前窗口的位置可以使用window 对象的()方法A.windowXB.screenXC.screenLeftD.windowLeft正确答案为:C第2 题. 分析下面的JavaScript 代码段a=new Array(2,3,4,5,6);sum=0;输出结果是().(选择一项)for(i=1;i<a.length;i++ )sum +=a[i];document.write(sum);A.20B.18C.14D.12正确答案为:B第3 题. 下面对于JavaScript 中的单选按扭(Radio)的说法正确的是()。
(选择两项)A.单选按钮可以通过单击“选种”和“未选中”选项来进行切换B.单选按钮没有checked 属性C.单选按钮支持onClick 事件D.单选按钮的Length 属性返回一个选项组中单选项的个数正确答案为:AC第4 题. 下面哪个选项中的对象与浏览列表有关()A.location,historyB.window,locationC.navigator,windowD.historylist,location正确答案为:A第5 题. 下列()标记符属性为布尔属性(即只需要指定属性的存在,而不用指定其值的标记符属性)。
(选择一项)A.noshadeB.widthC.boldD.size正确答案为:A第6 题. 在某一页面下载时,要自动显示出另一页面,可通过在<body>中使用下边的哪一事件来完成()。
(选择一项)A.onloadB.onunloadC.onclickD.onchange正确答案为:A第7 题. 在HTML 中,Location 对象的()属性用于设置或检索URL 的端口号。
(选择一项)A.hostnameB.hostC.pathnameD.href正确答案为:B第8 题. 下面哪个选项中的对象与浏览列表有关()A.location,historyB.window,locationC.navigator,windowD.historylist,location正确答案为:A第9 题. 下列JavaScript 语句中,()能实现单击一个按钮时弹出一个消息框。
JavaScript编程入门考试(答案见尾页)一、选择题1. JavaScript是一种什么类型的语言?A. 面向对象B. 函数式C. 事件驱动D. 以上所有2. 在JavaScript中,哪个关键字用于声明变量?A. varB. letC. constD. void3. 以下哪个不是JavaScript中的数据类型?A. stringB. numberC. booleanD. object4. 在JavaScript中,什么是事件?A. 用户输入B. 网络请求C. 时间流逝D. 以上所有5. JavaScript中,哪个操作符用于赋值?A. =B. +=C. -=D. =6. 在JavaScript中,如何定义一个函数?A. 使用function关键字B. 使用var关键字C. 使用let关键字D. 使用const关键字7. 以下哪个不是JavaScript中的循环结构?A. for循环B. while循环C. do...while循环D. switch语句8. 在JavaScript中,什么是原型链?A. 用于实现继承B. 用于定义对象属性和方法C. 用于访问对象属性和方法D. 以上所有9. JavaScript中,哪个关键字用于限制变量作用域?A. varB. letC. constD. function10. 什么是JavaScript?A. JavaScript是一种编程语言,用于实现网页的动态效果和交互功能。
B. JavaScript是一种编程语言,用于实现操作系统和应用程序的开发。
C. JavaScript是一种编程语言,用于实现服务器端的编程。
D. JavaScript是一种编程语言,用于实现数据库管理。
11. JavaScript的主要应用场景是?A. 网页开发B. 操作系统开发C. 服务器端编程D. 数据库管理12. 在HTML中使用JavaScript的方法有几种?A. 1种B. 2种C. 3种D. 4种13. JavaScript中,以下哪个选项可以用来声明变量?A. varB. letC. constD. interface14. 在JavaScript中,以下哪个函数用于将字符串转换为数字?A. parseInt()B. parseFloat()C. isNaN()D. isFinite()15. JavaScript中的事件循环是什么?A. 一个无限循环,不断执行代码块B. 一个循环,根据事件的发生不断地执行代码块C. 一个循环,不断检查条件是否满足D. 一个循环,不断生成新的事件16. 在JavaScript中,以下哪个关键字用于定义函数?A. functionB. varC. letD. if17. 以下哪个选项是JavaScript中的数据类型?A. stringB. numberC. booleanD. object18. 在JavaScript中,以下哪个操作符用于字符串拼接?A. +B. +=C. =D. ==19. 以下哪个选项是JavaScript中的循环结构?A. forB. whileC. do...whileD. switch...case20. 什么是JavaScript?A. JavaScript是一种编程语言,用于在网页上添加交互性和动态效果。
js笔试题及答案### JavaScript 笔试题及答案#### 题目一:闭包的应用问题描述:编写一个函数,该函数能够创建一个计数器,每次调用返回的值递增。
代码示例:```javascriptfunction makeCounter() {let count = 0;return function() {count += 1;return count;};}// 使用示例let counter = makeCounter();console.log(counter()); // 输出:1console.log(counter()); // 输出:2```#### 题目二:数组去重问题描述:给定一个数组,编写一个函数来去除数组中的重复元素。
代码示例:```javascriptfunction unique(arr) {return [...new Set(arr)];}// 使用示例let array = [1, 2, 2, 3, 4, 4, 5];console.log(unique(array)); // 输出:[1, 2, 3, 4, 5]```#### 题目三:深拷贝问题描述:实现一个深拷贝函数,能够复制一个对象的所有属性,包括嵌套的对象。
代码示例:```javascriptfunction deepCopy(obj) {if (obj === null || typeof obj !== 'object') {return obj;}let copy = Array.isArray(obj) ? [] : {};for (let attr in obj) {if (obj.hasOwnProperty(attr)) {copy[attr] = deepCopy(obj[attr]);}}return copy;// 使用示例let obj = { a: 1, b: { c: 2 } };let copyObj = deepCopy(obj);console.log(copyObj); // 输出:{ a: 1, b: { c: 2 } }```#### 题目四:实现 Promise.all问题描述:实现一个 Promise.all 函数,该函数接收一个 Promise 数组,当所有的 Promise 都成功时,返回一个成功的 Promise,其结果是一个数组。
js试题与答案一、选择题1. 在JavaScript中,下列关键字用于声明变量的是:A. varB. letC. constD. all of the above2. 下列哪个是JavaScript中的注释符号?A. //B. /*C. #D. //3. 以下哪个选项是将JavaScript代码嵌入HTML页面的正确方式?A. 使用<script>标签将代码直接写在HTML文件中。
B. 使用<link>标签引入外部的JavaScript文件。
C. 使用<style>标签引用JavaScript代码。
D. 以上都不是。
4. 下面哪个选项是JavaScript中的原始数据类型?A. ObjectB. ArrayC. StringD. Function5. 以下哪种循环在JavaScript中是无限循环?A. for循环B. while循环C. do-while循环D. 以上都不是二、填空题1. JavaScript中用于声明常量的关键字是______。
2. JavaScript中获取元素的方法是通过______。
3. JavaScript中将字符串转换为整数的方法是______。
4. JavaScript中判断两个变量是否相等的运算符是______。
5. JavaScript中将字符串转换为小写的方法是______。
三、简答题1. 请解释JavaScript中的事件冒泡是什么意思。
事件冒泡指的是事件发生后,会从最内层的元素逐级向外层元素触发,即事件会沿着DOM树层级向上传播。
这意味着如果在一个元素上触发了某个事件,同样的事件也会在父元素上被触发。
通过事件冒泡,可以方便地对多个元素进行统一的事件处理。
2. 解释JavaScript中的闭包是什么,以及它的优缺点。
闭包是指在一个函数内部定义的函数,并且将内部函数作为返回值或传递给其他函数。
闭包可以访问外部函数中声明的变量和函数,即使外部函数已经执行完毕。
js基础笔试题含详解共5道题目1: 作用域和闭包```javascriptvar x = 10;function foo() {var y = 5;return function() {console.log(x + y);};}var bar = foo();bar(); // 输出什么?```解释1:`bar` 是`foo` 返回的匿名函数的引用,该函数能够访问`foo` 作用域中的变量。
在该函数中,`x` 是全局变量,`y` 是`foo` 函数中的局部变量。
所以,`bar()` 输出`15`。
---题目2: 原型链```javascriptfunction Animal(name) { = name;}Animal.prototype.speak = function() {console.log( + ' makes a sound');};function Dog(name, breed) {Animal.call(this, name);this.breed = breed;}Dog.prototype = Object.create(Animal.prototype);Dog.prototype.constructor = Dog;Dog.prototype.bark = function() {console.log( + ' barks');};var myDog = new Dog('Buddy', 'Golden Retriever');myDog.speak(); // 输出什么?myDog.bark(); // 输出什么?```解释2:`myDog` 是`Dog` 的实例,因此它继承了`Animal` 的原型。
`speak` 方法在`Animal` 原型上定义,因此`myDog.speak()` 输出`'Buddy makes a sound'`。
js笔试题一、选择题1. 在JavaScript中,用于声明一个名为“myArray”的数组,以下哪个选项是正确的语法?A. var myArray = new Array();B. var myArray = [];C. var myArray = list;D. var myArray = array();2. 下列哪个选项是JavaScript中的一等公民?A. 函数B. 对象C. 数组D. 字符串3. 在JavaScript中,如何正确地将一个字符串“Hello, World!”转换为小写?A. var lowerCaseString = "Hello, World!".toLowercase();B. var lowerCaseString = "Hello, World!".toLowerCase();C. var lowerCaseString = "Hello, World!".to lower case;D. var lowerCaseString = "Hello, World!".lowerCase();4. 下面哪个JavaScript函数用于检查一个字符串是否以给定的子字符串结束?A. endsWith()B. includes()C. startsWith()D. contains()5. 在JavaScript中,以下哪个选项正确地创建了一个以2为初始值的整数类型变量?A. var myNumber = new Number(2);B. var myNumber = 2;C. var myNumber = Number(2);D. var myNumber = integer(2);二、填空题1. 在JavaScript中,使用________关键字可以声明一个全局变量。
2. 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是弱类型语言。
以下为Web前端开发笔试题集锦之Javascript篇,移步HTML/CSS篇1, 判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母、数字、下划线,总长度为5-20var reg = /^[a-zA-Z][a-zA-Z_0-9]{4,19}$/;reg.test("a1a__a1a__a1a__a1a__");2,截取字符串abcdefg的efgvar str = "abcdefg";if (/efg/.test(str)) {var efg = str.substr(str.indexOf("efg"), 3);alert(efg);}3,判断一个字符串中出现次数最多的字符,统计这个次数//将字符串的字符保存在一个hash table中,key是字符,value是这个字符出现的次数var str = "abcdefgaddda";var obj = {};for (var i = 0, l = str.length; i < l; i++) {var key = str[i];if (!obj[key]) {obj[key] = 1;} else {obj[key]++;}}/*遍历这个hash table,获取value最大的key和value*/var max = -1;var max_key = "";var key;for (key in obj) {if (max < obj[key]) {max = obj[key];max_key = key;}}alert("max:"+max+" max_key:"+max_key);4,IE与FF脚本兼容性问题(1) window.event:表示当前的事件对象,IE有这个对象,FF没有,FF通过给事件处理函数传递事件对象(2) 获取事件源IE用srcElement获取事件源,而FF用target获取事件源(3) 添加,去除事件IE:element.attachEvent(“onclick”, function) element.detachEvent(“onclick”, function)FF:element.addEventListener(“click”, function, true) element.removeEventListener(“click”, function, true)(4) 获取标签的自定义属性IE:div1.value或div1[“value”]FF:可用div1.getAttribute(“value”)(5) document.getElementByName()和document.all[name]IE;document.getElementByName()和document.all[name]均不能获取div元素FF:可以(6) input.type的属性IE:input.type只读FF:input.type可读写(7) innerText textContent outerHTMLIE:支持innerText, outerHTMLFF:支持textContent(8) 是否可用id代替HTML元素IE:可以用id来代替HTML元素FF:不可以这里只列出了常见的,还有不少,更多的介绍可以参看JavaScript在IE浏览器和Firefox浏览器中的差异总结5,规避javascript多人开发函数重名问题(1) 可以开发前规定命名规范,根据不同开发人员开发的功能在函数前加前缀(2) 将每个开发人员的函数封装到类中,调用的时候就调用类的函数,即使函数重名只要类名不重复就ok6,javascript面向对象中继承实现javascript面向对象中的继承实现一般都使用到了构造函数和Prototype原型链,简单的代码如下:function Animal(name) { = name;}Animal.prototype.getName = function() {alert()}function Dog() {};Dog.prototype = new Animal("Buddy");Dog.prototype.constructor = Dog;var dog = new Dog();7,FF下面实现outerHTMLFF不支持outerHTML,要实现outerHTML还需要特殊处理思路如下:在页面中添加一个新的元素A,克隆一份需要获取outerHTML的元素,将这个元素append 到新的A中,然后获取A的innerHTML就可以了。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>获取outerHMTL</title><style>div{ background:#0000FF;width:100px;height:100px;}span{ background:#00FF00;width:100px;height:100px;}p{ background:#FF0000;width:100px;height:100px;}</style></head><body><div id="a"><span>SPAN</span>DIV</div><span>SPAN</span><p>P</p><script type="text/javascript">function getOuterHTML(id){var el = document.getElementById(id);var newNode = document.createElement("div");document.appendChild(newNode);var clone = el.cloneNode(true);newNode.appendChild(clone);alert(newNode.innerHTML);document.removeChild(newNode);}getOuterHTML("a");</script></body></html>8,编写一个方法求一个字符串的字节长度假设:一个英文字符占用一个字节,一个中文字符占用两个字节function GetBytes(str){var len = str.length;var bytes = len;for(var i=0; i<len; i++){if (str.charCodeAt(i) > 255) bytes++;}return bytes;}alert(GetBytes("你好,as"));9,编写一个方法去掉一个数组的重复元素var arr = [1 ,1 ,2, 3, 3, 2, 1];Array.prototype.unique = function(){var ret = [];var o = {};var len = this.length;for (var i=0; i<len; i++){var v = this[i];if (!o[v]){o[v] = 1;ret.push(v);}}return ret;};alert(arr.unique());10,写出3个使用this的典型应用(1)在html元素事件属性中使用,如<input type=”button” onclick=”showInfo(this);” value=”点击一下”/>(2)构造函数function Animal(name, color) { = name;this.color = color;}(3)<input type="button" id="text" value="点击一下" /><script type="text/javascript">var btn = document.getElementById("text");btn.onclick = function() {alert(this.value); //此处的this是按钮元素}</script>(4)CSS expression表达式中使用this关键字<table width="100px" height="100px"><tr><td><div style="width:expression(this.parentNode.width);">div element</div> </td></tr></table>12,如何显示/隐藏一个DOM元素?el.style.display = "";el.style.display = "none";el是要操作的DOM元素13,JavaScript中如何检测一个变量是一个S tring类型?请写出函数实现String类型有两种生成方式:(1)V ar str = “hello world”;(2)V ar str2 = new String(“hello world”);function IsString(str){return (typeof str == "string" || str.constructor == String);}var str = "";alert(IsString(1));alert(IsString(str));alert(IsString(new String(str)));15,补充代码,鼠标单击Button1后将Button1移动到Button2的后面<div> <input type=”button” id =”button1″ value=”1″ onclick=”???”> <input type=”button” id =”button2″ value=”2″ /”> </div><div><input type="button" id ="button1" value="1" onclick="moveBtn(this);"><input type="button" id ="button2" value="2" /></div><script type="text/javascript">function moveBtn(obj) {var clone = obj.cloneNode(true);var parent = obj.parentNode;parent.appendChild(clone);parent.removeChild(obj);}</script>16,JavaScript有哪几种数据类型简单:Number,Boolean,String,Null,Undefined复合:Object,Array,Function17,下面css标签在JavaScript中调用应如何拼写,border-left-color,-moz-viewport borderLeftColormozViewport19,如何控制alert中的换行\n alert(“p\np”);20,请实现,鼠标点击页面中的任意标签,alert该标签的名称.(注意兼容性)<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>鼠标点击页面中的任意标签,alert该标签的名称</title><style>div{ background:#0000FF;width:100px;height:100px;}span{ background:#00FF00;width:100px;height:100px;}p{ background:#FF0000;width:100px;height:100px;}</style><script type="text/javascript">document.onclick = function(evt){var e = window.event || evt;var tag = e["target"] || e["srcElement"];alert(tag.tagName);};</script></head><body><div id="div"><span>SPAN</span>DIV</div><span>SPAN</span><p>P</p></body></html>21,请编写一个JavaScript函数parseQueryString,它的用途是把URL参数解析为一个对象,如:var url = “/index.php?key0=0&key1=1&key2=2″;function parseQueryString(url){var params = {};var arr = url.split("?");if (arr.length <= 1)return params;arr = arr[1].split("&");for(var i=0, l=arr.length; i<l; i++){var a = arr[i].split("=");params[a[0]] = a[1];}return params;}var url = "/index.php?key0=0&key1=1&key2=2";var ps = parseQueryString(url);alert(ps["key1"]);22,ajax是什么? ajax的交互模型? 同步和异步的区别? 如何解决跨域问题?Ajax是多种技术组合起来的一种浏览器和服务器交互技术,基本思想是允许一个互联网浏览器向一个远程页面/服务做异步的http调用,并且用收到的数据来更新一个当前web页面而不必刷新整个页面。