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);

 

posted @ 2020-05-27 09:01  正在追逐的萌新  阅读(170)  评论(0编辑  收藏  举报