JS学习
mdn官方网址 https://developer.mozilla.org/zh-CN/
内置对象
1.时间对象Date
// 日期构造函数 Date()
// 1 空构造函数 获取的是当前时间对象
// var d = new Date();
// console.log(d);
// console.log(d.valueOf());
// 2 构造函数中传入 毫秒值
// var d = new Date(1502088177998);
// console.log(d);
//
// 3 可以传入日期形式的字符串
// var d = new Date('1988-8-8 8:8:8');
// console.log(d);
// console.log(d.valueOf());
//
// 4 可以传入数字
// var d = new Date(1928, 8, 8);
// console.log(d);
// console.log(d.valueOf());
格式化一个时间
// function formatDate(date) {
// // 判断参数date是否是日期对象
// // instanceof instance 实例(对象) of 的
// // console.log(date instanceof Date);
// if (!(date instanceof Date)) {
// console.error('date不是日期对象')
// return;
// }
// var year = date.getFullYear(),
// month = date.getMonth() + 1,
// day = date.getDate(),
// hour = date.getHours(),
// minute = date.getMinutes(),
// second = date.getSeconds();
// // if (month < 10) {
// // month = '0' + month;
// // }
// month = month < 10 ? '0' + month : month;
// day = day < 10 ? '0' + day : day;
// hour = hour < 10 ? '0' + hour : hour;
// minute = minute < 10 ? '0' + minute : minute;
// second = second < 10 ? '0' + second : second;
// return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
// }
2. 数组对象Array
// 判断参数arr 是否是数组对象
// instanceof
// console.log(arr instanceof Array);
数组对象方法
push(参数)
pop()
shift()
unshift(参数)
reverse()
sort();
concat()
slice()
splice()
indexOf()、lastIndexOf()
every()、
filter()、
forEach()、
map()、
some()
join()
// 1 栈操作(先进后出)
// push(参数)
// pop() //取出数组中的最后一项,修改length属性
// 2 队列操作(先进先出)
// shift() //取出数组中的第一个元素,修改length属性
// unshift(参数) //在数组最前面插入项,返回数组的长度
// 3 排序方法
// reverse() //翻转数组
// sort(); //即使是数组sort也是根据字符,从小到大排序
// 4 操作方法
concat() //把参数拼接到当前数组
slice() //从当前数组中截取一个新的数组,不影响原来的数组,参数start从0开始,end从1开始
splice() //删除或替换当前数组的某些项目,参数start, deleteCount, options(要替换的项目)
// 5 位置方法
indexOf()、lastIndexOf() //如果没找到返回-1
// 从前往后找元素
// console.log(arr.indexOf('a'));
// // 从后往前找
// console.log(arr.lastIndexOf('a'));
// indexOf的第二个参数 设置indexOf查找的开始位置
// 6 迭代方法 不会修改原数组(可选) html5
every()、
filter()、
// var newArray = arr.filter(function (item) {
// // item就是数组中的每一个元素
// return item < 2000;
// })
// console.log(newArray);
forEach()、
map()、
some()
// 7 方法将数组的所有元素连接到一个字符串中。
join() 将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串
1 栈操作 先进后出
// var r = array.push(5, 6, 7);
// // console.log(r);
// // console.log(array);
// var last = array.pop();
// 2 队列操作(先进先出)
// var array = [1, 2, 3];
// array.push(4);
// var first = array.shift();
// console.log(first);
// console.log(array);
// array.unshift(0);
// console.log(array);
sort方法
// 默认情况下的sort是对字符编码 从小到大排序
// arr.sort();
// console.log(arr);
把数值排序
// function compare(a, b) {
// return a - b;
// }
增加一个compare比较规则函数
// arr.sort(compare);
// console.log(arr);
常用写法
// arr.sort(function (a, b) {
// return b - a;
// })
// 清空数组
// arr = [];
3.字符串
// // 把基本类型变成基本包装类型 会创建一个对应的临时对象
// var _s1 = new String('abc');
// var len = _s1.length;
// _s1 = null; // 销毁对象
字符串基本特点
每次赋值内存指向另一个内存地址
字符串方法
charAt()
concat()
substr()
indexOf()
trim()
to(Locale)UpperCase() //转换大写
to(Locale)LowerCase() //转换小写
search()
replace()
split()
// 1 字符方法
// charAt() //获取指定位置处字符
// charCodeAt() //获取指定位置处字符的ASCII码
// str[0] //HTML5,IE8+支持 和charAt()等效
//
// var s = 'abcdef';
// console.log(s.charAt(0));
// for (var i = 0; i < s.length; i++) {
// console.log(s.charAt(i));
// }
//
// console.log(s.charCodeAt(0));
//
// for (var i = 0; i < s.length; i++) {
// console.log(s[i]);
// }
// // 2 字符串操作方法
// concat() //拼接字符串,等效于+,+更常用
// slice() //从start位置开始,截取到end位置,end取不到
// substring() //从start位置开始,截取到end位置, end取不到
// substr() //从start位置开始,截取length个字符
常用 substr()
// var s = ‘我爱中华人民共和国’;
// // 第一个参数,截取的开始位置
// // 第二个参数,截取的长度
// var newStr = s.substr(2, 2);
// console.log(newStr);
// // 3 位置方法
// indexOf() //返回指定内容在元字符串中的位置
// var index = -1;
// do {
// index = s.indexOf('o', index + 1);
// if (index !== -1) {
// console.log(index);
// }
// } while (index !== -1);
// lastIndexOf() //从后往前找,只找第一个匹配的
// // 4 去除空白
// trim() //只能去除字符串前后的空白
// // 5 大小写转换方法
// to(Locale)UpperCase() //转换大写
// to(Locale)LowerCase() //转换小写
// // 6 其它
// search()
// replace() 替换对应的字符 两个参数
// var index = -1;
// do {
// index = s.indexOf(‘o’, index + 1);
// if (index !== -1) {
// // 替换
// s = s.replace('o', '!');
// }
// } while(index !== -1);
// console.log(s);
// split() 指定的分隔符字符串将一个String对象分割成子字符串数组
// var s = " abc xyz a 123 ";
// var arr = s.split(" ");
// console.log(arr.join(""));
// 判断一个字符串中出现次数最多的字符,统计这个次数
// abcoefoxyozzopp
//
// 出现次数最多的字符 和 此字符出现的次数
//
// 1 统计每一个字符出现的次数
//
// 要求的出现次数最多的字符
// var s = 'abcoefoxyozzopp';
// var ch;
// // 此字符出现的次数
// var num;
// // 记录字符串中每一个字符出现的次数
// var o = {};
// for (var i = 0; i < s.length; i++) {
// var item = s.charAt(i);
// if (o[item]) {
// // 已经有该属性,+1
// o[item]++;
// } else {
// // 对象中没有该属性
// o[item] = 1;
// }
// }
// // 2 求最大值 并且找到次数最多的字符
// // 假设最大值是1
// num = 1;
// for (var key in o) {
// if (num < o[key]) {
// // 最多的次数
// num = o[key];
// // 次数最多的字符
// ch = key;
// }
// }
// console.log(num);
// console.log(ch);