就业数据资源平台
当前位置:首页 > 笔试题目
Web前端开发笔试题(Javascript篇)


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


  var reg = /^[a-zA-Z][a-zA-Z_0-9]{4,19}$/;


  reg.test("a1a__a1a__a1a__a1a__");


  截取字符串abcdefg的efg


  var str = "abcdefg";


  if (/efg/.test(str)) {


  var efg = str.substr(str.indexOf("efg"), 3);


  alert(efg);


  }


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


  //将字符串的字符保存在一个hash table中,key是字符,value是这个字符出现的次数


  var str = "abcdefgaddda";


  var obj = {};


  for (var i = 0, l = str.length; i < l; i++) {


  var key = str[i];


  if (typeof obj[key] == 'undefined') {


  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);


  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:不可以


  这里只列出了常见的,还有不少,就不一一列出了….


  规避javascript多人开发函数重名问题


  (1) 可以开发前规定命名规范,根据不同开发人员开发的功能在函数前加前缀


  (2) 将每个开发人员的函数封装到类中,调用的时候就调用类的函数,即使函数重名只要类名不重复就ok


  javascript面向对象中继承实现


  //javascript面向对象中的继承实现一般都使用到了构造函数和Prototype原型链,简单的代码如下:


  //(1)对象继承方法


  Function Animal(name) {


  This.nme = name;


  }


  Animal.prototype.getName = function() {alert(this.name)}


  Var Dog = new Animal(“Buddy”);


  //(1) 方法继承方法


  function Animal(name) {


  this.name = name;


  }


  Animal.prototype.getName = function() {alert(this.name)}


  function Dog() {};


  Dog.prototype = new Animal("Buddy");


  Dog.prototype.constructor = Dog;


  var dog = new Dog();


  FF下面实现outerHTML


  FF不支持outerHTML,要实现outerHTML还需要特殊处理


  思路如下:


  在页面中添加一个新的元素A,克隆一份需要获取outerHTML的元素,将这个元素append到新的A中,然后获取A的innerHTML就可以了。


  


  


  


  


  


  


  


  



 


  sdfshdfklsjdafklsajdf;lajk;dfjklsjdfk


  



 


  


 

 





  


  


  编写一个方法 求一个字符串的字节长度


  /*假设:


  一个英文字符占用一个字节


  一个中文字符占用两个字节*/


  (function getByte(str) {


  var num = 0;


  for (var i = 0, l = str.length; i < l; i++) {


  if (str.charCodeAt(i) > 255) {


  num += 2;


  } else {


  num++;


  }


  }


  alert(num);


  })("你好,John!")


  编写一个方法 去掉一个数组的重复元素


  Array.prototype.unique = function() {


  var ret = [];


  var o = {};


  for(var i=0, len=this.length; i


  if(!o[this[i]]){


  ret.push(this[i]);


  o[this[i]] = this[i];


  }


  }


  return ret;


  }


  var arr = [1,2,3,1,1,3,3,4,5,6,5,5,5,5,7,8,9,10,9,9,9];


  var unique = arr.unique();


  console.log(unique); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


  获取一个数组中的重复项


  var arr = [1,2,3,1,1,3,3,4,5,6,5,5,5,5,7,8,9,10,9,9,9];


  Array.prototype.delete = function() {


  var arr = this;


  var obj = {};


  var delArr = [];


  for (var i = 0, l=arr.length; i < l;)


  {


  var key = arr[i];


  if (typeof obj[key] == 'undefined')


  {


  obj[key] = "1";


  i++;


  continue;


  }


  delArr.push(arr.splice(i, 1)[0]);


  var l = arr.length;


  }


  return delArr;


  }


  var delArr = arr.delete();//[1, 1, 3, 3, 5, 5, 5, 5, 9, 9, 9]


  写出3个使用this的典型应用


  //(1)在html元素事件属性中使用,如


  


  //(2)构造函数


  function Animal(name, color) {


  This.name = name;


  this.color = color;


  }


  //(3)


  Var btn = document.getElementById(“text”);


  Btn.onclick = function() {


  Alert(this.value); //此处的this是按钮元素


  }


  //(4)CSS expression表达式中使用this关键字



 


  


 


  


 


  


 


  


 









 


  


div element

 


  




  如何显示/隐藏一个DOM元素?


  Ele.style.display =””;


  Ele.style.display =”none”;


  Ele是要操作的DOM元素


  JavaScript中如何检测一个变量是一个String类型?请写出函数实现


  



 


  /*Str有两种生成方式:


  (1)Var str = “hello world”;


  (2)Var str2 = new String(“hello world”);*/


  function isString(str) {


  if (typeof str == “string” || str.constructor == String) {


  return true;


  }


  Return false;


  }


  网页中实现一个计算当年还剩多少时间的倒数计时程序,要求网页上实时动态显示“××年还剩××天××时××分××秒”


  



 


  


  


  


  


  


  


  


  





  


  


  补充代码,是鼠标单击后Button1到Button2的后面


  



 


  


  


  



 


  



 


  


  


  



 


  



 


  function addAfterButton2(obj) {


  var clone = obj.cloneNode(true);


  var parent = obj.parentNode;


  parent.appendChild(clone);


  parent.removeChild(obj);


  }


  JavaScript有哪几种数据类型


  简单:Number,Boolean,String,Null,Undefined


  复合:Object,Array,Function


  下面css标签在JavaScript中调用应如何拼写,border-left-color,-moz-viewport


  borderLeftColor


  mozViewport


  JavaScript中如何对一个对象进行深度clone


  深度clone


  function Object.prototype.cloneAll(){


  function clonePrototype() {


  clonePrototype.prototype = this;


  var obj = new clonePrototype();


  for(var ele in obj) {


  if(typeof(obj[ele]) == 'object') obj[ele] = obj[ele].cloneAll();


  }


  return obj;


  }


  }


  浅度clone


  var obj = new Object();


  obj.name = "zjl";


  Object.prototype.getName = function() {alert(this.name);}


  Object.prototype.cloneDeep = function() {


  var clone = {};


  for (var key in this) {


  clone[key] = this[key];


  }


  return clone;


  }


  console.log(obj);


  var clone = obj.cloneDeep()


  console.log(clone);


  如何控制alert中的换行


  \n alert(“p\np”);


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


  


  


  


  


  


  


  


  


  


  

就业数据资源平台