JS学习笔记(六)
学习内置对象的Date对象,Math对象和包装类
文章目录
一、Date对象
1.新建Date对象
- 不带参数新建Date对象 当前时刻的时间
var d1 = new Date();
console.log(d1);
输出:
2021-07-19T04:40:29.878Z//输出当前时刻的时间
- 带参数新建Date对象 自定义时间
- 格式 “ 月份/日/年份 小时:分:秒”
var d1 = new Date("12/03/2020 8:10:20");
console.log(d1);
输出:
2020-12-03T00:10:20.000Z //自定义时间
2.Date对象的一些方法
- getDate() 获取当前时间日期的日
- getDay() 获取当前时间日期的星期n 0-6 0是周日
- getMonth() 获取当前时间日期的月份 0-11 0是一月份
- getFullYear() 获取当前时间日期的年份
- getTime() 获取当前日期对象的时间戳
时间戳是指从格林威治标准时间的1970年1月1日:0时0分0秒到当前日期所花费的毫秒数(1s=1000毫秒)。
计算机底层保存时间使用的都是时间戳。 - Date.now() 获取当前时间的时间戳
var d = new Date("1/1/1970 8:0:0");//东八区8h时差和格林威治
var d2 = new Date();
console.log(d.getTime());
console.log(d2.getTime());
console.log(Date.now());
输出:
0
1626670862199
1626670862206
二、Math对象
- Math和其他对象不同,是一个对象,不是一个构造函数(如Date),它属于一个工具类,不用创建对象,里面封装了数学运算相关的属性和方法。
1.Math对象属性
- Math.PI Π
- Math.E e
2.Math对象方法
常用的:
- Math.abs() 计算一个数字的绝对值
- Math.ceil() 上舍入即向上取整
- Math.floor() 向下取整
- Math.round() 四舍五入取整
- Math.random() 可以生成一个0-1之间的随机数
- Math.max() 取最大数
- Math.min() 取最小数
- Math.pow(x,y) 返回x的y次幂
三、包装类
1.包装类
- 基本数据类型 String Number Boolean Null Undefined
- 引用数据类型 Object
在JS中提供三个包装类,可将基本数据类型转换为对象。
三个包装类是String() Number() Boolean(),都是构造函数。
var num = new Number(3);
console.log(typeof num);
输出:
object
1.String()可以将基本数据类型字符串转换为String对象
2.Number()可以将基本数据类型字符串转换为Number对象
3.Boolean()可以将基本数据类型字符串转换为Boolean对象
在实际开发中,不会用到基本数据类型的对象,如果使用基本数据类型的对象,在做比较的时候,可能会带来一些不可预料的结果。
var boo = new Boolean(false);
if(boo)
console.log("true");
else
console.log("false");//预期的输出?
输出
true //boo对象转换布尔值都是true。
2.包装类实际应用
个人理解:常常作为一个浏览器处理的中间量。
在对一些基本数据类型的值去调用方法和属性时,浏览器会临时使用包装类将基本数据类型转换为对象,然后再调用对象的属性和方法,在调用完以后,将其再转换回基本数据类型。
- 方法和属性只能加给对象,不能添加给基本数据类型。
var s = 123;
console.log(s);
console.log(typeof s); //number
//将s使用包装类转换为s对象,调用toString方法。
s = s.toString();
//toString方法调用完后,s对象就会销毁,s被转换是string基本数据类型
console.log(s);
console.log(typeof s); //string
//给String类型的s加属性,使用包装类转换为s对象,添加属性。
s.hello = "nnn";
//属性添加完成后,s对象销毁。
//读s的hello属性,将string类型的s转换为对象,读s对象的hello属性,无该属性。
console.log(s.hello);//undefined
输出:
123
number
123
string
undefined
3. 包装类 String对象
字符串的相关操作
在底层,字符串是以字符数组的形式保存的。
var str = "hello";
属性
- str.length 获取字符串长度
方法
大多都不会对原字符串产生影响。
- str.charAt() 返回字符串指定位置的字符 =str[n]
- str.charCodeAt() 返回字符串指定位置的字符的Unicode编码
- String.formCharCode() 可以根据字符编码去获取字符
console.log(String.fromCharCode(89)); //Y
-
srt.concat() 连接多个字符串,作用和加号相等
-
srt.indexof(“h”,3) 检索字符串中是否含有指定内容。
如果有,返回其第一次出现的索引,没有返回-1;
可以指定第二个参数,指定开始查找的位置。 -
str.lastIndexof(“h”,3) 从后向前检索字符串中是否含有指定内容。和indexOf使用类似。
-
str.slice(开始位置索引,结束位置索引) 从字符串中截取指定内容。
包括开始位置,不包括结束位置。 -
str.subString(开始位置索引,结束位置索引) 截取字符串,和slice类似,但是不能接受负值,调整参数位置。
包括开始位置,不包括结束位置。 -
str.subStr(开始位置索引,结束位置索引) 截取字符串,有的不支持。
-
str.toLowerCase() 把字符串转换为小写
-
str.toUpperCase() 把字符串转换为大写
-
str.split(“,”) 可以将字符串拆分为一个数组。
需要一个字符串作为参数,该参数去拆分数组。
var str = "hello,biu,mama";
var res = str.split(",");
console.log(Array.isArray(res));
输出:
true