美文网首页饥人谷技术博客
时间对象、引用类型

时间对象、引用类型

作者: 0ec02b597a36 | 来源:发表于2016-06-05 15:56 被阅读58次

问题

  • 基础类型有哪些?复杂类型有哪些?有什么特征?
    基础类型:String 类型、Null 类型、Number 类型、Undefined类型、Boolean 类型
    复杂类型:Object 类型
    作用:
    String类型: String是Unicode字符组成的序列,俗称字符串,可以用双引号或者单引号表示,没有区别,匹配即可
    Null类型: Null类型只有一个值:null,表示空指针,也就是不存在的东西
    Number类型: JavaScript的数字类型和其它语言有所不同,没有整型和浮点数的区别,统一都是Number类型,可以表示十进制、八进制、十六进制
    Undefined类型: Undefined类型也只有一个值undefined,表示变量只被声明,没有被初始化,也就是有这个指针,但是这个指针没有指向任何空间
    Boolean类型: Boolean有两个值:1.true2.false
    Object类型: 对象(object)是JavaScript的核心概念,也是最重要的数据类型。JavaScript的所有数据都可以被视为对象,这也是我们常说的一切皆为对象。
  • 如下代码的输出? 为什么?
    var obj1 = {a:1, b:2};
    var obj2 = {a:1, b:2};
    console.log(obj1 == obj2);//false,由于obj1与obj2所储存的位置不同,所以false。
    console.log(obj1 = obj2);//obj2赋值给obj1 输出 Object { a=1, b=2} 内容。
    console.log(obj1 == obj2);//把obj2赋值给obj1,所以obj2与obj1存储的位置是一样的,所以为true。

代码

  • 写一个函数getIntv,获取从当前时间到指定日期的间隔时间。
    var str = getIntv("2016-01-08");
    console.log(str); // 距除夕还有 20 天 15 小时 20 分 10 秒
    代码:
    var str = getIntv("2017-01-27");
    function getIntv(time){
    var end = new Date(time);
    var now = new Date();
    var timer = end-now;
    var day = Math.floor(timer/(1000606024));
    var timer1 = timer%(1000
    606024)
    var hour = Math.floor(timer1/(10006060));
    var timer2 = timer1%(10006060);
    var min = Math.floor(timer2/(100060));
    var timer3 = timer2%(1000
    60);
    var sec = Math.floor(timer3/1000);
    return ("距"+time+"还有"+day+"天"+hour+"小时"+min+"分钟"+sec+"秒")
    }
    console.log(str); // 距2017-01-27还有 20 天 15 小时 20 分 10 秒

  • 把数字日期改成中文日期,如:
    var str = getChsDate('2015-01-08');
    console.log(str); // 二零一五年一月八日
    代码:
    方法一:
    var str = getChsDate('2015-01-08');
    function getChsDate(time){
    time = time.replace(/-/g,'');
    var arr = []
    for(i=0;i<time.length;i++){
    switch(time[i]){
    case '0': arr.push('零');break;
    case '1': arr.push('一');break;
    case '2': arr.push('二');break;
    case '3': arr.push('三');break;
    case '4': arr.push('四');break;
    case '5': arr.push('五');break;
    case '6': arr.push('六');break;
    case '7': arr.push('七');break;
    case '8': arr.push('八');break;
    case '9': arr.push('九');break;
    }
    }
    console.log(time);
    arr.splice(4,0,'年');
    arr.splice(7,0,'月');
    arr.splice(10,0,'日');
    arr = arr.join('');
    return arr;
    }//这种方法有一定缺陷,比如'2016-02-28',输出'二零一六年零二月二八日',读起来很别扭
    console.log(str); // 二零一五年一月八日
    方法二:
    function getChsDate(date){
    var newDate =date.split("-"),
    year = newDate[0],
    month = newDate[1],
    day = newDate[2];
    var dict ={"0":"零","1": "一", "2": "二", "3": "三","4": "四","5": "五","6": "六","7": "七", "8": "八", "9": "九", "10": "十", "11": "十一", "12": "十二","13": "十三", "14": "十四", "15": "十五", "16": "十六", "17": "十七", "18": "十八", "19": "十九","20": "二十","21": "二十一", "22": "二十二", "23": "二十三", "24": "二十四", "25": "二十五","26": "二十六", "27": "二十七", "28": "二十八", "29": "二十九", "30": "三十", "31": "三十一"};
    return dict[year[0]]+dict[year[1]]+dict[year[2]]+dict[year[3]] + '年' + dict[Number(month)] +'月' + dict[Number(day)] + '日';
    };
    getChsDate('2015-01-08');//"二零一五年一月八日"

  • 写一个函数获取n天前的日期:

      var lastWeek =  getLastNDays(7); // ‘2016-01-08’
      var lastMonth = getLastNDays(30); //'2015-12-15'
    

    代码:
    var lastWeek = getLastNDays(7); // ‘2016-01-08’
    var lastMonth = getLastNDays(30); //'2015-12-15'
    function getLastNDays(dater){
    var now = Date.now();
    var timer = dater2460601000;
    var past = new Date(now - timer);
    var year = past.getFullYear();
    var month = past.getMonth()+1;//月份从0开始算;
    var day = past.getDate();
    return year+'-'+month+'-'+day;
    }
    console.log(lastWeek);
    console.log(lastMonth);

  • 完善如下代码,如:
    var Runtime = (function(){
    //code here ...
    return {
    start: function(){
    //code here ...
    },
    end: function(){
    //code here ...
    },
    get: function(){
    //code here ...
    }
    };
    }());
    Runtime.start();
    //todo somethint
    Runtime.end();
    console.log( Runtime.get() );
    代码:
    var Runtime = (function(){
    var time1;
    var time2;
    return {
    start: function(){
    time1=Date.now();
    },
    end: function(){
    time2=Date.now();
    },
    get: function(){
    return (time2-time1);
    }
    };
    }());
    Runtime.start();
    for(var i=0;i<100;i++){
    console.log(1);//输出100次1
    }
    Runtime.end();
    console.log( Runtime.get() );//运行了22ms

  • 楼梯有200级,每次走1级或是2级,从底走到顶一共有多少种走法?用代码(递归)实现
    function fn(num) {
    if (num==0||num==1) {
    return 1;
    }
    else {
    return fn(num-1)+fn(num-2);
    }
    }
    console.log(fn(200));

  • 写一个json对象深拷贝的方法,json对象可以多层嵌套,值可以是字符串、数字、布尔、json对象中的任意项
    var json={
    "name":"yahoo",
    "age":"14",
    "sex":"man",
    "address":
    {
    "streetAddress": "21 2nd Street",
    "city": "New York",
    "state": "NY",
    "postalCode": "10021"
    }
    }
    function JSON(arr){
    var newjson= {};
    for(key in arr){
    if(typeof arr[key]=="object"){
    newjson[key]=JSON(arr[key]);
    }
    else{
    newjson[key]=arr[key];
    }
    }
    return newjson;
    }
    console.log(JSON(json))

  • 写一个数组深拷贝的方法,数组里的值可以是字符串、数字、布尔、数组中的任意项目
    var arr=[1,"2",3,[1,2,3,4],true]
    function JSON(arr){
    var newarr=[];
    for(key in arr){
    if(typeof arr[key] =='Array') {
    newarr[key]=JSON(arr[key]);
    }
    else{
    newarr[key]=arr[key];
    }
    }
    return newarr;
    }
    console.log(JSON(arr))

  • 写一个深拷贝的方法,拷贝对象以及内部嵌套的值可以是字符串、数字、布尔、数组、json对象中的任意项
    var O={
    name:"yahoo",
    age:14,
    other:[1,2,true,"yahoo",3],
    man:{
    "man1":"woman",
    "man2":"man2"
    },
    aid:true,
    address:
    {
    streetAddress: "21 2nd Street",
    city: "New York",
    state: "NY",
    postalCode: "10021"
    }
    }
    function JOSN(O){
    var newarr={};
    for(key in O){
    if (typeof O[key] ==='Array'){
    newarr[key]=JOSN(O[key]);
    }
    else{
    newarr[key]=O[key];
    }
    }
    return newarr;
    }
    console.log(JOSN(O))

