JS 中 提供 了17种内置对象 可以 让我们直接去调用以便我们实现不同的功能
这里详细介绍四种 对象 也是最为常见的几种
分别是 Math对象 时间对象 数组对象 以及 字符串 对象
其中 数组对象 内容 最多 也是比较重要
还有一些 排序 算法 的 使用 都 相应的 配上了代码
还有就是这些也都是一名 学习中的 学生 笔记 记录
如果有那些知识点 有 歧义 尽可以 私信我 指点 一下
感谢
方法 | 含义 |
---|---|
Math.floor(数字) | 舍弃小数位 |
Math.ceil(数字) | 小数位向整数取整 进位 |
Math.max(数字1,数字2,数字3) | 取最大值 |
Math.min(数字1,数字2,数字3) | 取最小值 |
Math.round(数字) | 四舍五入 |
Math.pow(x,y) | 成方 x的y 次方 |
Math.sqrt(x) | 开方 就是 只能开平方 n 的开根号 |
Math.random | 获取 [0-1) 的随机数 看 0.1 |
Math.abs | 绝对值 可以 隐式转换Math.abs(“123”) == 123 |
Math.random()*100;
取 100-300 的随机数
console.log(Math.random) * 200 +100;
// 随机数 * (终点-起点) + 起点
new Date()
当前时间方法 | 含义 |
---|---|
getFullYear()/setFullYear() | 获取和设置年份 |
getMonth()/setMonth() | 获取设置月份 注意获取月份呢得到的是0-11 需要+1 |
getDate()/setDate() | 设置和获取日期 |
getDay() | 获取周几 只能获取不能设置 得到是的是一个数字 0-6 0是周 |
getHours()/setHours() | 获取设置小时 |
getMinutes()/setMinutes() | 获取设置分钟数 |
getSeconds()/setSeconds() | 获取设置秒数 |
getTime()/setTime() | 获取和设置时间戳 当前时间 - 1970.1.1 0:0:0 单位是ms |
Date.parse(时间格式的字符串) | 字符串转换时间戳 |
方法 | 含义 |
---|---|
显示全部时间 | date.toString() |
显示日期 | date.toDateString() 年月日 |
显示时间 | data.toTimeString()时分秒 时区 |
方法 | 含义 |
---|---|
显示全部时间 | date.toLocaleString() 本地时间字符串 |
显示日期 | date.toLocaleDateString() 年月日 |
显示时间 | data.toLocaleTimeString()时分秒 时区 |
创建制定时间的方法
var oDate = new Date(2020,11,12,0,0,0)
var oDate = new Date("2020,12,12,0:0:0")
距离双11 倒计时
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
head>
<body>
<p>p>
<script>
var p = document.getElementsByTagName("p")[0];
// 创建目标时间
var date = new Date("2020,11,11,00:00:00");
var daojishi = setInterval(function () {
// 获取当前时间
var current = new Date();
var cha = parseInt((date - current) / 1000)
// 获取的是 毫秒数 / 1000 就是秒数
var d = Math.floor(cha / 3600 / 24);
// 秒数 / 3600一天的秒数 / 24 小时 == 天数
var h = Math.floor(cha / 3600 % 24);
var m = Math.floor(cha / 60 % 60);
var s = parseInt(cha % 60);
p.innerHTML = d + "天" + h + "小时" + m + "分钟" + s + "秒";
}, 1000)
script>
body>
html>
文档
创建当前时间对象:moment()
创建指定时间对象:moment(“YYYY-MM-DD HH:mm:ss”);
moment(原生时间对象) 创建指定时间对象
monent(指定时间戳) 创建指定时间对象
格式化format
<script src="../../moment.js"></script>
<script>
var date = moment()
console.log(date.format())
</script>
2020-09-15T14:33:38+08:00
方法 | 含义 |
---|---|
year() | 年份 |
month() | 月份 0-11 月 |
date() | 天 |
day() | 周几 0-6 0 代表 周日 |
week() | 获取当前是本年的第几周 |
daysInMonth() | 获取当前月份 有多少天 |
dayOfYear() | 获取当前日期是今年的第几天 |
get(“year”) | 获取当前 可以是 year month date hour minute second millisecond |
set(“year”,2020) | 获取当前 可以是 year month date hour minute second millisecond 后面的参数 是 要设置的 日子 月 0-11 |
方法 | 含义 |
---|---|
isBefore(“2020-01-01”) | 是否早于2020-01-01 晚于 flase 早于 true 特殊用法:moment.isBefore("2020-01-01","year") 只比较年份 |
isAfter() | 用法同上 是否晚与 |
isBetween() | 判是否在两个值之间moment.isBefore("2020-01-01","2020-11-11") 成立true |
isLeapYear | 判断是不是润年 整/4 不能整/100 |
isSname | 判断两个时间是否完全相同 |
用法1:字符串.indexOf(字符/字符片段)
查找 指定字符字符片段 的 索引 返回 没有返回 -1 如果存在多个 之取第一个
用法2: 字符串.indexOf(字符/字符片段,索引开始位置)
lastIndexOf()
用法跟indexOf一致;
从字符串尾部向头部
查找
索引还是从头到尾部
字符串比较大小
按照字符串中的unicode 编码 进行比较
如果前一位已经比出大小 后面的就不比较了
小写大于大写字母
字母大于数字
截取字符串slice
用法:字符串.slice(起点,结束点)
可以截取起始不截取终点
用法:字符串.slice(起点)
从开始位置 到结尾
截取字符串substring()
用法:字符串.substring(起点,结束点)
可以截取起始不截取终点
用法:字符串.substring(起点)
从开始位置 到结尾
slice 以及 substring 的区别
截取字符串substr()
用法:字符串.substr(起点,要截取的位数)
字符串.toUpperCase()
字符串.toLowerCase()
字符串.trim();
字符串.replace(要被替换的字符片段,用来替换的字符片段)
split("标识")
split("标识",数组长度)
split()
根据默认标识进行切割方法 |
---|
var arr = []; |
var arr = Array(1,2,32); |
var arr = new Arrar(1,2,3); |
在数组末尾添加 数组.push(数组项1,数组项2)
在数组的末尾删除最后一个数组.pop()
在数组开头添加 数组.unshift(数组项1,数组项2)
在数组的开头删除第0项数组.shift()
删除数组项
数组.splice(删除的起始位置索引,要删除的字符数)
替换数组项
数组.splice(删除的起始位置索引,要删除的字符数,用来替换的数组项1,用来替换的数组项2)
添加数组项
数组.splice(删除的起始位置索引,0,用来添加的数组项1,用来添加的数组项2)
<script>
var arr = [3, 1, 2, 3, 4, 5, 3, 3, 3, 4];
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) {
arr.splice(j, 1)
j--;
// j-- 的意思就是 有并排的相同数据的时候删除第一个相同的之后下标并没有变 ,就会导致 跳过下一个 相同的
}
}
}
console.log(arr)
</script>
<script>
// 选择排序的思路
// 第一个数字 跟后面的所有数字进行比较
// 如果发现 有比自己小的就换位置
var num = [90,8,3,4,6,800]
for(var i = 0;i<num.length;i++){
for(var j = i+1;j<num.length;j++){
if(num[i] > num[j]){
var a;
a = num[i];
num[i] = num[j]
num[j] = a;
}
}
}
console.log(num)
</script>
<script>
// 冒泡排序思路
// 比较相邻的两个元素 如果前面的比后面的大 就交换位置 两两 比较
// 冒泡跟选择排序的区别
// 冒泡是比较相邻的两个数 , 大数放在后面 然后 大数在跟相邻的 数比较 一趟下来 最大的 数 就已经 到了最后面
// 然后开始 第二趟 因为最大的数字 已经排到了最后 所以不用比较; 经过实际比较发现 -i 内层循环 将近 是 不加 -i 的 一半
var num = [90,8,3,4,6,800,90,8,3,4,6,800,2,90,8,3,4,6,800,90,8,3,4,6,800,2];
for(var i =0;i<num.length-1;i++){
for(var j = 0;j<num.length -1-i ;j++){
if(num[j] > num[j+1]){
var a;
a = num[j];
num[j] = num[j+1];
num[j+1] = a;
}
}
}
console.log(num)
</script>
sort方法
用法:1
作用:把数组进行排序 按照unicode编码进行排序(默认的方法)
用法:2
数组.sort(function(形式参数1,形式参数2){
return 形式参数1 - 形式参数2
<!-- 从小到大 -->
return 形式参数2 - 形式参数1
<!-- 从大到小 -->
})
形式参数1 是前一个数组项
形式参数2 是后一个数组项
返回值 的 减法 只能运算 数字
写法:字符串1.localeCompare(字符串2,"zh")
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
head>
<body>
<script>
function quitSort(arr) {
// 取中间项的索引
if(arr<=0){
return arr;
}
var centerIndex = parseInt(arr.length / 2);
// 拿到中间项 是一个数组 并删除
var center = arr.splice(centerIndex, 1);
var min = [];
var max = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] < center[0]) {
min.push(arr[i]);
} else {
max.push(arr[i]);
}
}
return quitSort(min).concat(center, quitSort(max));
}
console.log(quitSort([3, 1, 2, 9, 0]))
script>
body>
html>
跟字符串使用方法一样
跟字符串使用方法一样
能够截取开头不能接取末尾
可以传负数参数
作用:针对数组元素如果结果都为true 返回值也是 true
用法:数组.filter(function(tem,idx,arr){return 过滤条件})
用法:数组.filter(function(tem,idx){return 过滤条件})
用法:数组.filter(function(tem,idx){return 过滤条件})
注意:如果满足过滤条件 就筛选出来 组成一个新的数组
用法:数组.map(function(item,idx){return 对数组项的操作代码})
循环对没一个数组项执行返回的操作代码 最后将执行过后的数组项组成一个新的数组
作用:没有返回值 就是单纯的循环数组
用法:数组.forEach(function(item,idx){循环体代码})
朋友,感谢你看到了最后,新手报道,技术不成熟的地方请多多指点,感谢!
有问题可以私信我、大家一起交流 前端知识 以及 爬虫 python知识。
公众号:Linux下撸python
期待和你再次相遇
愿你学的愉快