目录
1.argunments
2.Date
3.Match
4.包装类
5.字符中的方法
6.正则表达式
1.argunments
在调用函数时浏览器每次都会传递两个隐含的参数:函数的上下文对象this和待封装的对象arguments。
arguments:
一个类数组对象(不是数组),它可以通过索引来操作数据,也可以获取长度。
在调用函数时,我们传递的参数都会在arguments中保存。
arguments.length可以获取实参的长度。
即使不定义形参,也可以通过arguments来使用实参,只不过比较麻烦。arguments[0]表示第一个实参,arguments[1]表示第二个实参。
有一个属性:callee。这个属性对应一个函数对象,即当前正在指向的函数对象。
2.Date
在JS对象中使用Date对象表示一个时间
如果直接使用构造函数创建一个Date对象,则会封装为当前代码:var a=new Date();
创造一个指定的时间对象:在构造函数中传递一个表示时间的字符串作为参数,日期的格式:月份/日/年 时:分:秒
getDate( )获取当前日期对象是几日
getDay()获取当前日期对象周几,会返回一个0-6的值0 :周日,1:周一
getMonth()获取当前时间对象的月份,会返回一个0-11的值,0:1月,1:2月,11:12月
getFullYear()获取当前日期对象的时间戳(时间戳指从格林危治标准时间的1970年1月1日0时0分0秒到当前日期所花费的毫秒数),计算机底层保持时间时使用的是时间戳。
获取当前的时间戳:time=Date.now();
3.Match
Match不是一个构造函数,它属于一个工具类不用创建对象,显示封装了数学运算的相关属性和方法。
abs()即使一个数的绝对值
Math.ceil()可对一个数向上取整,小数位只要有值就自动进1
Math.floor()可对一个数向下取整,小数部分会被舍掉
Math.round()对一个数四舍五入取整
Math.random()可生成0-1直接的随机数,不会生成0和1。生成0-x之间的随机数:Math.round(Math.random()*x)。生成一个x-y之间的随机数:Math.round(Math.random()*(y-x)+x)
max()可获取多个数间的最大值
min()可获取多个数据间的最小值
Math.pow(x,y)返回x的y次幂
Math.sqrt()对一个数开方
4.包装类
JS为我们提供了三个包装类,通过这三个包装类可以将基本数据类型转换为对象。
String():可将基本数据类型字符串转换为String对象
Number():可将基本数据类型字符串转换为Number对象
Boolean():将基本数据类型字符串转换为Boolean对象
当我们对一些基本数据类型的值调用属性和方法时,浏览器会临时使用包装类将其转换为对象,然后再调用对象的属性和方法,调用完后再将其转换为基本数据类型
5.字符中的方法
charAt():可以返回字符串中指定位置的字符,根据索引获取指定的字符
charCodeAt():获取指定位置字符的字符编码(Unicode)
concat()可以连接两个或多个字符串,作用和+、-一样
indexOf():该方法可以检索一个字符串中是否有指定内容
如果字符串中含有指定内容,则会返回其第一次出现的索引
如果没有找到指定内容,则返回-1
可以指定第二个参数,指定开始查找的位置
lastIndexOf():该方法用法同indexOf()一样,不同的是indexOf从前往后找,lastIndexOf从后往前找。
slice()用法同数组中的slice(),不过是数组变为字符串
substring()与slice类似,不同的是这个方法不能接受负值作为参数,如果传递了一个负值,则默认使用0,而且它还自动调整位置,如果第二个参数小于第一个,则自动交换。
substr()来采取字符串。
参数:截取开始位置的索引
截取的长度
split():把字符串拆分为一个数组
参数:需要一个字符串作为参数,将会根据该字符串拆分数组
如果传递一个空字符串作参数,则会将每一个字符拆分为数组中的每一个元素
toUpperCase()将每一个字符串转化为大写并返回
toLowerCase()将一个字符串转化为小写再返回
6.正则表达式
正则表达式用于定义一些字符串的规则,计算机可以根据正则表达式检查一个字符串是否符合规则。
创建正则表达式的对象语法:var 变量=new RegExp(“正则表达式“,“匹配表达式“);
使用typeof检查正则对象会返回object
正则表达式的方法:test():使用这个方法可以检查一个字符串中是否符合正则表达式的规则,如果符合则返回true,否则返回false
在构造函数中可传递一个匹配模式作为第二个参数,可以是i 忽略大小写或g 全局匹配模式
使用字面量创建表达式,语法:var 变量=/正则表达式/匹配模式
使用字面量的方式创建更加简单,使用构造函数创建函数更加灵活。
检查一个字符串中是否有a或b: var reg=/a|b/;(或var reg=/[ab]/)
[a-z]:任意小写字母,[A-Z]:任意大写字母,[A-z]:任意字母
[^]除了
例:var reg=/[^ab]/:除了a、b
var reg=/[^0-9]除了数字
方法:
split()方法中可传递一个正则表达式作为参数,这样方法就会根据正则表达式拆分字符串。(这个方法即使不写g也会全局匹配)
search():可以搜索字符串中是否有指定内容
如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到则返回-1
(即使设置全局匹配也没用)
它可以接受一个正则表达式作为参数,然后根据正则表达式来检索字符串
match()可以根据正则表达式从一个字符串中将符合条件的内容提取出来
默认情况下match只会找到第一个符合要求的内容就停止检索
replace():可将字符串中指定内容。
参数:替换的内容,可接受一个正则表达式作为参数。
新的内容
默认只会替换第一个
量词:通过两次可以设置一个内容出现的次数
量词对它前边的一个内容起作用
{n}正好出现n次
{m,n}出现m到n次
{m,}m次以上
+ 至少一个,相当于{1,}
* 0个或多个,相当于{0,}
? 0个或1个,相当于{0,1}
检查一个字符串是否以a开头
^表示开头
$表示结尾
/^a$/只能是一个a(如果正则表达式中同时使用^、$则要求字符串必须完全符合正则表达式
检查一个字符串是否含有 .,.表示任意字符
在正则表达式中使用\作为转义字符,\.表示.,\\表示\
注意:使用构造函数时,由于它的参数是一个字符串,而\是字符串中转义字符,如果要使用\则需使用\\代替
\w:任意字母、数字、_([A-z0-9_])
\W:除了字母、数字、_(^A-z0-9_])
\d:任意数字
\D:除了数字
\s:空格
\S 除了空格
\b 单词边界
\B 除了单词边界