JS题目

定义一个对象o
o中有两个方法,getO()和setO(str),str是字符串
默认情况下调用getO() ,输出结果是"aaa",当setO("bbb")后,再次调用getO(),得到结果“bbb”

 1 var o = {
 2     data: "aaa",
 3     getO: function(){
 4         console.log(this.data);  //如果这里不加this,会报错,说data未定义,why
 5     },
 6     setO: function(str){
 7         this.data = str; //问题同上
 8     }
 9 }
10 o.getO();
11 o.setO("aaa");
12 o.getO();

请实现,鼠标点击页面中的任意标签,alert该标签的名称.(注意兼容性)

1、给document添加click事件:document.onclick=function(){};

2、兼容性 e = event || window.event;   target = event.target || event.srcElement; (这里必须为event, e, evt等无效)

3、得到target的标签:target.tagName;

代码:

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4     <script>
 5        document.onclick = function show(event) {
 6              e = event|| window.event;
 7                var target = event.target || event.srcElement;
 8                alert(target.tagName);
 9        }
10     </script>
11 </head>
12 <body>
13     <div id="div"><span>SPAN</span>DIV</div>
14     <span>SPAN</span>
15     <p>P</p>
16 <body>
17 </html>

判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母、数字、下划线,总长度为5-20

var reg = /^[a-zA-Z][a-zA-Z_0-9]{4,19}$/;
reg.test("a1a__a1a__a1a__a1a__");

判断一个字符串中出现次数最多的字符,统计这个次数

1、循环for/in遍历对象

2、if(!res[key]) {res[key] = 1;} else {...}

 1         var str = "aabbbsfdsf";
 2         var res = {};
 3         for(var i = 0; i < str.length; i++) {
 4             var tmp = str[i];
 5             if(!res[tmp]) {
 6                 res[tmp] = 1;
 7             }else {
 8                 res[tmp]++;
 9             }
10         }
11
12       var big = 0;
13       var note = 0;
14         for(var key in res) {
15             if(res[key] > note) {
16                 note = res[key];
17                 big = key;
18             }
19         }
20         console.log(big);

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 outerHTML
IE:支持innerText, outerHTML
FF:支持textContent

(8) 是否可用id代替HTML元素
IE:可以用id来代替HTML元素
FF:不可以

给数组添加一个方法,去掉数组里面的重复元素

1、this;   2、prototype; 3、splice

方法一、

 1 var arr = [1 ,1 ,2, 3, 3, 2, 1];
 2 Array.prototype.unique = function(){
 3          var ret = [];
 4          var o = {};
 5          var len = this.length;
 6          for (var i=0; i<len; i++){
 7                    var v = this[i];
 8                    if (!o[v]){
 9                                 o[v] = 1;
10                                 ret.push(v);
11                   }
12        }
13         return ret;
14 };
15 console.log(arr.unique());

方法二、

 1      var arr = [1,2,3,2,3,4,5];
 2      console.log(arr);
 3     Array.prototype.unique = function() {
 4         var obj = {};
 5         for(var i = 0; i < this.length; i++) {
 6             if(!obj[this[i]]){
 7                 obj[this[i]] = 1;
 8             }else {
 9                 this.splice(i,1);
10                 i = i-1;
11             }
12         }
13         console.log(this);
14         return this;
15     }
16     arr.unique();
17     alert(arr);

http://www.w3cfuns.com/forum.php?mod=viewthread&tid=1955&extra=page%3D1%26filter%3Dtypeid%26typeid%3D177%26typeid%3D177

时间: 2024-08-24 01:19:11

JS题目的相关文章

一些JS题目的解法

题目是从http://www.cnblogs.com/TomXu/archive/2012/02/10/2342098.html看到的. 答案参考了文章的评论,也有自己的一些改进. 1.找出数字数组中最大的元素(使用Mach.max函数) Math.max.apply(null,[1,2,3]); 2.转化一个数字数组为function数组(每个function都弹出相应的数字) [1,2,3].map(function(x){return function(){return x;};}); 3

