1、基础类型有哪些?复杂类型有哪些?有什么特征?
- 基本类型:number,boolean,null,undefined等可以直接保存在栈内存中的数据段。
- 复杂类型:对象,数组,函数,正则表达式。变量保存的是一个指针,也就是对象的储存地址。
2、如下代码的输出? 为什么?
var obj1 = {a:1, b:2};
var obj2 = {a:1, b:2};
console.log(obj1 == obj2);//false,obj1与obj2是两个不同的对象,储存在不同的位置,因此判定为不想等,也就是地址不同。
console.log(obj1 = obj2);//Object {a: 1, b: 2},将obj2的地址赋给obj1,此时obj1的指针指向obj2储存的地址。
console.log(obj1 == obj2);//true,obj1与obj2的指针指向同一个地址,因此相等。
3、写一个函数getIntv,获取从当前时间到指定日期的间隔时间
var str = getIntv("2016-01-08");
console.log(str); // 距除夕还有 20 天 15 小时 20 分 10 秒
function getIntv(data){
var target=Date.parse(data);
var today=Date.now();
var diff=target-today;
var getSecends=Math.floor( diff/1000);
var secends=getSecends%60;
var minutes=((getSecends-secends)/60)%60;
var hours=((getSecends-secends-(minutes*60))/3600)%24;
var days=(getSecends-secends-(minutes*60)-(hours*3600))/(3600*24);
console.log("距除夕还有" +days+"天" +hours+"小时"+ minutes+"分" +secends +"秒");
}
4、把数字日期改成中文日期
var str = getChsDate('2015-01-08');
console.log(str); // 二零一五年一月八日
function getChsDate(data){
var date=data.split("-");
var a=['零','一','二','三','四','五','六','七','八','九','十','十一','十二','十三','十四','十五','十六','十七',
'十八','十九','二十','二十一','二十二','二十三','二十四','二十五','二十六','二十七','二十八','二十九','三十','三十一']
var year=a[date[0][0]] + a[date[0][1]]+ a[date[0][2]]+ a[date[0][3]];
var month=a[date[1]] ;
var day=a[date[2]] ;
var ChsDate=year+"年"+month+"月"+day+"日";
console.log(ChsDate);
}
5、写一个函数获取n天前的日期
var lastWeek = getLastNDays(7); // ‘2016-01-08’
var lastMonth = getLastNDays(30); //'2015-12-15'
function getLastNDays(num){
var today=Date.now();
var des=today-num*24*3600*1000;
var bofroe= new Date(des).toUTCString();
console.log(before);
}
6、完善如下代码,用于获取执行时间如:
var Runtime = (function(){
var startTime,endTime,getTime;
var obj = {
start: function(){
startTime = new Date.now//code here ..., 当前时间
},
end: function(){
endTime = new Date.now //code here ... 结束时间
},
get: function(){
getTime = endTime-startTime //code here ... 获取执行时间
}
};
return obj;
}());
Runtime.start();
//todo somethint
Runtime.end();
console.log( Runtime.get() );
7、楼梯有200级,每次走1级或是2级,从底走到顶一共有多少种走法?用代码(递归)实现
function method(num){
if (num==1){
return 1;
}
else if(num==2){
return 2;
}
else {
return method(num-1)+method(num-2);
}
}
8、写一个json对象深拷贝的方法,json对象可以多层嵌套,值可以是字符串、数字、布尔、json对象中的任意项
function deepCopy(obj){
var newObj={};
for(var key in obj){
if(typeof obj[key]==="object"){
newObj[key]=deepCopy(obj[key]);
}
else{
newObj[key]=obj[key];
}
}
return newObj;
}
网友评论