目录
一、内置对象
JavaScript中的对象分为3种:自定义对象、内置对象、浏览器对象。
内置对象:JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)。
JavaScript提供了多个内置对象:Math、Date、Array、String等。
Math对象
Math数学对象不是一个构造函数,所有我们不需要new来调用。
1.绝对值
Math.abs('-1');//隐式转换,会把字符型-1转换成数字型。
2.三个取整方法
Math.floor(); //向下取整 往最小取值
Math.ceil(); //向上取整 往最大取值
Math.round(); //四舍五入,.5往大了取,如-1.5取-1
3.随机数方法
Math.random(); //返回一个大于等于0小于1的随机小数,这个方法里面不跟参数
Math.floor(Math.random()*(max-min+1))+min;//得到两个数之间的随机整数
Data日期
Data()日期对象是一个构造函数,必须使用new来调用创建我们的日期对象。
var date = new Date();
console.log(date);
- 如果没有参数,返回当前系统的当前时间
- 参数常用的写法,数字型:2022,11,7或者字符串型'2022-11-7 8:8:8'
日期格式化
注意:返回的月份小1个月,月份要+1。
获取日期的总的毫秒形式(时间戳):
1.通过valueOf()
//获取距离1970年1月1日过去了多少毫秒数
var date = new Date();
console.log(date.valueOf());
2.通过getTime()
//获取距离1970年1月1日过去了多少毫秒数
var date = new Date();
console.log(date.getTime());
3.简单的写法(最常用的写法)
var date1 = +new Date();
4.H5新增的方法
console.log(Date.now());
数组对象
创建数组:
1.利用数组字面量
var arr = [1,2,3];
2.利用new Arry()
var arr = new Array();//创建了一个空的数组
var arr1=new Array(2);//这个2表示数组的长度为2,里面有两个空的数组元素
var arr2=new Array(2,3);//等价于[2,3]表示里面有2个数组元素是2和3
检测是否为数组
1.instanceof检测
var arr = [];
console.log(arr instanceof Array);
2.H5新增方法,ie9以上版本才可以
Array.isArray(参数);
添加删除数组元素的方法
数组排序
var arr1 = [13, 4, 77, 1, 7];
arr1.sort(function (a, b) {
return a - b;//升序排列
return b - a;//降序排列
});
数组索引方法
数组转换成字符串
字符串对象
基本包装类型:就是把简单数据类型包装成为复杂数据类型,这个简单数据类型就有了属性和方法。
JavaScript给String、Number和Boolean提供了基本包装类型。
var str = 'andy';
console.log(str.length);
//1.把简单数据类型包装为复杂数据类型
var temp = new String('andy');
//2.把临时变量的值给str
str = temp;
//3.销毁这个临时变量
temp = null;
字符串的不可变
指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间。
因为字符串的不可变,所以不要大量的拼接字符串
根据字符返回位置
字符串所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串。
根据位置返回字符(重点)
字符串基本方法(重点)
字符串的替换与转换
//1.替换字符replace('被替换的字符','替换为的字符') 它只会替换第一个字符串
var str = 'andyandy';
console.log(str.replace('a', 'b'));
//有一个字符串'abcoefoxyozzopp'将里面所以的o替换为*
var str1 = 'abcoefoxyozzopp';
while (str1.indexOf('o') != -1) {
str1 = str1.replace('o', '*');
}
console.log(str1);
//2.字符转换为数组 split('分隔符');jion将数组转换成字符串
var str2 = 'red,pink,blue';
console.log(str2.split(','));
二、简单类型和复杂类型
简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型。
- 值类型:简单数据类型/基本数据类型,在存储时变量中存储的就是值本身,因此叫做值类型 string,number,Boolean,undefined,null
简单数据类型null返回的是一个空的对象object,如果有个变量打算存储对象,但是暂时没想好放什么,这个时候就用null
- 引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型。通过new关键字创建的对象(系统对象、自定义对象),如Object、Array、Date等
简单数据类型存放在栈里面,里面直接开辟一个空间存放的是值。
复杂数据类型存放在堆里面,首先在栈里面存放地址,用十六进制表示,然后这个地址指向堆里面的数据。
注意:JavaScript中没有堆栈的概念。
简单类型传参
函数的形参也可以看做是一个变量,当我们把一个值类型变量作为参数传给函数的形参时,其实是把变量在栈空间里的值复制了一份给形参,那么在方法内部对相残做任何修改,都不会影响到外部变量。
复杂类型传参
函数参数也可以看做是一个变量,我们把引用类型变量传给形参时,其实是把变量在栈空间里保存的堆地址复制给了形参,形参和实参其实保存的是同一个堆地址,所以操作的是同一个对象。