一、正则对象:RegExp(Regular Expression)
1.创建正则对象:
1.var reg = /no/g;
创建一个固定不变的正则表达式:
2.var reg = new RegExp();
创建一个动态的正则表达式:
3.RegExp()对象属性:
1)lastIndex():用于规定下次匹配的起始位置
注意:该属性只有设置标志g(全局)才能使用。
用法:上次匹配的结果是由方法Reg.exec()和Reg.test()找到的,他们都以lastIndex属性所指的位置
作为下次检索的起始位置。这样,就可以通过反复调用者两个方法来遍历一个字符串中所有匹配正
则表达式的文本。
注意:该属性是可读可写的。只要目标字符串的下一次检索开始,就可以对它进行设置。当方法exec()
和test()再也找不到可以匹配的文本时,它们会自动把lastIndex属性设置为0。
2)RexExp对象的方法
2.test():检索字符串中制定的值。返回值为boolean
3.exec():返回一个包含指定值和其位置的数组。
3)正则表达式中存在贪婪模式和懒惰模式:
贪婪模式:正则表达式默认匹配最长的符合条件的子字符串。
例:.*和.+默认匹配最长的。
懒惰模式:仅匹配最短的符合条件的子字符串。
在有些场景我们需要将默认的贪婪模式改为懒惰模式有两种方法:
第一种: .*和.+ ——>写成.*?和.+?
第二种:[^xxx]*
二、Math对象:
1)概念:Math对象用于执行数学任务。Math对象并不像Date和String那样是对象的类,因此没有
构造函数Math()(就是不能new)。想Math.pow()这样的函数只有函数,不是某个对象的方法。无需创建它,通过Math
作为对象使用就可以调用其所有属性和方法。
2)较为常用的方法:
Math.ceil():向上取整
Math.floor():向下取整
Math.min(a,b):返回a和b中最小数。可以只有一个参数
Math.max(a,b):返回a和b中最大数。可以只有一个参数
Math.random():返回一个0-1之间的随机数
Math.round(num):四色五入num的整数
Math.pow(num,n):返回num的n次幂
Math.sqrt(num):返回num的平方根
例题:
1.如何自定义四舍五入的方法。要求能根据任意小数位四舍五入(仅用Math对象方法)
不用Math对象方法一样能做到的API函数:toFixed(n)四舍五入之后(返回值为string),再用Number()将转换为number类型。
2.随机十道题,接受用户答题,答对一题得十分,反之扣十分。输出最终的分。
三、Date对象(属于js内置构造函数)
1)属性:
constructor属性返回创建此对象的Date函数的引用。
说的通熟一点就是Date构造函数实例化对象的这个属性指向Date对象。
prototype属性使您有能力向对象添加属性和方法。
语法:object.prototype.name = value;给对象添加一个name属性,值为value
2)方法:
例题:合约到期案例
四、Error对象
1)概念:
error指程序中非正常运行状态,中断程序运行。并且会返回一个Error对象,其中会指明你的
错误类型和信息。
ECMAScript定义了六种类型的错误。除此之外我们还可以使用Error构造方法创建自定义Error对象,并使用
throw语句抛出该对象。
2)六种错误:
ReferenceError:找不到对象时
TypeError:错误的使用了类型或对象的方法时
RangeError:使用内置对象的方法时,参数超出范围
SyntaxError:语法错误
EvalError:错误的使用了Eval
URIError:URI错误
3)对于错误的处理:很多情况下,我们不希望程序发生错误就中断程序,所以我们需要对错误进行处理
try 语句使您能够测试代码块中的错误。(可能出现错误的代码)
catch 语句允许您处理错误。(错误发生之后执行)
throw 语句允许您创建自定义错误。(自定义错误将其抛出)
finally 使您能够执行代码,在 try 和 catch 之后,无论结果如何。(一般用于释放内存)
要点:
1.使用try包裹的代码运行不出错情况下的效率不会比正常代码低
2.在try中,尽量少的包含可能出错的代码
3.无法提前预知错误类型的错误,必须要用try catch捕获
4.finally可以省略
4)抛出自定义错误:
如果函数的定义者需要告知调用者使用过程中的错误,就可以抛出异常
语法:throw new Error("提示文字");
练习题: