<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>this</title> <script> //this:指的是调用函数的对象,但是对于自调用函数来数,它其中的this指向window window.onload = function(){ //函数中引用 var x = 1; function f(){ this.x=2; }; f();//执行该函数时结果是2,不执行该函数时结果是1. console.log(x); //函数绑定对象 (对象中引用,this指向该对象) function f1(){ console.log(this); } var o = {}; o.name = 'sonia'; o.action = f1; f1();//直接执行此函数时this指向Windows。 o.action();//执行此函数时,this指向对象 o; //构造函数中引用 function F(name,age){ this.name = name; this.age = age; }; var ff =new F('sonia',20);
//call apply var name = '123'; function f1(){ return this.name; } var o = {}; o.name = 'sonia'; o.action = f1; console.log(o.action.apply());//结果是‘123’,因为apply的参数如果不填写的话,默认是一个指向window的this。 console.log(o.action.apply(o));//结果是‘sonia’
//自调用函数 var number =1; var f={ number:2, showNumber:function(){ this.number = 3; (function(){ console.log(this.number); })();//函数自执行,this指向window console.log(this.number); } }; f.showNumber();//结果是 1 3
//正则表达式 //校验 var value = '123'; var filter = /^go?gle$/; // var filter =new RegExp('^go?gle$');另一种写法 if(filter.test(value)){ console.log('ok'); }; /* “\B与\b” \b:匹配一个单词的边界 \B:匹配一个单词的非边界 hi thi this his \Bhi\B:只能匹配到单词‘this’,因为this中的‘hi’前后都有字符 \bhi\b:只能匹配到单词‘hi’,因为hi中的‘hi’前后都没有字符 “\D与\d” "\d":匹配一个数字字符, "\D":匹配一个非数字字符 12erty3345 \d:能匹配出所有的数字 \D:能匹配出所有的字母 “\w”和“\W” “\w”:匹配字母/数字/下划线 “\W”:匹配非字母/数字/下划线 123abc_@#$% \w: 匹配所有的字母/数字/下划线 \W:匹配所有的非字母/数字/下划线 “^”和“$” “^”代表字符串的开头 “$”代表字符串的结束 ^hi hi$ ^hi$:只能与hi相匹配。 “[ ]”:方括号“[ ]”匹配指定一堆字符中的一个。 ^[a-z]at$:只能匹配出三个字符,第一个字符是a-z(必须是小写)中的一个 ^[A-Za-z]at$:只能匹配出三个字符,第一个字符是a-z(大小写都可以)中的一个 ^[aeiou]at$:只能匹配出三个字符,第一个字符是aeiou中的一个 “[^]”:方括号“[^]”不匹配这个集合中任何一个字符。 ^[^xyz]at$:只能匹配出三个字符,第一个字符是不能是xyz中的一个 重复符号“+”:表示前一模式可以被重复1次或n次。 ^go+gle$:匹配gogle,google,gooogle,+号前一个字符重复至少一次。 ^g[aeiou]+gle$:aeiou中的某一个字符重复一次以上都满足。
重复符号“*”:“*”表示前一模式可以被重复0次或n次。 ^go*gle$:和+用法一致,只是包含了0次。(ggle、google、gooooooooooogle。。。。。。) 符号“?”:“?”表示前一模式可以被匹配0次或1次。 ^go?gle$:只能匹配:ggle、gogle。 重复符号“{x,y}” “{x}”表示前一模式模式可以被重复x次。 ^go{2}gle$:o重复两次。 “{x,y}”表示前一模式模式可以被重复x到y次。 ^go{2,4}gle$:o重复2到4次 “{x,}”表示前一字符模式可以被重复至少x次。 ^go{2,}gle$:o重复2次级2次以上。 子表达式“( )”:“( )”可以指定一堆字符来匹配一个模式。分组 ^(very )*large$:可以匹配:large、very large、very very large、very very very very large。。。。。 分支“|”:分支“|”用来指定几个规则只要匹配一个规则即成匹配。 ^com$|^org$|^net$:能匹配的字符串(仅3个):com、org、net ^abc.(com|org|net)$:能匹配的字符串(仅3个):abc.com、abc.org、abc.net 转义符号“\”:如果要匹配“[”“^”“+”“)”等等有特殊含义的字符,可以用“\”做转义。 ^1\*\(2\+3\)=6$:能匹配的字符串(仅1个):1*(2+3)=6 */ } </script> </head> <body>
</body> </html> |
|