JavaScript 内置对象
内置对象
- 对象分为三种 : 自定义对象 , 内置对象 , 浏览器对象
- 内置对象就是指的 js 语言自带的一些对象 , 这些对象供开发者使用 , 提供了一些基本而且必要的功能
查文挡
- MDN / W3C 查阅步骤
- 查询该方法的功能
- 查看里面的参数的意义和类型
- 查看返回值的意义和类型
- 测试 注意 : 参数加入中括号的意思是可选的
Math 对象
-
Math对象不是一个构造函数 , 我们不需要 new 来使用 , 可以直接使用方法和属性即可
-
Math对于内部的参数存在隐式转换 , 如果无法转换 , 输出NaN
console.log(Math.PI); // 返回 pi 的值
console.log(Math.max(1,2,3)); // 返回 1, 2, 3 中最大的值
console.log(Math.max(1, 2, '3')) // 返回1, 2, '3' 中的最大值 ,由于 字符串 '3' 能被转换为数字型 , output : 3
// 其他重要Math对象中的方法
Math.abs(); // 返回参数的绝对值
Math.floor(); // 向下取整
Math.ceil(); // 向上取整
Math.round(); // 四舍五入
Math.random(); // 随机在 [0 , 1) 返回一个浮点数
Math.PI(); // 输出PI
Date 对象
-
Date 是构造函数 , 我们必须使用 new 来创建我们的日期对象 , 即获取当前时间必须实例化
-
如果内部没有参数 , 返回当前系统的当前时间
var date = new Date();
console.log(date); // output : Mon Sep 09 2019 09:14:50 GMT+0800(中国标准时间) (当前时间)
- 传入字符串
var date = new Date(2019, 9, 9);
console.log(date); // Wed Oct 09 2019 00:00:00 GMT+0800 (中国标准时间)
// 注意此时的月份是 Oct (十月)
- 格式化日期
// 格式化 日期
var date = new Date();
console.log(date.getFullYear()); // 返回当前年份
console.log(date.getMonth()); // 返回当前月份 , 注意计数方式 (0 - 11)
console.log(date.getDate()); // 返回当前日期
console.log(date.getDay()); // 返回当前曜日 , 星期天是第一天 , 计数方式 (0 - 6) , 即 0 代表周日
// 格式化 时间 (返回时间格式是 24 小时制)
var date = new Date();
console.log(date.getHours); // 返回当前时间的 时
console.log(date.getMinutes); // 返回但前时间的 分
console.log(date.getSeconds); // 返回当前时间的 秒
// 时间戳 , Date 对象是基于 1970 年 1 月 1 日开始计时的 , 毫秒数是不会重复的
var date = new Date();
console.log(date.valueOf());
console.log(date.getTime()); // 使用较多的 , 获取自 1970 年 1 月 1 日开始的计时的总毫秒数
var date1 = +new Date(); // 不建议使用
console.log(date1);
var date = Date.now(); // H5 新增 , 存在兼容性问题 , 也比较常用
console.log(date);
数组 对象
- 检测是否为数组类型 :
Array.isArray(); // 用于确定传递的值是否为一个 Array
arrayName instanceof Array ; // 返回的是布尔值
- 数组添加或者删除元素 :
// push () 在数组的尾部 , 添加一个或者多个元素
// 例如 :
var arr = [1, 2, 3];
arr.push(4, 5); // 返回的值是改变之后的数组长度
console.log(arr); // output : [1 , 2 , 3 , 4 , 5]
// 注意 : 是在原数组的基础上的改变
unshift(); // 在数组的头部 , 添加一个或者多个元素
// 语法与 push 类似
// pop () 删除数组最后的一个元素
var arr = [1, 2, 3, 4, 5];
arr.pop(); // 只能删除一个元素 , 返回值是删除的那个元素
// 注意 : 是在原数组的基础上的改变
shift(); // 只能删除一个元素 , 返回值是删除的那个元素
splice(参数1, 参数2, 参数3,);
// 第 1 个参数 : 表示的是数组的第 '索引' 个元素
// 第 2 个参数 : 表示要删除的元素个数
// 第 3 个参数以及后面的元素 : 表示增加的元素
// 这将会改变元素数组
- 数组排序
// 反转数组 , 会改变原来的数组
var arrayName = [1, 2, 3];
arrayName.reverse();
console.log(arrayName);
// 数组排序 , 会改变原来的数组 默认是以 ASCII 升序排序
var arrayName = [2, 3, 1];
var fn = function () {
if(a > b) {
return 1; // 如果a > b那么 a 就排到 b 前面
}
if(a < b) {
return -1; //如果a < b那么 b 就排到 a 前面
}
return 0;
}
arrayName.sort(fn);
- 索引查找
indexOf(); // 查找元素的索引
lastIndexOf(); // 从最后的元素开始查找 , 只要找到一个 , 就返回索引数值
- 数组转换为字符串
toString();
join(); // 中间可以添加参数 , 来改变分隔符
- 数组对象其他操作
// 截取数组 , 返回一个新的数组 , 原数组没有发生改变
var newArr = arr.slice(`参数1`, `参数2`)
// 第一个参数 截取的起始位置
// 第二个参数 截取的终点位置
//
字符串对象
-
基本包装类型
-
含义 : 就是把简单数据类型包装成复杂数据类型
var temp = new String(); // 生成临时变量
str = temp; // 赋值给我们声明的变量
temp = null; // 销毁临时变量
// String , Number , Boolean 都可以被包装成复杂数据类型
-
字符串的不可变性
-
含义 : 指的是字符串在内存中的不可变型
-
根据字符返回位置
indexOf(); // 有可选的第二参数 , 第二个参数 , 是从某个索引号开始寻找
lastIndexOf();
- 根据位置返回字符
// 根据位置返回字符
str.charAt(index);
// 根据位置返回字符的 ASCII 码
str.charCodeAt(index);
//获取指定位置的字符
str[index];
- 字符串的操作方法重点
// 连接字符串 , arr1 调用 , 链接 arr2
arr1.concat(arr2);
// 截取字符串
slice(n,m); // n : 为起始位置的索引 , m : 结束位置的索引 ,半包半闭区间不包括 m
// 替换字符串中的某一个字符
replace('x', 'y'); // 'x' : 被替换掉的字符 , 'y' : 目标字符
//字符串转换为数组
var str = 'wyf&cxk&lh'
str.split('&');
console.log(str);
// 转换字符串大小写
var str = 'vDASBJKDBFKASBFk';
console.log(str.toUpperCase());
console.log(str.toLowerCase());
简单类型 与 复杂类型
- 简单数据类型 (值类型) 与 复杂数据类型 (引用类型) : 常用的称呼 : 基本数据类型 与 引用类型
- 堆 与 栈
- 两种类型的 存储方式
- 简单数据类型 存放在栈内部 , 在内部开辟的空间直接存数值
- 复杂数据类型 存放在堆内部 , 首先在栈内部开辟空间 , 存放指向 堆 的地址
- 两种类型的 传参
- 基础数据类型传参 , 传递的是值
- 引用数据类型 , 传递的是内存地址