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