16 (H5*) JS第6天 日期、字符串、数组

目录

1:date 

2:格式化日期

3:字符串

4:字符串的方法

5:字符串的案例

6:数组的方法

7:包装类型

 

复习

 

正文

1:日期:date 

 <script>
    //创建实例对象


    //    var dt=new Date();
    //    //当前的时间---当前的服务器
    //    console.log(dt);

    //    var dt=new Date("2017-08-12");
    //    //传入的时间
    //    console.log(dt);


    //var dt=new Date("2017/08/12");
    //传入的时间
    //console.log(dt);
    //获取时间的对象
    //    var dt=Date.now();
    //    console.log(dt);//毫秒

//
//    var dt = new Date();
//
//    //获取年份
//    console.log(dt.getFullYear());
//    //获取月份
//    console.log(dt.getMonth()+1);//是0开始的 真实的月份是需要加1的
//    //获取日期
//    console.log(dt.getDate());
//    //获取小时
//    console.log(dt.getHours());
//    //获取分钟
//    console.log(dt.getMinutes());
//    //获取秒
//    console.log(dt.getSeconds());
//
//    //获取星期
//    console.log(dt.getDay());//星期从0开始的


   // var dt=new Date();

    //console.log(dt.toDateString());//英文的---日期
    //console.log(dt.toLocaleDateString());//数字格式--日期

//    console.log(dt.toTimeString());//小时分钟秒
//    console.log(dt.toLocaleTimeString());//小时分钟秒

    //console.log(dt.valueOf());//毫秒值
//    console.log(dt);
//    //转成字符串
//    console.log(dt.toString());

//    var num=10;
//    console.log(num.toString());
  </script>

 

2:格式化日期

  <script>
    //var dt=new Date();
//    var dt=+new Date();//一种特殊的写法,只适用于这个Date的对象
//    console.log(dt);

//    dt.getFullYear();//年
//    dt.getMonth();//月---从0开始
//    dt.getDate();//日
//    dt.getHours();//小时
//    dt.getMinutes();//分钟
//    dt.getSeconds();//秒
//    dt.getDay();//星期---从0开始
//    dt.toDateString();//日期
//    dt.toLocaleDateString();//日期
//    dt.toTimeString();//时间
//    dt.toLocaleTimeString();//时间
//    dt.valueOf();//毫秒



  </script>
/**
 * 获取指定格式的时间
 * @param dt 日期的对象
 * @returns {string} 返回的是字符串的日期时间
 */
function getDate(dt) {
    //获取年
    var year = dt.getFullYear();
    //获取月
    var month = dt.getMonth() + 1;
    //获取日
    var day = dt.getDate();
    //获取小时
    var hour = dt.getHours();
    //获取分钟
    var minute = dt.getMinutes();
    //获取秒
    var second = dt.getSeconds();
    month = month < 10 ? "0" + month : month;
    day = day < 10 ? "0" + day : day;
    hour = hour < 10 ? "0" + hour : hour;
    minute = minute < 10 ? "0" + minute : minute;
    second = second < 10 ? "0" + second : second;
    return year + "年" + month + "月" + day + "日 " + hour + ":" + minute + ":" + second;
}

 

 3:字符串

 <script>
    /*
    *
    * String---->是一个对象
    * 字符串可以看成是字符组成的数组,但是js中没有字符类型
    * 字符是一个一个的,在别的语言中字符用一对单引号括起来
    * 在js中字符串可以使用单引号也可以使用双引号
    * 因为字符串可以看成是数组,所以,可以通过for循环进行遍历
    *
    * 字符串特性:不可变性,字符串的值是不能改变
    *
    * 字符串的值之所以看起来是改变的,那是因为指向改变了,并不是真的值改变了
    *
    *
    * */

//    var str="hello";
//    str[1]="W";  字符串可以通过索引访问字符串中的某个值
//    但是,是可以访问---读取---只读
//    设置:就是可以改变
    //对象的方式来看待

//    var str="小苏好猥琐";
//    str="小苏好邪恶了";//重新赋值
//    console.log(str);

//    var str="hello";
//    str[1]="W";
//    console.log(str);
//    for(var i=0;i<str.length;i++){
//      console.log(str[i]);
//    }

//    var str="1";
//    str="2";
//    str="3";

    var str="123";
    str="456";
    console.log(str);


    //String对象

