对象
对象: 在js中 万物皆对象 一切皆对象 分为: 本地 内置 自定义 宿主 全局
本地(内部): Number String Boolean Object Array Function RegExp Date Error
内置: 在页面加载完成后 已经实例化的对象 Global Math
宿主: DOM BOM
全局: window
api: application programming Interface 应用程序编程接口
已经封装好的可以直接使用的函数 直接调用实现功能
Math
console.log(Math); // 数学对象 console.log(Math.PI); // π console.log(Math.floor(3.99999)); // 向下取整 console.log(Math.ceil(3.000001)); // 向上取整 console.log(Math.round(4.50001)); // 四舍五入 console.log(Math.round(4.499999)); // 四舍五入 console.log(Math.max(20, 32, 12, 43, 12, 43, 435, 43)); // 求最大值 console.log(Math.min(20, 32, 12, 43, 12, 43, 435, 43)); // 求最小值 console.log(Math.pow(2, 10)); // 幂次方 console.log(Math.sqrt(4)); // 开根号 console.log(Math.abs(-1000)); // 绝对值 // 求随机数: /* Math.random() 0-1的随机数 Math.random() * 数 0-数之间的随机数 不包含数 Math.random() * (y - x) + x x-y之间的随机数 不包含y y > x */ for(var i = 0; i < 5; i++){ // console.log(Math.random()); // console.log(Math.random() * 10); console.log(Math.random() * (50 - 30) + 30); }
Date
创建时间
创建当前时间
var date = new Date(); console.log(date); console.log(typeof date); // object
创建其他时间
1.2.1 用 , 直接分割 月份: 0-11 表示 1-12 月
1.2.2 传 字符串 年月日中间可以用任意特殊英文符号进行分割 空格 , / $ 时分秒 用 时:分: 秒
// 1.2.1 用 , 直接分割 月份: 0-11 表示 1-12 月 var d1 = new Date(2021, 9, 1); var d1 = new Date(2021, 9, 1, 13, 13, 13); console.log(d1); // 1.2.2 传 字符串 年月日中间可以用任意特殊英文符号进行分割 空格 , / $ 时分秒 用 时:分: 秒 // 字符串 月份不减 var d2 = new Date('2021, 10, 1'); var d2 = new Date('2021, 10, 1 23:23:23'); var d2 = new Date('2021 10 1 23:23:23'); var d2 = new Date('2021/10/2 23:23:23'); var d2 = new Date('2021-10-3 23:23:23'); var d2 = new Date('2021_10_3 23:23:23'); // Invalid Date 不可用的时间 _中文符号 console.log(d2);
获取特定格式的时间
var dd = new Date(); console.log(dd); console.log(dd.toString(), typeof dd.toString()); // 字符串 console.log(dd.toLocaleString()); // 本地字符串日期 2021/9/22 上午11:35:10 console.log(dd.toLocaleDateString()); // 年月日 2021/9/22 console.log(dd.toLocaleTimeString()); // 时分秒 12小时 上午11:36:30
获取单个时间
var dd = new Date(); console.log(dd); // 获取单个时间 var y = dd.getFullYear(); console.log(y); // 2021 console.log(dd.getMonth()); // 月 0-11表示1-12月 console.log(dd.getDate()); // 日期 console.log(dd.getDay()); // 星期 0-6表示周日到周六 3 var w = dd.getDay(); var week = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六' ]; console.log(week[w]); console.log(dd.getHours()); // 小时 11 console.log(dd.getMinutes()); // 分钟 console.log(dd.getSeconds()); // 秒 // 毫秒: 时间戳 距离1970-1-1 console.log(dd.getTime());
moment
moment.js: 专门处理日期的js插件库
\1. 下载 Moment.js 中文网
\2. moment.js : 格式文档 学习
moment.min.js : 压缩文档 工作
YYYY: 年
MM: 月
DD: 日期
d: 星期
HH: 时
mm: 分
ss: 秒
X: 所有的秒 距离1970-1-1的毫秒/1000
前导0 自动添加
// 创建moment时间对象 var dd = moment(); console.log(dd); // format: 格式日期 /* YYYY: 年 MM: 月 DD: 日期 d: 星期 HH: 时 mm: 分 ss: 秒 X: 所有的秒 距离1970-1-1的毫秒/1000 前导0 自动添加 */ console.log(dd.format('YYYY')); console.log(dd.format('MM')); console.log(dd.format('DD')); console.log(dd.format('d')); console.log(dd.format('HH')); console.log(dd.format('mm')); console.log(dd.format('ss')); console.log(dd.format('X')); // 在页面中显示当前是 xxxx年xx月xx日 星期x x:x:x document.body.innerHTML = dd.format('YYYY年MM月DD日 星期d HH:mm:ss'); // 每隔1s自动更新一次 setInterval(function () { var dd = moment(); console.log(dd); document.body.innerHTML = dd.format('YYYY年MM月DD日 星期d HH:mm:ss'); }, 1000);
string
创建
字面量声明
包装类对象 不是真正的对象
var str = '12345a';
new关键字创建
var str1 = new String('asddhj'); console.log(str1); console.log(typeof str1); // object
长度
console.log(str1.length); // 长度
查找
charAt
charAt: 指定下标对应的字符
var str = 'qwertyuiop'; console.log(str.charAt(2));
charCodeAt
charCodeAt: 指定下标对应的字符的ASCII码
console.log(str.charCodeAt(2));
indexOf
indexOf: 查找指定的字符在字符串中出现的位置 如果有返回下标 如果没有返回-1
惰性查找: 找到一个符合条件的 就会直接返回
语法: 字符串.indexOf(要找的字符[, 起始下标])
不传起始下标: 默认从第一个字符开始查找
起始下标: 表示从起始下标的位置上开始往后进行查找
var str = '012345678900123456123451234123'; console.log(str); // 1是否在字符串str中出现 console.log(str.indexOf('1')); console.log(str.indexOf('1', 2)); console.log(str.indexOf('1', 13)); console.log(str.indexOf('a')); // -1
lastIndexOf
lastIndexOf: 查找指定的字符在字符串中最后出现的位置 如果有返回下标 如果没有返回-1
从右往左查找
语法: 字符串.lastIndexOf(要找的字符[, 起始下标])
console.log(str.lastIndexOf('1')); console.log(str.lastIndexOf('1', 26)); console.log(str.lastIndexOf('a'));
截取
substring
语法: 字符串.substring([起始下标], [结束下标]);
不传参: 返回整个字符串
传一个参数: 从起始下标开始 截取到 字符串的末尾 截止
传2个参数:
起始下标 < 结束下标: 从起始下标开始 截取到结束下标为止 包含起始下标对应的字符 不包含结束下标对应的字符
结束下标 < 起始下标: 互换位置 在参考上述规则
出现负数: 会把负数变成 0 参考上述规则
var str = 'abcdefghijklmn'; console.log(str.substring()); // abcdefghijklmn console.log(str.substring(2)); // cdefghijklmn console.log(str.substring(3, 5)); // de console.log(str.substring(5, 3)); // de console.log(str.substring(5, -1)); // 0---5 abcde
slice:
语法: 字符串.slice([起始下标], [结束下标]);
不传参: 返回整个字符串
传一个参数: 从起始下标开始 截取到 字符串的末尾 截止
传2个参数:
起始下标 < 结束下标: 从起始下标开始 截取到结束下标为止 包含起始下标对应的字符 不包含结束下标对应的字符
结束下标 < 起始下标: 返回空字符串
负数: 长度 + 负数 之后得到的结果 在参考上述规则
简单: 从右往左有几位不要
console.log(str.slice()); // abcdefghijklmn console.log(str.slice(2)); // cdefghijklmn console.log(str.slice(3, 5)); // de console.log(str.slice(5, 3)); // console.log(str.slice(3, -1)); // defghijklm console.log(str.slice(-10, -1)); // efghijklm
substr:
语法: 字符串.slice([起始下标], [截取长度]);
不传参: 返回整个字符串
传一个参数: 从起始下标开始 截取到 字符串的末尾 截止
console.log(str.substr());// abcdefghijklmn console.log(str.substr(2)); // cdefghijklmn console.log(str.substr(2, 5)); // cdefg
replace
语法: 字符串.replace(要被替换的字符/正则, 被替换的新字符/函数);
一次性只能替换一个位置上的字符, 返回新字符串
var str = 'today is Wednesday'; // s-->* console.log(str.replace('s', '*'));
split:
作用: 将字符串按照指定的分割符进行分割 返回数组
分割符可以是一切字符 空、空格、标签
语法: 字符串.split('分割符');
var str = 'you are a beautiful girl'; console.log(str); console.log(str.split('a')); // 每一个字符做一个数组的项 console.log(str.split('')); console.log(str.split()); // 整个字符串是数组的一项
转大小写:
转大写: 字符串.toUpperCase()
转小写: 字符串.toLowerCase()
var str = 'aSaSas'; var str1 = 'AsAsas'; console.log(str.toUpperCase()); console.log(str.toLowerCase());
不区分大小写: 将判断的字符都转成小写的或者都转成大写的之后再做判断
console.log(str.toLowerCase() == str1.toLowerCase());
trim
trim: 去除字符串左右空格
var str = ' (you are a girl) '; console.log(str); console.log(str.trim());