javascript 学习要点

函数

1、每个函数对象在创建时随带有一个prototype属性,它的值是一个拥有constructor属性且值为该函数的对象;这和隐藏链接到Function.prototype完全不同。到底有什么不同呢,且看下次分解

2、在js中函数有四种调用模式:方法调用模式,函数调用模式,构造器调用模式和apply调用模式;
      如果在一个函数前面带上new来调用,那么将创建一个隐藏连接到该函数的prototype成员的新对象,同时this将会绑定到那个新对象上;
      通过new前缀的方式来调用一个函数,且该函数的返回值不是一个对象,则返回this(该新对象);

正则表达式

1、捕获型

括号匹配:(x),匹配x并记住这个匹配
比如在模式/(for) (bar) \1 \2/中,(for)和(bar)匹配字符串"for bar for bar"中的第一个和第二个单词,\1和\2匹配最后两个单词;
      
var reg = /(foo) (bar) \1 \2/;
var result = reg.exec("foo bar foo bar");
result is
["foo bar foo bar", "foo", "bar"]
var reg = /(foo) (bar)/;
var result = reg.exec("foo bar foo bar");
undefined
result
["foo bar", "foo", "bar"]



2、非捕获型

(?:x):匹配x但不记住该匹配
var reg = /(?:foo) (?:bar)/;
var result = reg.exec("foo bar foo bar");
undefined
result
["foo bar"]

可以看到,结果少了两项:match1和match2

3、向前正向匹配

x(?=y):表示x后面紧跟着y,但y不在匹配结果中;匹配后,文本将倒回到它开始的地方,实际上并不匹配任何东西
var reg = /foo(?=bar)/;
var result = reg.exec("foobar foobar");
undefined
result
["foo"]

4、向前负向匹配

x(?!y):x后面紧跟着的不是y;类似于向前正向匹配,但只有当它匹配失败时它才进行匹配;
var result = /\d+(?!\.)/.exec("3.141")
undefined
result
["141"]

可以看到y不在匹配结果中

5、x|y:匹配x或y

var result = /green|red/.exec('red apple')
undefined
result
["red"]



      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值