常用的内置对象
1 Math对象的常用方法
Math 对象用于执行数学任务。
方法名 | 功能 |
---|---|
Math.ceil() | 向上取整 |
Math.floor() | 向下取整 |
Math.max()/Math.min() | 求最大和最小值 |
Math.random() | 获取范围在[0,1)内的随机值 |
简单使用:
<script>
//圆周率
console.log(Math.PI);
//最大值
console.log(Math.max(1,3,9));
//最小值
console.log(Math.min(1,3,9));
</script>
绝对值和取整:
<script>
//绝对值
console.log(Math.abs(-1));
console.log(Math.abs(1));
//取整
console.log(Math.ceil(1.2));//向上取整
console.log(Math.ceil(1.9));
console.log(Math.floor(1.2));//向下取整
console.log(Math.floor(1.9));
console.log(Math.round(1.2));//四舍五入
console.log(Math.round(1.9));
console.log(Math.round(1.5));
</script>
生成随机数:
<script>
//生成0-1之间的随机数 [0,1)
console.log(Math.random());
//生成1-10之间的随机数,包含1和10
//[1,10] --> [0,10) + 1 --> [0,1)*10 + 1
//[50,100] --> [0,51)+50 --> [0,1)*51 + 50
//规律 生成[min,max]的随机数(包含min和max)
//Math.floor(Math.random()*(max-min+1) + min)
/* 1-199 */
console.log(Math.floor(Math.random()*199+1));
</script>
应用:
<script>
/* 随机生成一个女孩的年龄(18-28之间)
让男生一直猜,提示:猜大了或者猜小了
当猜对了,就退出程序 */
//console.log(getAge(18,28));
//生成年龄
var girlAge = getAge(18,28)
//循环
while(true){
var age = prompt('请猜一下我的年龄')
//判断
if(age > girlAge){
alert('猜大了')
}else if(age < girlAge){
alert('猜小了')
}else{
alert('猜对了')
break
}
}
function getAge(min,max){
return Math.floor(Math.random()*(max-min+1))+min
}
</script>
2 Date对象的常用方法
Date对象用于处理日期和时间
方法名 | 功能 |
---|---|
getFullYear() | 获取年份 |
getMonth() | 获取月份(0~11) (0指1月 所以一般要+1) |
getDate() | 获取日期(1~31) |
getDay() | 获取星期(0~6) (0是指周日 一般可用switch和数组) |
getHours() | 获取小时 |
getMinutes() | 获取分钟 |
getSeconds() | 获取秒 |
创建时间:
生成当前时间/ 生成指定时间
//创建:采用构造函数的方式
var date = new Date() //自动保存当前时间
console.log(date);
//生成指定的时间方式一-数字型
var date1 = new Date(2008,7,8)
console.log(date1);//其实返回的 月份+1 所以传参的时候要把月份-1
//生成指定的时间方式二-字符型
var date2 = new Date('2008-8-8')
console.log(date2);
获取年月日及日期:
<script>
/*
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 1 3
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。 1 3
getMonth() 从 Date 对象返回月份 (0 ~ 11)。 1 3
getFullYear() 从 Date 对象以四位数字返回年份。
*/
//在控制上打印 今天是:2022年3月8号 星期二
var date = new Date()
//获取年月日及日期
var year = date.getFullYear()
var month = date.getMonth() + 1
var day = date.getDate()
var week = date.getDay()
var arr = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六']
console.log('今天是:'+year+'年'+month+'月'+day+'号 '+arr[week]);
</script>
获取时分秒:
<script>
/*
getHours() 返回 Date 对象的小时 (0 ~ 23)。
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
*/
var date = new Date()
console.log(date.getHours());
console.log(date.getMinutes());
console.log(date.getSeconds());
</script>
获取毫秒值:
<script>
/*
getTime() 返回 1970 年 1 月 1 日至今的毫秒数。(计算机的起始时间)
valueOf()
*/
var date = new Date()
console.log(date.getTime());//1646708911622
console.log(date.valueOf());
//最简单的写法(最常用的)
var date1 = +new Date()
console.log(date1);
//h5新增一个方式
console.log(Date.now());//不需要创建对象,now()就是获取当前时间距离1970年的毫秒值
</script>
实例:
<script>
//打印你下你来这个世界有多少天
//思路: 先算出 差值 = 现在距离1970年毫秒值 - 你的生日距离1970年的毫秒值
// 差值/1000/60/60/24
//定义两个变量存储两个毫秒值(直接用两个时间相减,也可以得到毫秒值)
var birthday = +new Date('1990-1-28')
var today = +new Date()
//计算差值
var time = today - birthday
//计算天数
console.log(time/1000/60/60/24);
</script>
3 Array数组对象的常用方法
Array 对象用于在单个的变量中存储多个值。
方法名 | 功能 | 返回值 |
---|---|---|
push() | 在末尾添加元素 | 新数组的长度 |
pop() | 删除最后一个元素 | 删除的元素的值 |
slice() | 截取子数组 | 新数组 |
splice() | 通常用于删除某个指定元素 | 新数组 |
创建方式:
字面量方式 / 使用构造函数new
<script>
//数组的字面量方式
var arr = [1,2,3]
//使用构造函数 new
/* new Array();
new Array(size);//长度
new Array(element0, element1, ..., elementn); */
var arr1 = new Array()
console.log(arr1);
var arr2 = new Array(2)//2代表长度
console.log(arr2);
var arr3 = new Array(2,3)//2,3代表元素
console.log(arr3);
</script>
添加和删除数组元素:
**push( ) **向数组的末尾添加一个或更多元素,并返回新的长度。<br /> ** pop( ) **删除并返回数组的最后一个元素
<script>
var arr = [1,2,3]
//push() 向数组的末尾添加一个或更多元素,并返回新的长度。
arr.push(4)
console.log(arr);
arr.push(5,6,7)
console.log(arr);
//现在数组已经变成 [1,2,3,4,5,6,7]
//pop() 删除并返回数组的最后一个元素
arr.pop()
console.log(arr);
var c = arr.pop()//返回数组的最后一个元素
console.log(c);//6
</script>
数组的遍历:
<script>
//有一个包含工资的数组 [1500,1200,2000,2100,1800] 把超过2000的删除,剩余的放到一个新的数组 打印新的数组
//只需要把工资不超过2000的放到一个新的的数组
//怎么找到工资不超过2000 遍历然后判断
var arr = [1500,1200,2000,2100,1800]
//定义一个新的数组
var newArr = []
//遍历
for(var i=0;i<arr.length;i++){
//判断
if(arr[i] < 2000){
newArr.push(arr[i])
}
}
//打印新数组
console.log(newArr);
</script>
数组反转和排序:
**reverse( ) **颠倒数组中元素的顺序。 <br /> **sort( ) **对数组的元素进行排序
<script>
//reverse() 颠倒数组中元素的顺序。
var arr = [1,2,3]
arr.reverse()
console.log(arr);
//sort() 对数组的元素进行排序
var arr1 = [9,7,6,1,2,3]
//arr1.sort()//默认是升序排序
//console.log(arr1);//升序
//降序
arr1.sort(function(a,b){
return b - a
})
console.log(arr1);
</script>
查找索引:
**indexOf ** 查找索引<br /> **lastIndexOf** 从最后开始查找索引
<script>
//indexOf 查找索引
var arr = [1,2,3,4,1,5,6,7]
var index = arr.indexOf(2)//1 只会查找第一个是1的元素的索引
console.log(index);
//lastIndexOf 从最后开始查找索引
var lastIndex = arr.lastIndexOf(1) //从后面开始数的,但是索引还是正的来的
console.log(lastIndex);//4
var i = arr.indexOf(8)
console.log(i);//-1 -1的含义就是告诉你,数组中没有这个元素
</script>
数组去重:
<script>
//数组去重 [1,1,2,3,3,4,5,5] 去掉里面的重复元素
var arr = [1,1,2,3,3,4,5,5]
//创建一个新的数组,用于存放不重复的元素
var newArr = []
for(var i=0;i < arr.length;i++){
//在放入新数组之前,用indexOf()做一个判断,如果他的值==-1,说明新数组中没有这个元素,就可以放进去
if(newArr.indexOf(arr[i]) == -1){
newArr.push(arr[i])
}
}
console.log(newArr);
</script>
4 String对象的常用方法
String 对象用于处理文本(字符串)。
检索字符串:
**indexOf( ) **检索字符串<br /> ** lastIndexOf( ) **从后向前搜索字符串
<script>
//indexOf() 检索字符串。
var str1 = '女大十八变,越变越随便'
//查找 变 所在的索引
var index = str1.indexOf('变')
console.log(index);//4
var index1 = str1.indexOf('变',5)//从索引为5的元素位置往后数
console.log(index1);
//lastIndexOf() 从后向前搜索字符串。
var i = str1.lastIndexOf('变')
console.log(i);//7 索引还是正的来的
</script>
根据索引查找对应字符:
charAt( ) 返回在指定位置的字符。
<script>
//charAt() 返回在指定位置的字符。
var str = '问世间情为何物,只不过是一物降一物'
var c1 = str.charAt(3)
console.log(c1);
//字符串的长度
console.log(str.length);
//遍历
for(var i=0;i < str.length;i++){
console.log(str.charAt(i));
}
//H5新增的一个方法
console.log(str[0]);
</script>
字符串的拼接/ 截取 /替换:
concat( ) 连接字符串
substr( ) 从起始索引号提取字符串中指定数目的字符
replace( ) 替换
<script>
//字符串的拼接 最简单的方式就是 +
//concat() 连接字符串。
var s1 = '刚刚被表白了'
var s2 = s1.concat('让我们恭喜刚刚')
console.log(s2);
//截取
//substr() 从起始索引号提取字符串中指定数目的字符。 //包含起始索引的字符
var s3 = '十年生死两茫茫'
console.log(s3.substr(2,2));//第一个参数是起始索引,第二个参数是截取的个数
//replace() 替换
var s4 = '你个坏蛋'
var s5 = s4.replace('坏蛋','**')
console.log(s5);
</script>
练习:
<script>
//任意一个手机号,将中间的4位变成 *****
var tel = '12345678901'
//先获取中间4位
var temp = tel.substr(3,4)
//替换
var result = tel.replace(temp,'****')
console.log(result);
</script>
5 JSON对象的常用方法
方法名 | 功能 | 返回值 |
---|---|---|
JSON.parse(str) | 将JSON字符串转换成JS对象 | JS对象 |
JSON.stringify(obj, null, 2) | 将 JS 对象转换为 JSON 字符串 | JSON字符串 |
json字符串与js对象的互转
json
本质是一个字符串,一种简单的轻量级的数据存储格式
区别
json字符串:本质是一个字符串,格式化的字符串
js对象:本质是一个对象,类的实例
传输
json字符串:可以跨平台传输,速度快
js对象:不能传输
表现
json字符串:
键值对的方式,属性必须加引号
值不可以是方法,函数,undefined以及NaN
js对象
键值对方式,属性可以不加引号
值可以是函数,对象,字符串,数字.boolean等
var jsonStr = '{"name":"张三","age":"23"}'//json字符串
console.log(jsonStr);
console.log(typeof jsonStr);
//json字符串转js对象
var obj = JSON.parse(jsonStr)
console.log(obj);
console.log(typeof obj);
var jsObj = {name: '张三', age: '23'} //js对象
var str = JSON.stringify(jsObj)
console.log(str);