zoukankan      html  css  js  c++  java
  • JS笔记之第六天

    Date的使用方法

    Date是一个通用首部,其中包含了创建的日期和时间。

    .getFullYear(); 年

    .getMonth();月;从0开始的,获取真实的月份需要加1

    .getDate();日

    .getHours();小时

    .getMinutes();分钟

    .getSeconds();秒

    .getMilliseconds();毫秒

    .getDay();星期;从0开始的

    var dt = new Date();不传入值,是当前的时间--->当前服务器的时间

           

    不支持HTML5的浏览器,可以用下面这种方式

    vardt = +new Date();  一种特殊的写法,只适用于这个Date的对象
    var dt = new Date();//不传入值,是当前的时间--->当前服务器的时间
    console.log(dt);
    
    var dt = new Date("2020-2-23");//可以传入字符串类型。输入值,传入的时间就是当前的时间
    
    var dt = new Date("2020/2/23");
    
    var dt = Date.now();//毫秒。时间与时间不是数字类型,所以不能加减乘除

    格式化日期和时间

    格式化后的指定格式的日期和时间--->将它封装成一个函数,将来要用的时候直接引入调用就行

      function getDate(dt){
                //获取年
                var year=dt.getFullYear();
                //获取月
                var month=dt.getMonth()+1;
                //获取日期
                var date=dt.getDate();
                //获取小时
                var hours=dt.getHours();
                //获取分钟
                var minutes=dt.getMinutes();
                //获取秒
                var seconds=dt.getSeconds();
                    /*month=month<10?"0"+month:month;
                    date=date<10?"0"+date:date;
                    hours=hours<10?"0"+hours:hours;
                    minutes=minutes<10?"0"+minutes:minutes;
                    seconds=seconds<10?"0"+seconds:seconds;封装到一个函数里面*/
                return zero(year)+"年"+zero(month)+"月"+zero(date)+"日"+zero(hours)+"小时"+zero(minutes)+"分钟"+zero(seconds)+"秒";
            }
            console.log(getDate(new Date()));
            //封装
            function zero(value){
                return value < 10?'0'+value : value;
            }

    字符串的特性

    string--->字符串类型--->基本类型

    String--->字符串类型--->引用类型(一般情况是复杂类型)

    字符串对象--->指的是大写的 String对象(小写是数据类型)

    JS中无论是单引号还是双引号,都是字符串

    字符类型--->其他语言有,JS没有字符类型

    字符必须用单引号--->值,只有一个字符串必须用双引号

    字符串可以看成是多个字符组合的数组

    String--->是一个对象

    字符串可以看成是字符组成的数组,但是js中没有字符类型

    字符是一个一个的,在别的语言中字符用一对单引号括起来

    在JS中字符串可以使用单引号也可以使用双引号

    因为字符串可以看成是数组,所以可以通过for循环进行遍历

           

    字符串的特性:不可变性

    不可变性指的是字符串的值是不能改变的。

    字符串可以通过索引访问字符串中的某个值,但是,指的是可以访问,也就是只能读取,简称:只读

    设置:就是可以改变

    字符串的值之所以看起来改变,那是因为指向改变了,并不是真的值改变了。

    var str="hello";//字符串可以通过索引访问字符串中的某个值,但是,指的是可以访问--->只能读取--->只读
    str[1]="k";
    console.log(str);
    
    var str="hello";
    str="live";console.log(str);//之所以改变,是因为指向改变了

    String 的使用方法

    实例方法--->必须通过new的方式创建的对象(实例对象)来调用的方法

    静态方法--->直接通过大写的构造函数的名字调用的方法(也可以:直接通过大写的对象名字调用的)

    索引的值永远都是从左到右的

    .length--->字符串的长度

    .charAt(索引),返回值是指定索引位置的字符串,超出索引,结果是空字符串

    .fromCharCode(数字值,可以是多个参数),返回的是ASCII码对应的值

    .concat(字符串1,字符串2,......);返回的是拼接之后的新的字符串

    .indexof(要找的字符串,也可以从某个位置开始的索引(可以不写));返回的是这个字符串索引的值,没有找到则返回-1(重要与经常使用)

    .lastIndexof(要找的字符串);从后向前找,但是索引仍然是从左向右的方式,找不到则返回-1(重要)

    .replace("原来的字符串","新的字符串");用来替换字符串的

    .slice(开始的索引,结束的索引);从索引开始的位置开始提取,到索引为结束的索引的前一个结束,没有结束的索引,并返回这个提取后的字符串

    .split("要干掉的字符串",切割后留下的个数);切割字符串

    .substr(开始的位置,个数(可以不写));返回的是截取后的新的字符串

    .substring(开始的索引,结束的索引);返回截取后的字符串;不包含结束的索引的字符串

    .toLocaleUpperCase(); .toUpperCase();  都是转大写,没有什么区别

    .toLocaleLowerCase(); .toLowerCase();  都是转小写,没有什么区别

    .trim(); 切掉字符串两端的空格

    .trimLeft(); 切掉字符串左端的空格

    .trimRight(); 切掉字符串右端的空格

    练习1:

    .截取其中两个字

    var str="人生目标确定容易实现难,但如果不去行动,那么连实现的可能也不会有。";
        //先获取要截取的字符串的索引的位置
    var index=str.indexOf("行动");
         //从指定的位置开始截取,截取两个即可
    str=str.substr(index,2);
    console.log(str);
    
    //也可以这么写 var key="行动"; var index=str.indexOf(key); str=str.substr(index,2); console.log(str);

    练习2:

    找到这个字符串中所有的 o 出现的位置 

     var str2="hello world Please allow me to perform";
            var index=0;//开始的位置
            var key="o";//要找的字符串
            while ((index=str2.indexOf(key,index))!=-1){//如果不是-1的情况,说明找到了
                //先执行str2.indexOf找o,从index=0的位置开始找,找到了索引是4,赋值给了index,4!=-1,找到了,
                console.log(index);//找到之后把索引显示出来
                index+=key.length;//4的位置找完之后,就应该4的从下个位置5开始找
            }

    Array

    callback说明传入一个函数

    Array.isArray(对象名);判断这个对象是不是数组(instanceof 关键字,这个也可以判断)

    .concat(数组,数组,数组,...); 组合成一个数组

    .every(函数);返回值是布尔类型;函数作为参数使用;函数中有三个参数,第一个参数是元素的值,第二个参数是索引值,第三个参数是原来的数组(一般情况下没有用);此方法常用于筛选。如果这个数组中每个元素的值都符合条件,最后才返回的是ture,函数一般里面传入:ele,index;ele代表参数,index代表索引

    .filter(函数);返回的是数组中每一个元素都符合条件的元素,组成了一个新的数组

    .unshift();向数组的第一个元素插入一个新的元素(可以添加多个值)返回值是插入后的长度

    .push(值);向数组的最后一个元素插入一个新的元素(可以添加多个值)返回值是追加数据之后的数组的长度

    .shift();删除数组中第一个元素,返回值就是删除的这个值

    .pop();删除数组中最后一个元素,返回值就是删除的这个值

    .forEach(函数);遍历数组用的,相当于for循环

    .indexOf(值); 返回的是索引,没有就是-1

    .join("字符串"); 返回的是一个字符串.括号里面的字符串是自定义的

    .map(函数);数组中的每个元素都要执行这个函数,把执行后的结果重新的全部的放在一个新的数组中

    .reverse();反转数组

    .sort();冒泡排序,可能不稳定。

    如果不稳定,加上if (a>b){return 1;}else if (a==b){return 0;}else {return -1;}//if这个判断是固定写法

    .slice(开始的索引,结束的索引);把截取的数据的值放在一个新的数组中,但是不包含结束的索引对应的元素值

    .splice(开始的位置,要删除的个数,替换的元素的值,);一般是用于删除数组中的元素,或者是替换元素,或者是插入元素

    基本包装类型: number、string、boolean(面试可能会遇到)

    普通变量不能直接调用属性或者方法

    对象可以直接调用属性或者方法

    基本包装类型:本身是基本包装类型,但是在执行代码的过程中,如果这种类型的变量调用了属性或者是方法,

    那么这种类型就不在是基本类型了,而是基本包装类型,这个变量也不是普通的变量了,而是基本包装类型对

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

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

    var flag=new Boolean(false);

    var result=ture&&flag;

    console.log(result);

  • 相关阅读:
    Codeforces 1132D
    Codeforces 670F
    Codeforces 670E
    Codeforces 670E
    Codeforces 670E
    Codeforces 670
    Codeforces 1138
    Codeforces 1114E
    力扣21.合并两个有序链表
    力扣538.把二叉树转换为累加树
  • 原文地址:https://www.cnblogs.com/haohaogan/p/12603516.html
Copyright © 2011-2022 走看看