Day12
1-var str = “hgDzGHjhcxghvcgxzhjzcgjhxzgcjhgsduyfuys”将字符串中出现次数最多的字母弹框输 出
2-举例实现对象的深拷贝
3-举例实现对象方法的继承
4-写一个左中右布满全屏,其中左右固定宽度 200px,中间部分自适应,要求先加载中间部 分,写出结构和样式
5-封装一个 jqery 的插件
1-var str = “hgDzGHjhcxghvcgxzhjzcgjhxzgcjhgsduyfuys”将字符串中出现次数最多的字母弹框输出
数组+对象
<script>
var str = "hgDzGHjhcxghvcgxzhjzcgjhxzgcjhgsduyfuys";
var obj = {};
var arr = [];
var letter;
for (var i = 0, len = str.length; i < len; i++) {
letter = str[i];
if (!obj[letter]) { // 第一次放进去
obj[letter] = 1;
} else {
obj[letter]++;
}
}
var max_key, max_num = 0;
for (key in obj) {
if (max_num < obj[key]) {
max_num = obj[key];
max_key = key;
}
}
alert('字母:' + max_key + ' 次数:' + max_num);
</script>
2-举例实现对象的深拷贝
var json1={"name":"小白","age":18,"arr1":[1,2,3,4,5],"arr3":[{"name1":"小白"},{"job":"前端开发"}]}; var json2={}; function copy(obj1,obj2){ var obj2=obj2||{}; //最初的时候给它一个初始值=它自己或者是一个json for(var name in obj1){ if(typeof obj1[name] === "object"){ //先判断一下obj1[name]是不是一个对象 obj2[name]= (obj1[name].constructor===Array)?[]:{}; //我们让要复制的对象的name项=数组或者是json copy(obj1[name],obj2[name]); //然后来无限调用函数自己 递归思想 }else{ obj2[name]=obj1[name]; //如果不是对象,直接等于即可,不会发生引用。 } } return obj2; //然后在把复制好的对象给return出去 } json2=copy(json1,json2) json1.arr1.push(6); alert(json1.arr1); //123456 alert(json2.arr1); //123456
使用JSON.parse()和JSON.stringify()对对象进行深拷贝
3-举例实现对象方法的继承
类式继承(使用子类的原型对象继承)
function SuperClass(){ this.books = ['js','html','css']; } //子类 function Child() { } //为子类添加公共方法 Child.prototype.getSubVal = function () { return this.subVal; }; //继承父类 Child.prototype = new SuperClass(); var instance1 = new Child(); var instance2 = new Child(); console.log(instance1.books); instance1.books.push("设计模式"); console.log(instance1.books);
4-写一个左中右布满全屏,其中左右固定宽度 200px,中间部分自适应,要求先加载中间部分,写出结构和样式
<div id="left">我是左边</div>
<div id="center">我是中间</div>
<div id="right">我是右边</div>
所以有了以下代码:
css样式默认加载顺序
样式表的元素选择器选择越精确,则其中的样式优先级越高:
id选择器指定的样式 > 类选择器指定的样式 > 元素类型选择器指定的样式
对于相同类型选择器制定的样式,在样式表文件中,越靠后的优先级越高
所以把类选择器center写在后面就可以了。
当然也写了另一种方法:
html,body{ margin: 0px; 100%; }
#left,#right{ 200px;height: 200px;background-color: aqua;
position: absolute;}
#left{left: 0;top:0;}
#right{right: 0;top:0;}
#center{margin: 0 200px;background-color: blue;height: 200px;}
<div id="left">我是左边</div>
<div id="center">我是中间</div>
<div id="right">我是右边</div>
5-封装一个 jqery 的插件
(function ( $, window, document) {
//....封装组件逻辑
})(jQuery, window, document);
认识jquery插件