JavaScript--总结七(内置对象-Math,Date,String,Array)

Math对象

Math.E----常数的底数

Math.ceil();----向上取整

Math.floor();---向下取整

Math.PI----圆周率的值

Math.max();----一组数字中的最大值

Math.min();----一组数字中的最小值

Math.abs();----绝对值

Math.random();----随机数字(返回的是介于0和1之间的伪随机数)

Math.aqrt();-----开平方

Math.pow();-----一个数字的多少次幂

 

 

 

Date--日期
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();//毫秒

 

String----字符串对象

string---字符串类型---基本类型(值类型)

String---字符串类型---引用类型

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

var str=“hello”---可以看成一个字符数组
        var str="hello";
        for(var i=0;i<str.length;i++){
            console.log(str[i]);
        }
 
   * 整数类型
    * int num=10;
    * 小数
    * float num2=90.4
    * 字符串
    * string str="hello";  //字符串必须用双引号
    * //字符
    * char ch='h';    //字符必须用单引号---值---只有一个 
      js中没有字符类型

String----是一个对象

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

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

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

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

 

字符串的特性:不可变性,字符串的值是不能改变的

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

用对象的方式来看待---用对象的方式解释以下

        var str="hello";
str[1]="w";--字符串可以通过索引访问(读取-只读)字符串的某个值。不可以设置 var str="abc"; str="def";
        console.log(str);----结果为-def;
        // 以上分析--str的值并没有改变,只是重新赋值了,"abc"的值依旧在内存中
解析:var str="abc",将它看作一个对象,在堆上有一个空间存放“abs”,在栈上存储了“abc”对象的地址;
当执行str=“def”时,又在堆上开出了一个新空间,此时str的地址存放的就是这个新空间的地址;因此指向
发生了改变,“abc”对象依旧存在空间中。

 

字符串的常用属性/方法

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

静态方法:直接通过大写的构造函数的名字调用的方法(直接通过大写的对象名字调用的--比如:Math对象);

字符串所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串

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

1---字符方法

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

.charCodeAt(数字值,可以是多个参数);--获取指定位置处字符的ASCII码

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

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

 

 var str="abcdefgh";
console.log(str.concat("12","23"));
//结果为"abcdefgh1223"

.indexOf(要找的字符串,从某个位置开始的索引)--返回的是这个字符串的索引值,没有找到则返回-1

 var str="abcdefgh";
console.log(str.indexOf("e",2));//从索引为2的地方开始找e,返回的索引值是4;
console.log(str.indexOf("e",5));//从索引为5的地方开始找e,没有找到,返回的值是-1

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

var str="abcdefgh";
console.log(str.lastIndexOf("e",6));//从后往前找,索引值6往前找到e,返回值为4
 console.log(str.lastIndexOf("e",2));//从后往前找,索引值2往前找不到e,返回值-1

.replace(“原来的字符串”,“新的字符串”);--用来替换字符串的,返回值是新的字符串

var str="abcdefgh";
console.log(str.replace("abc","123"));
返回值是“123defgh”

.slice(开始的索引 k,结束的索引 j);--从索引 k 的位置开始提取,到索引为 j 的前一个结束,没有包括 j ;返回的是提取后的字符串

var str="abcdefgh";
console.log(str.slice(0,2));
//返回的结果是“ab”;

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

var str="abecdefgeh";
console.log(str.split("e",1));//返回值是[“ab”]
console.log(str.split("e",2));//返回值是["ab","cd"]
console.log(str.split("e",3));//返回值是["ab","cd","fg"]

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

var str="abecdefgeh";
console.log(str.substr(2,3));
//返回的值是“ecd”

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

var str="abecdefgeh";
console.log(str.substring(1,4));
//返回的值是“bec”

.toLocaleLowerCase();---转小写

.toLowerCase();---转小写

var str="ABCDEF";
console.log(str.toLocaleLowerCase());
//返回值为:“abcdef”

.toLocaleUpperCase();--转大写

.toUpperCase();---转大写

var str="abecdefgeh";
console.log(str.toLocaleUpperCase());
返回值为:“ABECDEFGEH”;

.trim();----干掉字符串俩端的空格

var str="  我  你  她  他         ";
console.log(str.trim());
返回值为:“我  你  她  他”

 

Array对象

构造函数:var arr=new Array();

字面量方式:var arr=[];

判断对象是不是数组类型:两种

 

Array.isArray(对象)---->判断这个对象是不是数组
instanceof关键字---判断类型
1--instanceof
var obj=[];
console.log(obj instanceof Array);

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

 

posted on 2021-01-07 23:56  小田的日常  阅读(58)  评论(0编辑  收藏  举报

导航