🍖JS其他常用对象(Date、Math、JSON、RegExp、global、windows、自定义对象)

🍔Date 日期对象

一.创建日期对象

创建日期对象只有构造函数一种方式,使用new关键字

// 不指定参数,默认当前时间
var now = new Date();
console.log(now);
// Thu Mar 11 2021 21:17:51 GMT+0800 (中国标准时间)

var xmas = new Date('December 25,1995 13:30:00');
console.log(xmas); 
// Mon Dec 25 1995 13:30:00 GMT+0800 (中国标准时间)

var xmas = new Date(1995,11,25);
console.log(xmas); 
// Mon Dec 25 1995 00:00:00 GMT+0800 (中国标准时间)

var xmas = new Date(1995,11,25,14,30,0);
console.log(xmas);
// Mon Dec 25 1995 14:30:00 GMT+0800 (中国标准时间)

二.常用方法

方法 含义
getDate() 根据本地时间返回指定日期对象的月份中的第几天(1-31)
getMonth() 根据本地时间返回指定日期对象的月份(0-11)
getFullYear() 根据本地时间返回指定日期对象的年份(四位数年份时返回四位数字)
getDay() 根据本地时间返回指定日期对象的星期中的第几天(0-6)
getHours() 根据本地时间返回指定日期对象的小时(0-23)
getMinutes() 根据本地时间返回指定日期对象的分钟(0-59)
getSeconds() 根据本地时间返回指定日期对象的秒数(0-59)
getMilliseconds() 根据本地时间返回指定日期对象的获取毫秒
getTime() 返回累计毫秒数(从1970/1/1午夜)

更多详细方法 : https://www.w3school.com.cn/jsref/jsref_obj_date.asp

三.常用方法示例

var now = new Date();

//常用方法
console.log(now.getDate());    //获取月份的第几天(1·31)
console.log(now.getMonth());   //获取月份(0`11)+1
console.log(now.getFullYear());//获取年份
console.log(now.getDay());     //获取一星期中的第几天(0`6)
console.log(now.getHours());   //获取小时(0·23)
console.log(now.getMinutes()); //获取分钟(0·59)
console.log(now.getSeconds()); //获取秒(0·59)

//日期格式化方法
console.log(now.toDateString());//星期几 月 日 年
console.log(now.toTimeString());//时 分 秒 时区

//常用
console.log(now.toLocaleDateString());//年 月 日
console.log(now.toLocaleTimeString());//时 分 秒
console.log(now.toLocaleString());    //年 月 日 时 分 秒

// UTC时间
console.log(now.toUTCString());

四.数字时钟格式

  • 封装了一个函数, 直接可使用
//下次使用直接调用这个函数就行
function nowNumTime(){
	var now = new Date();
	var hour = now.getHours();//(0~23)
	var minute = now.getMinutes();
	var second = now.getSeconds();
	//用三元表达式:(18>12 ? hour-12 : hour)
	var temp = '' + (hour > 12 ? hour - 12 : hour);
	if(hour === 0){
		hour = '12';
	}
	temp = temp+(minute < 10? ':0' : ':') + minute;
	temp = temp+(second < 10? ':0' : ':') + second;
	temp = temp+(hour >= 12? ' P.M.' : ' A.M');
	return temp;
}
var nowTime = nowNumTime();
console.log(nowTime);  // 9:22:26 P.M.

🍔Math 数学对象

一.Math对象常用方法

含义
Math.floor() 向下取整,如5.1取整为5
Math.ceil() 向上取整,如5.1取整为6
Math.max(a,b) 求a和b中的最大值
Math.min(a,b) 求a和b中的最小值
Math.random() 随机数,默认0-1之间的随机数,若想求min~max之间的数,公式为:min+Math.random()*(max-min)
abs(x) 返回数的绝对值
exp(x) 返回 e 的指数
log(x) 返回数的自然对数(底为e)
pow(x,y) 返回 x 的 y 次幂
round(x) 把数四舍五入为最接近的整数
sin(x) 返回数的正弦
sqrt(x) 返回数的平方根
tan(x) 返回角的正切

二.常用方法示例

// 方法 .min() .max()
var max = Math.max(3,4,58,69);
var min = Math.min(3,4,58,69);
console.log(max);
console.log(min);

// 数组
var arr = [1,2,3,14,58,69];

var max2 = Math.max.apply(null,arr);
var min2 = Math.min.apply(null,arr);
//var max = Math.max(arr[0],arr[1],arr[2],arr[3]....);
console.log(max2);
console.log(min2);


