A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小鲁哥哥 于 2017-9-14 15:42 编辑

【黑马程序员济南】 前端与移动开发就业班笔记DOM讲解:Day06

日期对象
JavaScript给我们提供了Data日期对象,下面介绍一下Data对象的简单使用。
[JavaScript] 纯文本查看 复制代码
        /*
         *@author 传智播客
         */
        var date = new Date();//创建日期对象
    console.log(date.toDateString());//把 Date 对象的日期部分转换为字符串。
    console.log(date.toTimeString());//把 Date 对象的时间部分转换为字符串。
    console.log(date.toLocaleDateString());//根据本地时间格式,把 Date 对象的日期部分转换为字符串。
    console.log(date.toLocaleTimeString());//本地时间格式,把 Date 对象的时间部分转换为字符串。
        console.log(typeof date);//Object类型
    console.log(date.toString());//可以把日期对象转换成字符串的形式
    console.log(date.valueOf());//可以把日期对象转换成数值的形式 13位的数字
    //从 1970-1-1 00:00:00:000 到现在所过去的毫秒数
        
        
        var date1 = new Date(2015,10,1,10,10,10); //根据指定的日期创建一个时间对象
        var date2 = Date.parse("2015-10-1");//返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
    console.log(date1);
        
    var date2 = Date.now();//旧版浏览器不支持
    console.log(date2);
    var date3 = +new Date();//所有浏览器都支持
    console.log(date3);
学习完Date对象的基本用法,我们利用所学知识,做一个电子表的小案例。

[JavaScript] 纯文本查看 复制代码
        /*
         *@author 传智播客
         */
    //需求:设置demo的内部文本 显示当前时间
    var demo = document.getElementById("demo");
    //获取当前时间的函数
    function clock() {
        var d = new Date();//创建日期对象
        var hour = d.getHours();//小时
        hour = hour < 10 ? "0" + hour : hour;//改善一下格式
        var minute = d.getMinutes();//分钟
        minute = minute < 10 ? "0" + minute : minute;//改善一下格式
        var second = d.getSeconds();//秒钟
        second = second < 10 ? "0" + second : second;//改善一下格式
        var str = hour + ":" + minute + ":" + second;
        demo.innerHTML = str;
    }
    //clock();
    setInterval(clock, 1000);

String对象
我们之前学过基本数据类型中的字符串类型, 今天我们学习基本包装类String对象。
[JavaScript] 纯文本查看 复制代码
        /*
         *@author 传智播客
         */
    var str = "abc";
    console.log(str.length);

    var temp = new String(str);//1.创建临时的包装对象
    console.log(temp.length);//2.调用临时的包装对象的属性
    temp = null;//3.使用完成后对临时对象进行销毁
    var bool = false;
    var temp = new Boolean(bool);
    console.log(!!temp);
    console.log(temp);

下面我们学习一下String对象的一些常用方法。
[JavaScript] 纯文本查看 复制代码
        /*
         *@author 传智播客
         */
    //截取字符串:截取字符串"我爱中华人民共和国",中的"中华"
    var str1 = "我爱中华人民共和国";
    console.log(str1.slice(2, 4)); //从start位置开始,截取到end位置,end取不到
    console.log(str1.substring(2, 4));//从start位置开始,截取到end位置,end取不到
    console.log(str1.substr(2, 2));//从start位置开始,截取length个字符
    
        //查找元素出现的位置:查找字符串中所有o出现的位置
    var str2 = "abcoefoxyozzopp";
    /*console.log(str2.indexOf("o", 0));
     console.log(str2.indexOf("o", 3 + 1));
     console.log(str2.indexOf("o", 6 + 1));
     console.log(str2.indexOf("o", 9 + 1));
     console.log(str2.indexOf("o", 12 + 1));*/
    var index = -1;
    do {
        index = str2.indexOf("o", index + 1);
        console.log(index);
    } while (index !== -1);
  
        //字符串替换:把字符串中所有的o替换成!
    var str3 = "abcoefoxyozzopp";
    console.log(str);
    //str3 = str3.replace("o", "!");
    //str3 = str3.replace(/o/, "!");
    //str3 = str3.replace(/o/g, "!");
    do {
        str = str3.replace("o", "!");
    } while (str3.indexOf("o") !== -1);