//    string ---->字符串类型----基本类型
//    String---->字符串类型----引用类型

    //字符串对象----String对象


//    var str1="90";
//    var str2="哈哈,我又变帅了";
//    var str3="안녕하세요.";
//    var str4="こんにちは";
//    var str5="สวัสดี";
//    var str6="Привет ";


    var str="萨瓦迪卡";
    //js中没有字符类型
    //字符类型
    //字符串类型

    /*
    * 整数类型
    * int num=10;
    * 小数
    * float num2=90.4
    * 字符串
    * string str="hello";  //字符串必须用双引号
    * //字符
    * char ch='h';    //字符必须用单引号---值---只有一个
    *
    * char ch='y'
    *
    * 'h'+'e'+'l'+'l'+'o'---- "hello"
    *
    * //字符串是可以看成是多个字符组合成的数组的
    *
    * js中无论是单引号的还是双引号的都是字符串
    *
    *
    * */

//    var str="hello";//可以看成是一个字符数组
//    for(var i=0;i<str.length;i++){
//      console.log(str[i]);
//    }

  </script>

 

 

4:字符串的方法

  <script>
    /*
     *
     * 实例方法---->必须要通过new的方式创建的对象(实例对象)来调用的方法
     * 静态方法---->直接通过大写的构造函数的名字调用的方法(直接通过大写的对象名字调用的)
     *
     * */
    /*
     *
     * 字符串的常用属性:
     * .length------>字符串的长度
     * .charAt(索引),返回值是指定索引位置的字符串,超出索引,结果是空字符串
     * .fromCharCode(数字值,可以是多个参数),返回的是ASCII码对应的值
     * .concat(字符串1,字符串2,...);返回的是拼接之后的新的字符串
     * .indexOf(要找的字符串,从某个位置开始的索引);返回的是这个字符串的索引值,没找到则返回-1
     * .lastIndexOf(要找的字符串);从后向前找,但是索引仍然是从左向右的方式,找不到则返回-1
     * .replace("原来的字符串","新的字符串");用来替换字符串的
     * .slice(开始的索引,结束的索引); 从索引5的位置开始提取,到索引为10的前一个结束,没有10,并返回这个提取后的字符串
     * .split("要干掉的字符串",切割后留下的个数);切割字符串
     * .substr(开始的位置,个数);返回的是截取后的新的字符串
     * .substring(开始的索引,结束的索引),返回截取后的字符串,不包含结束的索引的字符串
     * .toLocaleLowerCase();转小写
     * .toLowerCase();转小写
     * .toLocaleUpperCase()转大写
     * .toUpperCase();转大写
     * .trim();干掉字符串两端的空格
     *
     *
     * */


    //    var str="12345";
    //    console.log(str.length);
    //
    //    var str="whatareyounoshalei";
    //    var result=str.charAt(1000);
    //    console.log(result);

    //    var str=String.fromCharCode(107,108,109);
    //    console.log(str);


    //sos


    //    var str=String.fromCharCode(83,79,83);
    //    console.log(str);


    //    var str="what";
    //    console.log(str+"are"+"you"+"no"+"sha"+"lei");


    //    var str="小苏";
    //    console.log(str.concat("喜欢","凤姐","这是","真的"));


    //    var str="小苏真的好猥好琐啊";
    //    var index=str.indexOf("好",5);
    //    console.log(index);

    //    var str="helo amen";
    //    var index=str.lastIndexOf("Y");
    //    console.log(index);

    //    var str="小苏好帅哦,真的好勇敢哦";
    //    if(str.indexOf("帅")!=-1){
    //      str=str.replace("帅","猥琐");
    //    }else{
    //      console.log("不存在");
    //    }
    //    console.log(str);


//    var str = "如果有一天我邪恶了,请记住,我曾纯洁过";
//    //从索引5的位置开始提取,到索引为10的前一个结束,没有10,并返回这个提取后的字符串
//    str = str.slice(5, 10);
//    console.log(str);

//    var str="乔峰|慕容|凤姐|梅超风|小苏|大蛇丸";
//    var arr=str.split("|");
//    for(var i=0;i<arr.length;i++){
//      console.log(arr[i]);
//    }


//    var str="哈哈,小苏真的是好帅哦";
//    str=str.substr(5,5);
//    console.log(str);


//    var str="哈哈,小苏真的是好帅哦";
//    str=str.substring(5,9);
//    console.log(str);