// .ceil() .floor() .round()
var num = 12.55;
console.log(Math.ceil(num));//天花板函数 向上取整
console.log(Math.floor(num));//地板函数 向下取整
console.log(Math.round(num));//标准四舍五入

// 随机数 .random()  0<=random<1
console.log(Math.random());

🍔JSON 对象

JSON格式的字符串转成对象

var str1='{"name":"shawn","age":23}';

var obj1=JSON.parse(str1);
console.log(obj1.name);    // "shawn"
console.log(obj1["name"]); // "shawn"

将对象转成JSON格式

var obj = {"name":"shawn","age":23};
var str = JSON.stringify(obj);

🍔RegExp 正则对象

常用匹配模式

  • g (全局匹配,找到所有匹配,而不是在第一个匹配后停止)

  • i (忽略大小写)

注意

  • 正则放到引号内
  • { } 内的逗号后面不要加空格
// 创建正则对象方式 1 
var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,11}$"); 
// 匹配用户名只能是英文字母、数字和_,并且首字母必须是英文字母, 长度最短不能少于6位, 最长不能超过12位。
reg1.test("shawn_1111")  // true

// 创建正则对象的方式 2
var reg2 = /^[a-zA-Z][a-zA-Z0-9_]{5, 11}$/;  // 不要加引号
reg2.test("shawn_11111") // true

// String对象与正则结合的4个方法
var s1 = "hello world";
s1.match(/l/g)      // 符合正则的内容["l", "l", "l"]
s1.search(/h/g)     // 符合正则的内容的索引0
s1.split(/ /)       // ["hello", "world"]
s1.replace(/l/ g,'L')  // "heLLo worLd"

// 匹配模式g与i
var s2 = "name:shawn age:18"
s2.replace(/e/, "赢") // "nam赢:shawn age:18"
s2.replace(/e/g, "赢") // "nam赢:shawn ag赢:18"
s2.replace(/e/gi, "赢") // "nam赢:赢hawn ag赢:18"

注意 :

1、如果regExpObject带有全局标志g,test()函数不是从字符串的开头开始查找,而是从属性regExpObject.lastIndex所指定的索引处开始查找。
2、该属性值默认为0,所以第一次仍然是从字符串的开头查找。
3、当找到一个匹配时,test()函数会将regExpObject.lastIndex的值改为字符串中本次匹配内容的最后一个字符的下一个索引位置。
4、当再次执行test()函数时,将会从该索引位置处开始查找,从而找到下一个匹配。
5、因此,当我们使用test()函数执行了一次匹配之后,如果想要重新使用test()函数从头开始查找,则需要手动将regExpObject.lastIndex的值重置为 0。
6、如果test()函数再也找不到可以匹配的文本时,该函数会自动把regExpObject.lastIndex属性重置为 0。

🍔global 对象

URL

var url = 'https://www.luffycity.com/study/chapter/39863/2'

编码

encodeURIComponent()编码 (使用最多的方法)

encodeURI(url) (只能编码空格)

console.log(encodeURI(url));  // 只能编码空格
console.log(encodeURIComponent(url));

解码

decondeURIComponent()

console.log(decodeURI(encodeURI(url)));
console.log(decodeURIComponent(encodeURIComponent(url)));

🍔windows 对象

在ECMAScrip中顶层对象就是window对象

// 定义变量时
var a=3;
console.log(window.a);  // 3

// 定义函数时
function hello(){
	alert(window.a);  // 3
}
window.hello();

🍔自定义对象

引入

JavaScript的对象(Object)本质上是键值对的集合(Hash结构),但是只能用字符串作为键。

创建自定义对象

  • 你可以看成是我们python中的字典 但是js中的自定义对象要比python里面的字典操作起来更加的方便
// 第一种创建自定义对象的方式
let d1 = {'name': 'shawn', 'age': 18};
console.log(typeof d1);   // object

console.log(d1['name']);  // shawn(获取对象方式一)
console.log(d1.name);    // shawn(获取对象方式二)

for (let i in d1) {
    console.log(i, d1[i]);  // 支持for循环 暴露给外界可以直接获取的也是键
}

// 第二种创建自定义对象的方式: 需要使用关键字 new
let d2 = new Object();   // 创建的是空对象{}
d2.name = 'shawn';      // 对象修改(增)方式一
d2['age'] = 18;        // 对象修改(增)方式二
console.log(d2);      // {name: "shawn", age: 18}

总结

定义对象的2种方式: {}, new Object()
访问对象的2种方式: 对象.属性名, 对象['属性名']
修改对象的2种方式: 对象.属性名=属性值, 对象['属性名']=属性值

posted @ 2021-03-11 22:48  给你骨质唱疏松  阅读(120)  评论(0编辑  收藏  举报