1.Number
Number
对象可以把字符串转化为数字,并对数字的精度做一些操作。
字符串转换为整数Number.parseInt()
:
var strNum = "15";
var num = Number.parseInt(strNum); //还可以写成 var num = parseInt(strNum);
console.log(num); //输出数字15
console.log(typeof num); //输出 number
字符串转换为小数Number.parseFloat()
:
var strNum = "12.34";
var num = Number.parseFloat(strNum);
console.log(num); //输出数字12.34
console.log(typeof num); //输出 number
当字符串不是数字时,会输出NaN
:
var strNum = "abc";
var num = Number.parseInt(strNum);
console.log(num); //输出NaN = Not a Number
console.log(isNaN(num)); //判断一个数字是不是NaN
console.log(typeof num); //输出 number ,NaN也属于number类型
操作精度toFixed()
:
var num = 12.334455;
var numStr = num.toFixed(2); //括号里的参数就是要保留的小数位数
console.log(numStr); //输出12.33
console.log(typeof numStr); //输出string,转换精度之后的返回结果是字符串类型
最大的不会溢出的整数,正无穷以及负无穷:
console.log(Number.MAX_SAFE_INTEGER); //输出 9007199254740991 最大的不会溢出的整数
console.log(Number.POSITIVE_INFINITY); //输出 Infinity 表示正无穷
console.log(Number.NEGATIVE_INFINITY); //输出 -Infinity 表示负无穷
2.Math
Math
对象是用来进行一些数学操作的。
console.log(Math.PI); //数学中的 圆周率 π
console.log(Math.abs(-5)); //计算绝对值
console.log(Math.sin(Math.PI / 2)); //三角函数 sin 参数是以圆周率 π为单位的, π = 180° ,这里就是sin90° = 1
console.log(Math.floor(3.987)); //向下取整(返回小于等于参数的最大整数),也就是直接去掉小数部分
console.log(Math.ceil(3.987)); //向上取整,也就是取整数部分 + 1
console.log(Math.pow(2,3)); //幂运算 第一个参数是底数,第二个参数是指数 即2的3次方 = 8
console.log(Math.trunc(3.987)); //取整
console.log(Math.random()); //返回0-1之间的随机数,每次调用的结果都不一样
console.log(Math.random());
console.log(Math.random());
3.Date
Date
对象用来获取当前时间或者是设定一个新的时间。
var date = new Date();
console.log(date);
console.log(date.getFullYear()); //获取年份
console.log(date.getMonth()); //获取月份(这样写的话获取到的月份比实际小1,因为是从0开始的)
console.log(date.getMonth() + 1); //获取当前真正的月份
console.log(date.getDay()); //获取 周几
console.log(date.getDate()); //获取 几号
console.log(date.getHours()); //获取 小时
console.log(date.getMinutes()); //获取 分钟
console.log(date.getSeconds()); //获取 秒钟
console.log(date.getTime()); //获取当前时间戳,从1970年1月1日0点0分过去了多少毫秒 1594092253037
console.log(date.toLocaleDateString()); //转换为本地时间格式 2020/7/7
//设置时间,使用对应函数的set方法即可
date.setFullYear(2022);
console.log(date.toLocaleDateString()); //输出 2022/7/7
date.setTime(1894092253037); //也可以直接设置时间戳
console.log(date.toLocaleDateString()); //输出 2030/1/8
4.JSON对象介绍
JSON
是一种特殊格式的字符串,用于前后端的数据交互。
var postJSON = `{
"id":1,
"title":"这是标题",
"comment":[
{
"userid":1,
"comment":"评论1"
},
{
"userid":2,
"comment":"评论2"
}
],
"published":true,
"author":null
}`;
console.log(JSON.parse(postJSON)); //将JSON字符串转换为JS中的对象
var person = {
id:1,
name:"小明",
skills:["React","Vue"]
};
console.log(JSON.stringify(person,null,2)); //将对象转换为JSON字符串,2表示缩进
var comments = `[
{
"userid":1,
"comment":"评论1"
},
{
"userid":2,
"comment":"评论2"
}
]`
console.log(JSON.parse(comments)); //也可以直接转换为数组,同理也可以将数组转为JSON字符串
5.Set
Set
是一种没有重复元素的集合。我们可以对该集合进行添加,删除,清空,遍历等操作。
var set = new Set(); //申明一个set
set.add(1); //添加元素使用add()方法
set.add(3);
set.add(5);
console.log(set);
set.add(3); //再重复添加元素3是无法添加进去的
console.log(set);
console.log(set.has(3)); //判断集合中是否含有元素3,如果有返回true,如果没有返回false
set.forEach(value => { //forEach 遍历set集合
console.log(value);
})
set.delete(3) //删除元素使用delete()方法
console.log(set);
set.clear(); //清空集合
console.log(set);
//对象类型也能作为set的元素进行添加
var obj1 = {id: 1}; //这两个对象虽然内容一样但是内存地址不同不属于重复元素,因此都能添加进去
var obj2 = {id: 1};
set.add(obj1);
set.add(obj2);
console.log(set);
set.add(obj1); //这里想要再次添加obj1是不会成功的,因为前面已经添加过了
console.log(set);
6.Map
Map
是一种键值对的数据结构,与对象类似,但是Map
的键key
和值value
可以是任意的数据类型。
var map = new Map(); //申明一个map
var objkey = {key:2} ;
map.set(1,"值1");
map.set(objkey,"值2");
map.set("key 3","值3");
console.log(map);
console.log(map.get(1)); //获取元素用map.get(),参数为键,获取到的就是值
console.log(map.get(objkey)); //这里通过中间变量来访问元素,如果没有另取变量那么map.get({key:2})是访问不到的
console.log(map.get("key 3"));
console.log(map.has("key 3")); //判断某个元素在map中是否存在,如果存在返回true,如果不存在返回false
map.forEach((value,key) => { //遍历map元素
console.log(key,value);
});
//用迭代器遍历
var iterator = map.entries(); //返回一个新的包含 [key, value] 对的 Iterator 对象,返回的迭代器的迭代顺序与 Map 对象的插入顺序相同。
console.log(iterator.next()); //输出信息中的 done: false 表示迭代器还没全部迭代完成
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next()); //到这里 迭代器已经全部迭代完成 done: true
for(let [key,value] of map) {
console.log(key,value);
}
map.delete(1); //删除map中的某个元素
console.log(map);