js基础知识点补充(3)

正则创建
RegExp对象中封装了正表达式,并且提供使用正则的API查找和验证
利用正则查找关键词的四种情况 利用正则执行验证
var reg /正则/ig; 正则是固定不变的

可以穿件一个固定不变的表达式,穿件的是一个对象,可以直接量
var str =“good good study,day day up”;
var reg = /good/g;
//如果var str =“go/od good study,day day up”;
var reg =/go/od/g;
var arr=str.match(reg);
console.log(arr);
//console.log(reg == reg2);此时是错误的,因为两个引用类型一样,但地址不可能一样

正则查找匹配(吃葡萄案例)

Document

伟1
if(result[a[i]]){
result[a[i]]++;
}else{
result[a[i]] = 1;
}
}
console.log(result);

	var max=0,char="";
	for(var key in result){
		if(result[key]>max){
			// 把当前的值赋予max
			max = result[key];
			// 将出现次数最多的元素的值(元素下标),记录到char
			char = key;
		}
	}
	console.log("出现次数最多的字符是"+char+",出现次数是"+max);
}

max();


var html = '<link rel='style' href>'href ="http://www.baidu.com"
reg =/<a\s+[^>]*?href="([^"]*?)"/gi;
while(reg.exec(html)!=null){
	console.log(RegExp.$1);
}
</script>

正则的贪婪及懒惰
贪婪模式:正则表达式默认匹配最长的复合正则条件的子字符串// .* .+
懒惰模式:只匹配最短的复合条件的子字符串
贪婪模式改成兰多模式有两种方法
1: .* .+改为 .? .+?
2:[^xx]

案例
var html =’

  • <a href =

“http://www.baidu.com”>’;
//正则的分组视为精准的获取我想要匹配的内容
reg = /<a\s+[>]*?href="(["]*?)"/gi;
//如果匹配出来的内容只关心文字内容,不关心完整的内容
while(reg.exec(html)!=null){
//RegExp.$n可获取本次找点钱奥的第n个分组的字内容
console.log(RegExp.$1)
}

时间对象
Date对象的原理: 对象保存为一个毫秒,起始时间为1970年1月1日0点至今的毫秒数
自动获取客户端系统的时间
var now = new Date();
console.log(now);
穿件自定义的时间
var date= new Date(“yyyy/MM/dd hh:mm:ss” );
console.log(date);
复制一个日期对象
vardate1 =new Date(“2019/08/03 10:25:30”);
var date2 =nwe Date(date1);
console.log(date1,date2);
用毫秒数穿件日期对象
var date = new Date(ms);
console.log(now.getTime());
两个日期对象详见,得到毫秒数
console.log(now-date);
每个单位都有一对get/set 方法
FullYear 年份;Moth 月份 0-11;Date 日期 1-31;
Day 星期 0-6没有set方法;hours 小时 0-24;
Minutes 分钟 0-59;
Seconds 秒 0-59;Milliseconds 毫秒;

重载
相同函数名,不同参数列表的多个函数
在调用时,可以根据传入的参数的不同,自动选择对应的函数调用。 一个函数名,执行多数个操作
一个任务,根据不同的参数,执行不同的操作流程
案例
function pay( ){

		console.log(typeof(arguments));// arguments[     ]
		if(arguments.length == 0)// 如果参数个数为0
			console.log('扫码支付')
		else if(arguments.length == 1)// 如果参数个数为1
			console.log("现金支付" + arguments[0]);
		else if(arguments.length == 2)
			console.log('刷卡支付,卡号:'+arguments[0]);
	}
	pay();//扫码支付
	pay(100);//现金支付
	pay("10086","123456");//刷卡支付

封装
Function 一切函数都是对象
封装了可重复使用的代码块对象,函数名只不过是一个引用函数对象的变量

// 声明:function 函数名(参数列表){函数体;return 返回值;}
function cmp(a,b){return a-b;}
console.log(fun1);//函数的提前声明
function fun1(){
console.log(num);//num被提前声明了
var num = 10;
num++;
}
// 2、创建02 直接量!不希望函数体被提前声明时
// var 函数名 = function(参数列表){函数体;return 返回值;}
// var fun;
// console.log(fun());//报错 变量的提前声明
console.log(fun);//undefined 证明了函数名就是一个变量
var fun = function(){
console.log(1);
}
fun();

闭包
全局变量:可以反复使用,随处可用 – 全局污染 局部变量:不可以重用 ,只在函数中使用
闭包:即重用变量,又保护变量不被污染的一种机制
取号
function bibao(){
//活动对象,函数作用域
var i=1;
//外层函数将内层函数返回
return function getNum(){
console.log(i++);
}
}
//使用者调用外层函数,获得内存函数的对象
var getNum = bibao();
//将对象释放
getNum();
getNum();
闭包也有缺点,它比一般的函数占用更多的内存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值