1、实现一个函数克隆,可以对javascript中五中重要数据类型(包括number、string、Object、Array、Boolean)进行值复制。
function clone(obj){
var o;
switch (obj) {
case "undefined":
break;
case "number":
o = obj-0;
break;
case "string":
o = obj + '';
break;
case "boolean":
o = obj;
break;
case "object":
if(obj == null) {
o = null;
}else{
if(Object.prototype.toString.call(obj).slice(8,-1) === "Array") {
o=[];
for (var i = 0; i < obj.length; i++) {
o.push(clone(obj[i]));
}
}else{
o = {};
for(var j in obj){
o[j] = clone(obj[j]);
}
}
};
break;
default:
o = obj;
break;
}
return o;
}
</script>
2、下面程序的结果
function fun(n,o){
console.log(o);
return {
fun:function(m){
return fun(m,n)
}
}
}
var a = fun(0);a.fun(1);a.fun(2);a.fun(3);//undefined 0 0 0
var b = fun(0).fun(1).fun(2).fun(3);//undefined 0 1 2
var c = fun(0).fun(1);c.fun(2);c.fun(3);//undefined 0 1 1
解释:http://www.cnblogs.com/xxcanghai/p/4991870.html
3、CSS居中
水平居中
1、行级元素水平居中:父元素设置text-align:center;
2、块级元素水平居中对齐方式:margin: 0 auto;
3、浮动元素水平居中:position:relative|absolute;left:50%;
垂直居中
1、行级:height和line-height一样就会居中;
2、块级元素:
2.1父元素高度固定:1)父元素height和line-height相同;2)需要垂直的元素:vertical-align:middle;display:inline-block;
2.2父元素高度不固定:父元素的padding-top和padding-bottom一样。
4、面向对象语言的特点:
继承
多态(包含重载和重写)--js当中不存在重载,后面的会覆盖前面的的,
封装
在后台语言中,类型不同的数据,会重新载入
js当中有一个类似重载的功能,我们可以根据传递的参数的不同,实现不同的功能
function sum(num){
if(typeof num === "undefined"){
return 0;
}
return(num);
}
sum(100);
sun();