相关文章

  • 时间对象、引用类型

    问题 基础类型有哪些?复杂类型有哪些?有什么特征? 五种简单数据类型UndefinedNullBooleanNum...

  • 时间对象、引用类型

    问答 1.基础类型有哪些?复杂类型有哪些?有什么特征? 基础类型:数字、字符串、布尔、undefined、null...

  • 时间对象、引用类型

    问题 一、基础类型有哪些?复杂类型有哪些?有什么特征? 基础类型(数值、布尔值、null和underfined):...

  • 时间对象,引用类型

    基础类型有那些?复杂类型有那些?有什么特征? 基础类型:number,boolean,string,null,un...

  • 时间对象,引用类型

    1. 基础类型有哪些?复杂类型有哪些?有什么特征? 基础类型:Number, String, Boolean, u...

  • 时间对象、引用类型

    基础类型有哪些?复杂类型有哪些?有什么特征? 基础类型:有数值、布尔值、null和undefined。保存在栈内存...

  • 时间对象、引用类型

    问题 基础类型有哪些?复杂类型有哪些?有什么特征? 基础类型:number,string,boolean,null...

  • 时间对象、引用类型

    持续做你不会做的事。。 问答 1.基础类型有哪些?复杂类型有哪些?有什么特征? 基础类型基础类型包括:string...

  • 时间对象、引用类型

    一、问答题 基础类型有哪些?复杂类型有哪些?有什么特征?JavaScript变量可能包含两种不同类型的值:基本类型...

  • 时间对象、引用类型

    1、基础类型有哪些?复杂类型有哪些?有什么特征? 基础类型:number,string,boolean,null,...

网友评论

    本文标题:时间对象、引用类型

    本文链接:https://www.haomeiwen.com/subject/birrdttx.html