console.log(str);

//大小写转换
var str4 = "aBcDeF";
console.log(str4.toUpperCase());
console.log(str4.toLowerCase());
console.log(str4.toLocaleUpperCase());
console.log(str4.toLocaleLowerCase());


学完String对象的基本用法之后我们做两个案例进行巩固一下。
[JavaScript] 纯文本查看 复制代码
        /*
         *@author 传智播客
         */
    //统计一个字符串中每个字符出现的次数
    var str = "abcoefoxyozzopp";
    var o = {};
    for (var i = 0; i < str.length; i++) {
        //var item = str[i];//每个字符[/i]
        var item = str.charAt(i);//所有浏览器都支持
        if (o[item]) {
            //o[item] = o[item] + 1;
            o[item]++;//之前出现过 就让出现次数加一
        } else {
            o[item] = 1;//之前没有出现过 现在出现了 出现次数就是1
        }
    }
    //console.log(o);
    for (var k in o) {
        console.log(k + "出现了" + o[k] + "次");
    }
去掉字符串中的空格
[JavaScript] 纯文本查看 复制代码
        /*
         *@author 传智播客
         */
    //把一个字符串中所有的空格全部去掉" aaa df sdd sds sd "
    var str = " aaa df sdd sds sd ";
    console.log(str);
    //console.log(str.trim());//只能去掉两端的空白符
    var arr = str.split(" ");//按照指定字符 对字符串进行切割 返回一个数组
    console.log(arr);
    console.log(arr.join(""));


函数的两种定义方式
[JavaScript] 纯文本查看 复制代码
        /*
         *@author 传智播客
         */
    //var fn2 = undefined;
    //预解析 声明提升 变量声明提升 函数声明提升
    //console.log(fn1(1, 2));//函数声明提升
    console.log(fn2);
    console.log(fn2(1, 2));//变量声明提升 只提升声明不提升赋值
    //函数声明
    function fn1(a, b) {
        return a + b;
    }
    //函数表达式
    var fn2 = function (a, b) {
        return a + b;
    };

变量的作用域
变量分为全局变量和局部变量,局部变量只能在当前函数内部使用,全局变量在哪儿都能用。
[JavaScript] 纯文本查看 复制代码
    /*
         *@author 传智播客
         */
    //在最外层声明的变量就是全局变量
    var a = "a";//全局变量在哪儿都能用
    console.log(a);
    function fn() {
        console.log(a);
    }
    fn();
    function fn1() {
        var b = "b";//在函数内部声明的变量是局部变量
        //局部变量只能在当前函数内部使用
        console.log(b);
        c = "c";//在函数内部 没有加var声明的变量是全局变量
        console.log(c);
    }
    fn1();
    //console.log(b);//报错
    console.log(c);

作用域链
[JavaScript] 纯文本查看 复制代码
    /*
         *@author 传智播客
         */
    //作用域链
    //1全局变量 解析器先在函数内部作用域寻找name1的声明,如果找不到,就会向上级作用域中寻找变量name1
    /*var name1 = "zs";
    function f1() {
        name1 = "ls";
    }
    f1();
    console.log(name1);//ls*/
    //2局部变量 解析器先在函数内部的作用域寻找name2的声明,如果找到就使用局部变量
    /*var name2 = "zs";
    function f2() {
        var name2 = "ls";
    }
    f2();
    console.log(name2);//zs*/
    //3作用域链
    /*var color = "red";
    function outer() {
        var anotherColor = "blue";

        function inner() {
            var tmpColor = color;
            color = anotherColor;
            anotherColor = tmpColor;
            console.log(anotherColor);//red
        }

        inner();
    }
    outer();
    console.log(color);//blue*/
    //4作用域链 所谓的不加var就是全局变量其实并不准确
    var name3 = "zs";
    function f3() {
        var name3 = "ls";

        function f4() {
            name3 = "ww";
        }

        f4();
        console.log(name3);//ww
    }
    f3();
    console.log(name3);//zs

如果你想了解更多黑马课程请点击这里,如果你想加入黑马这个大家庭学习先进技术,广交天下好友,那就快来吧!
黑马程序员济南中心联系电话:0531-55696830


1 个回复

倒序浏览
太详细了,js初学者的福音
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马