//    var str="HELLO";
//    //str=str.toLocaleLowerCase();
//    str=str.toLowerCase();
//    console.log(str);


//    var str="hello";
//    str=str.toLocaleUpperCase();
//    //str=str.toUpperCase();
//    console.log(str);

    var str="   哦,这    是一个神奇的一天   ";
    str=str.trim();
    console.log("===="+str+"====");
  </script>

 

5:字符串的案例

 <script>
    //案例1:
    var str = "我爱最帅的杨哥,太帅了";
    //console.log("杨哥");
    var key = "杨哥";
    //先获取要截取的字符串的索引的位置
    var index = str.indexOf(key);
    //从指定的位置开始截取,截取两个即可
    str = str.substr(index, 2);
    console.log(str);

    //案例2:找到这个字符串中所有的 o 出现的位置
    var str2 = "hello wod odd ott fbo nhyo";
    var index = 0;//开始的位置
    var key = "o";//要找的字符串
    while ((index = str2.indexOf(key, index)) != -1) {//如果是-1情况,说明找完了
      console.log(index);
      index += key.length;
    }
    //4 7 10 14 20 25
    //var index=str2.indexOf("o",0);
    //console.log(index);

    //案例3:找到这个字符串中每个字符串出现了多少次
    var str3 = "whatOareYyouYnoYshaHleiHoHmyHgod";
    //第一步:把所有的字母全部变成小写
    str3 = str3.toLocaleLowerCase();
    //第二步:创建一个空对象,目的:把字母作为键,次数作为值
    var obj = {};
    //第三步,遍历字符串,获取每个字母
    for (var i = 0; i < str3.length; i++) {
      //判断obj这个对象中有没有这个字母(字母---键)
      var key = str3[i];//每个字母
      if (obj[key]) {//判断obj中有没有这个键
        //对象中有这个字母了
        obj[key]++;
      } else {
        //对象中没有这个字母,那就把字母加到对象中,并且给这个字母一个出现的次数,默认1次
        obj[key] = 1;
      }
    }

    //遍历对象,显示每个字母的次数
    for(var key in obj){
      console.log(key+"这个字母出现了"+obj[key]+"");
    }
    //创建新的对象---空对象---没有属性,也没有方法


    //    var obj={
    //      "sex":"男"
    //    };
    //我想知道这个obj对象中有没有sex这个属性
    //把对象["属性名字"]--->放在if的判断中即可----判断对象中有没有这个属性
    //if的判断的结果是true,则有这个属性,否则没有这个属性
    //    if(obj["age"]){
    //      console.log("有");
    //    }else{
    //      console.log("没有");
    //    }

  </script>

 

