1贞间、基礎(chǔ)類型有哪些贿条?復(fù)雜類型有哪些?有什么特征增热?
- 基本類型:number整以,boolean,null峻仇,undefined等可以直接保存在棧內(nèi)存中的數(shù)據(jù)段公黑。
- 復(fù)雜類型:對象,數(shù)組,函數(shù)凡蚜,正則表達(dá)式人断。變量保存的是一個(gè)指針,也就是對象的儲存地址朝蜘。
2恶迈、如下代碼的輸出? 為什么?
var obj1 = {a:1, b:2};
var obj2 = {a:1, b:2};
console.log(obj1 == obj2);//false,obj1與obj2是兩個(gè)不同的對象,儲存在不同的位置芹务,因此判定為不想等蝉绷,也就是地址不同。
console.log(obj1 = obj2);//Object {a: 1, b: 2}枣抱,將obj2的地址賦給obj1熔吗,此時(shí)obj1的指針指向obj2儲存的地址。
console.log(obj1 == obj2);//true佳晶,obj1與obj2的指針指向同一個(gè)地址桅狠,因此相等。
3轿秧、寫一個(gè)函數(shù)getIntv中跌,獲取從當(dāng)前時(shí)間到指定日期的間隔時(shí)間
var str = getIntv("2016-01-08");
console.log(str); // 距除夕還有 20 天 15 小時(shí) 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+"小時(shí)"+ minutes+"分" +secends +"秒");
}
4、把數(shù)字日期改成中文日期
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菇篡、寫一個(gè)函數(shù)獲取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漩符、完善如下代碼,用于獲取執(zhí)行時(shí)間如:
var Runtime = (function(){
var startTime,endTime,getTime;
var obj = {
start: function(){
startTime = new Date.now//code here ...驱还, 當(dāng)前時(shí)間
},
end: function(){
endTime = new Date.now //code here ... 結(jié)束時(shí)間
},
get: function(){
getTime = endTime-startTime //code here ... 獲取執(zhí)行時(shí)間
}
};
return obj;
}());
Runtime.start();
//todo somethint
Runtime.end();
console.log( Runtime.get() );
7嗜暴、樓梯有200級,每次走1級或是2級议蟆,從底走到頂一共有多少種走法闷沥?用代碼(遞歸)實(shí)現(xiàn)
function method(num){
if (num==1){
return 1;
}
else if(num==2){
return 2;
}
else {
return method(num-1)+method(num-2);
}
}
8、寫一個(gè)json對象深拷貝的方法咐容,json對象可以多層嵌套舆逃,值可以是字符串、數(shù)字戳粒、布爾路狮、json對象中的任意項(xiàng)
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;
}