一道原生js题目引发的思考(鼠标停留区块计时)

我瞎逛个啥论坛,发现了一个题目,于是本着练手的心态就开始写起来了,于是各种问题接踵而至,收获不小. 题目是这样的: 刚看上去,没什么特别,心里想了,我就用mouseover和mouseout事件,然后绑个定时器不就行了嘛~.......于是还没开始写呢,就被问到了,那mouseover和mouseenter这两个事件有什么区别的?为什么不用mouseenter呢? 然后我就仔细想了下mouseover和mouseenter之间的区别,下面是书上列出的定义: ->mouseenter:在鼠标光标从

阿里巴巴Web前端面试的一道JS题目,求解答!!!

题目大概是这种: function outer(){ return inner; var inner = "a"; function inner(){}; inner = 9; } alert(typeof outer()); 当时的回答是结果是--function (回来測试结果也是一样) 本来的想法是,inner 在outer 运行的过程中,以下有一个函数声明,而函数声明会提升,也就是 JS 解析器会领先读取函数声明,假设不是声明函数而是定义一个变量,那结果就会是 undefine

汤姆大叔的6道js题目

汤姆大叔的6道javascript编程题题解 看汤姆大叔的博文,其中有篇(猛戳这里)的最后有6道编程题,于是我也试试,大家都可以先试试. 1.找出数字数组中最大的元素(使用Math.max函数) 1 2 3 var a = [1, 2, 3, 6, 5, 4]; var ans = Math.max.apply(null, a); console.log(ans);  // 6 这题很巧妙地用了apply,如果不是数组,是很多数字求最大值,我们知道可以这样: 1 2 var ans = Math

看到了js题目

1 请实现,鼠标点击页面中的任意标签,alert该标签的名称 <script type="text/javascript"> window.onload = function () { //alert(document.all.toString()); var objs = document.all; for (var i = 0; i < objs.length; i++) { //alert(objs[i]); objs[i].onclick = function

几个简单的html+css+js题目

1.页面中有一图片,请喜爱下划线处添加代码能够实现隐藏该图片的功能 1 <img id="pic" src="door.jpg" width="200" height="300" ___________ > [解]为图片添加display属性为hidden即可. 2.编写样式表,要求图片在文字右方,标题字号16px 粗体居中,内容字号10px,图片宽度为300px. [解]图片在文字右方可以通过右浮动和设置marg

2019.7.20十道js题目

// 1.声明一个变量,保存学生的年龄(stuAge),值为18 var stuAge = 18; // 2.声明一个变量,保存学生的成绩(stuScore),值为98.5 var stuScore = 60; // 3.声明一个变量,保存学生的姓名(stuName),值为张三丰 var stuName = "张三丰" ; // 4.声明一个变量,保存学生的性别(stuSex),值为女 var stuSex = "女"; // 5.打印以上输入的变量的值 控制台输出

几道好玩的JS题目,看看你能答中几道。

1,for (var i = 0; i < 5; i++) { console.log(i); } 这几行代码会输出什么? 输出 0 1 2 3 4 2,for (var i = 0; i < 5; i++) { setTimeout(function() { console.log(i); }, 1000 * i); } 会输出什么? 输出5次5 3,那应该怎么改才能把上面的代码输出 0 到 4 呢?加个闭包函数即可 for (var i = 0; i < 5; i++) { (fun

JS经典题目解析

此次列举出一些觉得有意思的JS题目(来源于出了名的44题),相信有非常多关于这些题目的博客,写这篇博客的目的在于巩固一些知识点,希望能和读者共同进步. 1. map函数执行过程 ["1", "2", "3"].map(parseInt) 答案: [1, NaN, NaN] 解析: map(function callback(current, index, array)), map 回掉提供三个参数,current value, index of