指的是JavaScript系统自带的对象
实例对象、静态对象
- 实例对象:通过构造函数创建出来,也叫实例化的对象
- 静态对象:不需要创建,直接就是一个对象,方法(静态方法)直接通过这个对象的名字调用
- 实例方法:必须通过实例对象调用
- 静态方法:必须通过大写的对象调用
Math对象
常用API:
- Math.PI -------- π
- Math.E -------- 是一个常数,指的是自然对数的底数
- Math.abs(参数) -------- 返回一个数的绝对值
- Math.ceil() -------- 向上取整
- Math.floor() -------- 向下取整
- Math.max(一组数据,使用逗号分隔) -------- 返回一组数据的最大值
- Math.min(一组数据,使用逗号分隔) -------- 返回一组数据的最小值
- Math.pow(x, y) --------- 返回x的y次方
- Math.sqrt(x) -------- 返回x的平方根
- Math.random() ------- 返回一个[0,1)之间的浮点伪随机数
- 随机产生1到100之间的整数:parseInt( Math.random( )*100 + 1 );
Date对象
- var date = new Date(); -----是当前服务器的时间
- var dt = new Date(“2019-3-8”); 或 var dt1 = new Date(“2017/5/12”); —— 都是可以的
- Date.now(); ------- 得到当前时间的毫秒数 (数字类型的,毫秒数是为方便直接进行运算)
-
date.getFullYear() //获取年份, 2019年 date.getMonth() + 1 //获取月份,记得加上1,因为是从0开始算的 ,1月 date.getDate() //获取日期, 23日 date.getDay() //获取星期, 周三(0是星期日) date.getHours() //获取小时,9点 date.getMinutes() //获取分钟, 8分 date.getSeconds() //获取秒, 15秒 console.log(date); //直接输出date时默认是调用了toString方法 date.toString()); //Wed Jan 23 2019 09:15:03 GMT+0800 (中国标准时间) date.toDateString()); //Wed Jan 23 2019, 英文的 date.toLocaleDateString()); //2019/1/23, 数字的 date.toTimeString()); //09:14:10 GMT+0800 (中国标准时间) date.toLocaleTimeString()); //上午9:14:10 date.valueOf()); //也是毫秒数 var dt = +new Date(); //这主要是为了浏览器不支持H5的情况,只有Date这个对象有的特殊特性,具体查MDN
String对象
string ----> 字符串类型 ----> 基本类型(值类型)
String ----> 字符串对象 ----> 引用类型
var str = “hello”;
var str = new String(“hello”);
- js中字符串可以看做字符组成的数组(因此可以通过for循环通过索引的方式遍历),但是js中没有字符类型
- 字符串特定:不可变性–>指的是字符串的值是不能改变的,重新赋值是重新开辟了一个另外的空间但是原来字符串的值并没有改变
- 字符串的常用属性
- str.length
- str.charAt(索引); ---->索引是从0开始的,超出字符串长度减一时返回的是空字符串
- String.fromCharCode(num1,num2,…) ----> 是一个静态方法,返回使用指定的Unicode值序列创建的字符串。即参数num1,num2这些是Unicode值,将这些Unicode值对应的字符组合成一个字符串返回
- str.concat(字符串1,字符串2,…) ----> 字符串拼接,返回的是一个新的字符串
- str.indexOf(要找的字符串 [ , 从某个位置开始找的索引] ); ----> 返回字符串在str中第一次找到的位置的索引值,找不到时返回的是-1
- str.lastIndexOf(); ----> 从后往前找,但是索引值始终是从前往后算的
- str.match(); ---->以正则表达式匹配
- str.replace(旧字符串,新字符串); ----> 把str中的旧字符串替换成新字符串,返回一个新的字符串
- str.slice(开始的索引,结束的索引); ----> 返回str从开始索引的位置到结束索引的位置(不包含结束索引的位置)中间的字符串
- str.split(分隔符 [ , 切割后留下的个数 ] ); ---->切割字符串,返回的是一个数组
- str.substr(开始的位置 [ , 长度 ]) ----> 截取从指定位置开始到指定长度的字符串,如果没有指定长度就是截取到最后一个字符
- str.substring(开始索引 [ , 结束索引 ]); ----> 返回截取后的字符串,不包含结束索引位置的字符
- str.toLocaleLowerCase() 结果和 str.toLowerCase() ---->转为小写
- str.toLocaleUpperCase() 结果和 str.toUpperCase() ---->转为大写
- str.trim() ----> 切掉字符串两端的空格
Array对象
只要是数组就是对象,无论数组是通过new创建的还是通过字面量的形式创建的
- 判断变量是否是数组
- 变量 instanceof Array
- Array.isArray(变量) ---->这是一个静态方法
- arr1.concat(arr2, arr3, …); ---->拼接数组的,原有的数组不会改变
- arr.every(函数); ----> 对数组中的每一个元素都进行测试。返回值是布尔类型,函数作为参数,函数有三个参数,第一个为元素的值,第二个为索引值,第三个为原来的数组(一般情况下没什么用)。只有当数组中的每一个元素都满足条件才返回true
-
var arr = ["hello", "你好", "안녕하세요", "こんにちは"]; //判断数组中每一个元素的长度是否都是大于2 var flag = arr.every(function (ele, index) { return ele.length>2; }); console.log(flag);
-
- arr.filter(函数) ----> 返回数组中所有满足条件的元素组成的数组
- arr.push(值) ---->把值追加到数组中 ,返回值为追加数据后数组的长度
- arr.pop(); ---->删除数组中的最后一个元素,返回被删除的元素
- arr.shift(); ---->删除数组中的第一个元素,返回值为被删除的元素
- arr.unshift(值); ---->向数组的前面插入值,返回值为插入后数组的长度
- arr.forEach(函数) ---->遍历数组,相当于for循环,函数同样有三个参数,第一个为元素,第二个为索引
-
var arr = [1, 2, 3, 4, 5]; arr.forEach(function (ele, index) { console.log(ele + "====" + index); });
-
- arr.indexOf(元素值); ----> 返回元素值在数组中的索引,找不到时返回-1
- arr.join(分隔符); ---->返回由分隔符连接的数组元素组成的字符串
- arr.map(函数) ----> 数组中的每一个元素都要执行函数,将结果组成一个新的数组返回
- arr.reverse(); ---->数组反转
- arr.sort(); ---->数组排序,不稳定,因为按照元素的Unicode进行排序的,所以结果可能出现60排在7前面的情况
- 使sort方法稳定的方式:给sort方法传递一个函数,函数有固定的格式:
var arr = [1, 5, 4, 60, 7];
console.log(arr.sort(function (a, b) {
if (a < b) {
return -1;
}else if (a > b) {
return 1;
}else {
return 0;
}
})); //这样的结果就是稳定的
- arr.slice(起始位置索引 [ , 结束位置索引 ]); ---->截取数组返回一个新的数组,不包含结束位置索引的字符
- arr.splice(开始的位置,要删除的个数,替换的元素的值); ---->一般用于删除数组中的元素,或替换数组中的元素,或想数组中插入元素
-
var myFish = ["angel", "clown", "mandarin", "surgeon"]; //从第 2 位开始删除 0 个元素,插入 "drum" var removed = myFish.splice(2, 0, "drum"); //运算后的 myFish:["angel", "clown", "drum", "mandarin", "surgeon"] //被删除元素数组:[],没有元素被删除
-
- 清空数组:arr.length = 0;