1-var str = “hgDzGHjhcxghvcgxzhjzcgjhxzgcjhgsduyfuys”将字符串中出现次数最多的字母弹框输出
1 var str = 'hgDzGHjhcxghvcgxzhjzcgjhxzgcjhgsduyfuys'; 2 var result = maxN(str); 3 function maxN(str) { //定义一个json对象用于保存str的每一项以及出现次数。 4 var json = {}; //遍历str,循环其中的每一个字符,将某个字符的值及出现的个数拿出来作为json的key和value 5 for(var i=0;i<str.length;i++){ //判断json中是否有当前str的值 6 if(!json[str.charAt(i)]){ 7 //如果不存在 就将当前值添加到json中去,并设置1 8 json[str.charAt(i)] = 1; 9 } else { //如果存在的话就让数组中已有的当前值的value值++; 10 json[str.charAt(i)] ++; 11 } 12 } //存储出现次数最多的值和次数 13 var number = ''; 14 var num = 0; 15 //遍历json 使用打擂算法统计需要的值 16 for(var j in json){ //如果当前项大于下一项 17 if (json[j]>num) { //就让当前值更改为出现最多次数的值 18 num = json[j]; number = j; 19 } 20 } return { 21 number:number, num:num 22 } 23 } 24 alert('该字符串出现'+ result.num+'次的'+ result.number);
2-举例实现对象的深拷贝
1 var json1={"name":"小白","age":18,"arr1":[1,2,3,4,5],"arr3":[{"name1":"小白"},{"job":"前端开发"}]}; 2 var json2={}; 3 function copy(obj1,obj2){ 4 var obj2=obj2||{}; //最初的时候给它一个初始值=它自己或者是一个json 5 for(var name in obj1){ 6 if(typeof obj1[name] === "object"){ //先判断一下obj1[name]是不是一个对象 7 obj2[name]= (obj1[name].constructor===Array)?[]:{}; //我们让要复制的对象的name项=数组或者是json 8 copy(obj1[name],obj2[name]); //然后来无限调用函数自己 递归思想 9 }else{ 10 obj2[name]=obj1[name]; //如果不是对象,直接等于即可,不会发生引用。 11 } 12 } 13 return obj2; //然后在把复制好的对象给return出去 14 } 15 json2=copy(json1,json2) 16 json1.arr1.push(6); 17 alert(json1.arr1); //123456 18 alert(json2.arr1); //123456
拷贝总结使用JSON.pare()和JSON.stringify()对对象进行深拷贝
3-举例实现对象方法的继承1 function Parent(firstname) 2 { 3 this.fname=firstname; 4 this.age=40; 5 this.sayAge=function() 6 { 7 console.log(this.age); 8 } 9 } 10 function Child(firstname) 11 { 12 this.parent=Parent; 13 this.parent(firstname); 14 delete this.parent; 15 this.saySomeThing=function() 16 { 17 console.log(this.fname); 18 this.sayAge(); 19 } 20 } 21 var mychild=new Child("李"); 22 mychild.saySomeThing();
4-写一个左中右布满全屏,其中左右固定宽度 200px,中间部分自适应,要求先加载中间部分,写出结构和样式
css样式默认加载顺序
样式表的元素选择器选择越精确,则其中的样式优先级越高:
id选择器指定的样式 > 类选择器指定的样式 > 元素类型选择器指定的样式
对于相同类型选择器制定的样式,在样式表文件中,越靠后的优先级越高,所以把类选择器center写在后面就可以了。
1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <style> 7 html,body{ 8 margin: 0; 9 width: 100%; 10 } 11 #leftDiv,#rightDiv{ 12 width: 200px; 13 height: 200px; 14 position: absolute; 15 top: 0; 16 } 17 #leftDiv{ 18 background: #16A05D; 19 left: 0; 20 } 21 #rightDiv{ 22 background: #DC5044; 23 right: 0; 24 } 25 #centerDiv{ 26 background: #FFCD41; 27 height: 200px; 28 } 29 </style> 30 </head> 31 <body> 32 <div id="leftDiv">左边div</div> 33 <div id="centerDiv">中间div</div> 34 <div id="rightDiv">右边div</div> 35 </body> 36 </html>5-封装一个 jqery 的插件
1 (function($){ 2 /**定义函数,jquery插件调用函数*/ 3 $.fn.select=function(options,param){ 4 if(typeof options == "string"){ 5 var method = $.fn.select.methods[options]; 6 if(method){ return method(this,param); } 7 } 8 } 9 /**定义函数事件*/ 10 $.fn.select.methods={ 11 onl oadSuccess: function(){}, 12 onSelect: function(record){}, 13 loadData: function(jq, data){ 14 return jq.each(function(){ loadData(this, data); }); 15 }, 16 reload: function(jq, ajax){ 17 return jq.each(function(){ request(this, ajax); }); 18 }, 19 setValue: function(jq, value){ 20 return jq.each(function(){ setValue(this, value); }); 21 } 22 } 23 /**函数默认属性及事件*/ 24 $.fn.select3.defaults = { 25 id: null, 26 disabled: false, 27 //url:base_url+'/select/getSelectProj', 28 dataType:'json', 29 type:'GET', 30 //contentType:'application/json', 31 valueField: 'uuid', 32 textField: 'name', 33 onl oadSuccess: function(data){},// 加载成功时触发的事件 34 onl oadError: function(err){}, 35 onSelect:function(row){}// 选中时触发的事件 36 }; 37 /**请求数据*/ 38 function request(target, options){ 39 var opts = $.data(target, 'select3').options; 40 if (options.url){ 41 opts = $.extend(opts, options); 42 }else{ 43 return; 44 } 45 $.ajax({ url : opts.url, type : opts.type, data : opts.param, //dataType : opts.dataType, contentType : opts.contentType, success:function(data){ loadData(target, data); }, error:function(){ opts.onLoadError.apply(this, arguments); } }) 46 }; 47 /**加载数据*/ 48 function loadData(target, data){ 49 var rows = data.rows; 50 var opts = $.data(target, 'select3').options; 51 $(target).empty(); 52 for(var i=0,j=rows.length; i<j; i++){ 53 var item = $('<option></option>').appendTo(target); 54 item.attr('value', rows[i][opts.valueField]); 55 item.html(rows[i][opts.textField]); 56 } 57 58 opts.onLoadSuccess.call(target, data);// 回调成功加载事件方法 59 $(target).change(function(){ var itemValue = $(this).children('option:selected').val(); for(var i=0,j=rows.length; i<j; i++){ if (rows[i][opts.valueField] == itemValue){ opts.onSelect.call(target, rows[i]); return; } } }); }; /**设置值*/ function setValue(target, value){ var opts = $.data(target, 'select3').options; $(target).val(value); }; })(jQuery) 60 61 //使用 62 <script src="select.js"></script> 63 <script language="javascript"> 64 // 初始化 65 $("#id").select({ 66 url:, 67 onl oadSuccess:function(){ 68 } 69 }); 70 // 调用指定函数 71 $("#id").("reload",{参数}); 72 </script>