day12
1-var str = “hgDzGHjhcxghvcgxzhjzcgjhxzgcjhgsduyfuys”将字符串中出现次数最多的字母弹框输 出
var str = 'hgDzGHjhcxghvcgxzhjzcgjhxzgcjhgsduyfuys'; var result = maxN(str); function maxN(str) { //定义一个json对象用于保存str的每一项以及出现次数。 var json = {}; //遍历str,循环其中的每一个字符,将某个字符的值及出现的个数拿出来作为json的key和value for(var i=0;i<str.length;i++){ //判断json中是否有当前str的值 if(!json[str.charAt(i)]){ //如果不存在 就将当前值添加到json中去,并设置1 json[str.charAt(i)] = 1; } else { //如果存在的话就让数组中已有的当前值的value值++; json[str.charAt(i)] ++; } } //存储出现次数最多的值和次数 var number = ''; var num = 0; //遍历json 使用打擂算法统计需要的值 for(var j in json){ //如果当前项大于下一项 if (json[j]>num) { //就让当前值更改为出现最多次数的值 num = json[j]; number = j; } } return { number:number, num:num } } alert('该字符串出现'+ result.num+'次的'+ result.number);
2-举例实现对象的深拷贝
function deepClone(source){
const targetObj = source.constructor === Array ? [] : {}; // 判断复制的目标是数组还是对象
for(let keys in source){ // 遍历目标
if(source.hasOwnProperty(keys)){
if(source[keys] && typeof source[keys] === 'object'){ // 如果值是对象,就递归一下
targetObj[keys] = source[keys].constructor === Array ? [] : {};
targetObj[keys] = deepClone(source[keys]);
}else{ // 如果不是,就直接赋值
targetObj[keys] = source[keys];
}
}
}
return targetObj;
}
3-举例实现对象方法的继承
function Person (name) {
this.name = name;
this.friends = ['小李','小红'];
this.getName = function () {
return this.name;
}
};
// Person.prototype.geSex = function () { //对原型进行扩展的方法就无法复用了
// console.log("男");
// };
function Parent = (age) {
Person.call(this,'老明'); //这一句是核心关键
//这样就会在新parent对象上执行Person构造函数中定义的所有对象初始化代码,
// 结果parent的每个实例都会具有自己的friends属性的副本
this.age = age;
};
var result = new Parent(23);
console.log(result.name); //老明
console.log(result.friends); //["小李", "小红"]
console.log(result.getName()); //老明
console.log(result.age); //23
console.log(result.getSex()); //这个会报错,调用不到父原型上面扩展的方法
4-写一个左中右布满全屏,其中左右固定宽度 200px,中间部分自适应,要求先加载中间部 分,写出结构和样式
5-封装一个 jqery 的插件
1.封装静态插件 创建一个jquery文件 里面可以封装多个方法 命名格式多位 jquery.[插件名].js
2.封装成员函数插件也可以理解为动态插件 创建一个jquery文件 里面可以封装多个方法 命名格式多位 jquery.[插件名].js
最好的编写方式

浙公网安备 33010602011771号