1. 基础类型有哪些?复杂类型有哪些?有什么特征?
- 基础类型:number,string,boolean,null,undefined;
- 复杂类型: 对象;数组;函数,正则;
- 基础类型特征:指的是保存在栈内存中的简单数据段;
-复杂类型的特征:指的是那些保存在堆内存中的对象,变量中保存的实际上只是一个指针,这个指针执行内存中的另一个位置,由该位置保存对象;
2. 如下代码的输出? 为什么?
console.log(obj1 == obj2);//false,此为比较语句,obj1和obj2是指向不同地址的2个变量。
console.log(obj1 = obj2);//{a:1, b:2},此为赋值语句,将obj2赋值给obj1,实际上也就是将obj2的地址赋值给obj1。
console.log(obj1 == obj2);//true,此为比较语句,由于经过赋值,obj1和obj2此时已经指向同一个地址。
代码
1. 写一个函数getIntv,获取从当前时间到指定日期的间隔时间
2. 把数字日期改成中文日期
3. 写一个函数获取n天前的日期
4. 完善如下代码,用于获取执行时间如:
5. 楼梯有20级,每次走1级或是2级,从底走到顶一共有多少种走法?用代码(递归)实现
假设从底走到第n级的走法有f(n)种, 走到第n级 有两个方法, 一个是从第(n-1)级走1步,
另一个是从第(n- 2)级走2步, 前者有f(n-1)种方法,
后者有f(n-2)种方法, 所 以f(n)=f(n-1)+f(n-2), 另外f(0)=1, f(1)=1
6.写一个json对象深拷贝的方法,json对象可以多层嵌套,值可以是字符串、数字、布尔、json对象中的任意项(PS:尝试另外一种方法 var obj2 = JSON.parse( JSON.stringify(obj1) )
var obj1 = {
a: "hello",
b: {
a: "world",
b: 21
},
c: ["Bob", "Tom", "Jenny"],
d: function() {
alert("hello world");
}
};
function copy(obj){
var obj2=JSON.parse(JSON.stringify(obj));
//先把obj指向的对象转化为字符串,此时的obj指向的对象不变,再把obj字符串转化为一个对象,这个对象和obj指向的对象不是同一个对象
return obj2
}
var re=copy(obj1);
//方法二
function copy2(obj,c){
var c =c||{};
for(var key in obj){
if(typeof obj[key]==='object'){
c[key]=(obj[key].constructor===Array)?[]:{};
copy2(obj[key],c[key]);
}else{
c[key]=obj[key];
}
}
return c
}
var re2=copy2(obj1);
版权归饥人谷--楠柒所有如有转载请注明出处谢谢