6:数组的方法

  <script>

    /*
     *
     * Array.isArray(对象)---->判断这个对象是不是数组
     * instanceof关键字
     * .concat(数组,数组,数组,...) 组合一个新的数组
     * .every(函数)--返回值是布尔类型,函数作为参数使用,函数中有三个参数,第一个参数是元素的值,第二个参数是索引值,第三个参数是原来的数组(没用)
     * 如果这个数组中的每个元素的值都符合条件,最后才返回的是true
     *
     * .filter(函数);返回的是数组中每一个元素都复合条件的元素,组成了一个新的数组
     *
     * .push(值);--->把值追加到数组中,加到最后了---返回值也是追加数据之后的数组长度
     * .pop();--->删除数组中最后一个元素,返回值就是删除的这个值
     * .shift();--->删除数组中第一个元素,返回值就是删除的这个值
     * .unshift();--->向数组的第一个元素前面插入一个新的元素,----返回值是插入后的程度
     * .forEach(函数)方法---遍历数组用---相当于for循环
     * .indexOf(元素值);返回的是索引,没有则是-1
     * .join("字符串");----返回的是一个字符串
     * .map(函数);--->数组中的每个元素都要执行这个函数,把执行后的结果重新的全部的放在一个新的数组中
     * .reverse();----->反转数组
     * .sort();---排序的,可能不稳定,如果不稳定,请写MDN中的那个固定的代码
     * .arr.slice(开始的索引,结束的索引);把截取的数组的值放在一个新的数组中,但是不包含结束的索引对应的元素值
     * .splice(开始的位置,要删除的个数,替换的元素的值);一般是用于删除数组中的元素,或者是替换元素,或者是插入元素
     *
     *
     * */
    //构造函数
    //    var arr1=new Array();
    //    //字面量的方式
    //    var arr2=[];


    //对象是不是数组类型:两种
    //1   instanceof
    //    var obj=[];
    //    console.log(obj instanceof Array);//false
    //
    //    //2 使用数组的
    //    console.log(Array.isArray(obj));//


    //    var arr=["a","b","c"];
    //    var newArr=Array.from(arr);
    //    console.log(newArr);

    //    var arr1=[10,20,30];
    //    var arr2=[40,50,60];
    //    console.log(arr1.concat(arr2));

    //    var arr=[1000,2000,3000];
    //    //a----: 元素的值
    //    //b----: 索引的值
    //    //c----:谁调用了这个方法,那么c就是谁---->arr
    //   var flag= arr.every(function (a,b) {
    //      //console.log(a+"==="+b+"===="+c);
    //      return a>2000;//数组中的每个元素的值都要大于2000的情况,最后才返回true
    //    });


    //    var arr=["小明明lkko","小曹操674","小白白bd","笑眯眯a"];
    //   var flag=arr.every(function (ele,index) {
    //      //数组中的每个元素的长度是不是大于4
    //      return ele.length>4;
    //    });


    //console.log(flag);


    //    var arr=[10,20,30,40,50,60,70,80];
    //    var newArr=arr.filter(function (ele) {//ele---每个元素
    //      return ele>40;
    //    });
    //    console.log(newArr);

    //    var arr=[10,0,20,0,40,0,60,100];
    //    var newArr=arr.filter(function (ele) {
    //      return ele!=0;
    //    });
    //    console.log(newArr);

    //    var arr=[10,20,30,40,50];
    //    var result=arr.unshift(100);
    //    console.log(result);
    //    console.log(arr);
//
//    var arr = [10, 20, 30, 40];
//    arr.forEach(function (ele,index) {
//      console.log(ele+'======'+index);
//    });

//    var arr=[10,20,30,40];
//    var index=arr.indexOf(300);
//    console.log(index);


//    var arr=["小白","小黑","小红","小芳","小绿","小苏"];
//    var str=arr.join("|");
//    console.log(str);


//    var numbers = [1, 4, 9];
//    var roots = numbers.map(Math.sqrt);
//    console.log(roots);


//    var arr=[10,20,30,40,50];
//    arr.reverse();//反转
//    console.log(arr);


//    var arr=[1,40,20,10,100];
//    //a---arr[j]
//    //b---arr[j+1]
//    arr.sort(function (a,b) {
//      if(a>b){
//        return 1;
//      }else if(a==b){
//        return 0;
//      }else{
//        return -1;
//      }
//    });
//    console.log(arr);


//
//    var arr=[10,20,30,40,50,60,70,80,90,100];
//    var newArr= arr.slice(3,7);
//    console.log(newArr);


    var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];

   // myFish.splice(2, 0, 'drum'); // 在索引为2的位置插入'drum'

    // myFish 变为 ["angel", "clown", "drum", "mandarin", "sturgeon"]

    myFish.splice(2, 1); // 从索引为2的位置删除一项(也就是'drum'这一项)

    console.log(myFish);
    // myFish 变为 ["angel", "clown", "mandarin", "sturgeon"]
  </script>

 

 

7:包装类型

  <script>
    //基本包装类型

    //普通变量不能直接调用属性或者方法
    //对象可以直接调用属性和方法

    //基本包装类型:本身是基本类型,但是在执行代码的过程中,如果这种类型的变量调用了属性或者是方法,那么这种类型就不再是基本类型了,而是基本包装类型,这个变量也不是普通的变量了,而是基本包装类型对象
    //string number boolean


//    var str="hello";
//    str=str.replace("ll","HH");
//    console.log(str);


//    var str=new String("hello");
//    str=str.replace("ll","HH");
//    console.log(str);
//    str=null;

//    var num=10;//number---->
//    console.log(num.toString());


    //如果是一个对象&&true,那么结果是true
    //如果是一个true&&对象,那么结果是对象


//    var flag=new Boolean(false);
//    var result=true&&flag;
//    console.log(result);


//    var num=10;
//    var num2=Number("10");//转换,没有new---类型转
//    var num3=new Number("10");//基本包装类型


  </script>

 

 

注意

posted on 2019-10-02 19:27  风zk  阅读(152)  评论(0编辑  收藏  举报

导航