函数对象的方法、argument、Date对象、Math、包装类、正则表达式

目录

1.函数对象的方法 call、apply

2.argument

3.Date对象

4.Math

5.包装类

字符串的方法String

.length

.charAt()

.charCodeAt()

.fromCharCode()

.concat()

.indexOf()

.lastIndexOf()

.slice

.substring()

.substr()

.split()

.toUpperCase()

.toLowerCase()

6.正则表达式(对象)

创建正则表达式

字符串和正则相关的方法

.split()

.search()

.match()

正则表达式的语法


1.函数对象的方法 call、apply

通过函数对象来调用,调用方法时都会调用函数
可以将一个对象指定为第一个函数,这个函数会成为这个对象执行时的this

call()方法可以将实参在对象之后依次传递
apply()方法需要将实参封装到一个数组中统一传递

funtion fun(){
         alert("..");
}
fun.apply();
fun.call();

根据函数调用方法不同,this会指向不同对象

  1. 函数形式调用,this是window
  2. 方法调用,this是调用方法的那个对象
  3. 当以构造函数形式调用时,this就是创建的函数
  4. call()、apply()方法调用时,this是指定的那个对象

2.argument

在调用函数时,浏览器每次都会传递进两个隐含参数

  1. 函数的上下文对象 this
  2. 封装实参的对象 argument(类数组对象)

argument可以通过索引操作数据,也可以获取长度
调用函数时,传递的实参都会在argument中保存,即使不定义形参也可以利用argument来使用实参
callee属性,对应一个当前正在执行的函数对象


3.Date对象

如果使用构造函数创造一个Date对象,会封装当前代码执行时间
创造一个指定时间对象,需要在构造函数中传递一个表示时间的字符串
var date = new Date("20/10/2020 23:10:20");

Date方法:
getDate()获取当前日期对象-日
getDay()  0~6星期
getMonth()  0~11月份
getFullyear() 年份
getTime()当前日期对象的时间戳-格林尼治时间至对象时间经过毫秒
                计算机底层在保存时间时使用的都是时间戳
now()获取代码执行的当前时间戳-测试代码执行性能


4.Math

不是构造函数
工具类不用创建对象,封装数学运算相关属性和方法,可直接使用
Math.PI
Math.abs()取绝对值
Math.ceil()向上取整
Math.floor()向下取整
Math.round()对一个数四舍五入取整
Math.random()生成0-1之间的随机数
                          Math.round(Math.random()*(y-x))+x 生成x-y的随机数
Math.max()获取多个数中的最大值  min
Math.pow(x,y) 返回x的次幂


5.包装类

JS提供三个包装类,将基本数据类型转换为引用数据类型
String()将基本数据类型字符串转换为String对象
Number()
Boolean() 

实际开发不使用包装类,不方便比较
方法、属性只能添加给对象,不能添加给基本数据类型
但我们对基本数据类型调用方法、属性时,系统会临时使用包装类把基本数据类型转换为对象
调用完以后将其转换为基本数据类型

字符串的方法String

var str = "hello world";
字符串在底层以字符数组形式保存

.length

属性获得长度

.charAt()

根据索引获取指定位置的字符

.charCodeAt()

获取指定位置字符的字符编码

.fromCharCode()

根据字符编码获取字符

.concat()

连接两个或多个字符串,返回新串

.indexOf()

检索一个字符串中是否含有指定内容,含有返回第一次出现索引,没有返回-1
可以指定第二个参数,表示开始查找的位置

.lastIndexOf()

类似于.indexOf(从前往后),但它是从后往前

.slice

(开始索引,结束索引)从字符串截取指定位置,不会影响原字符串
前闭后开,可以传负数参

.substring()

截取字符串类似.slice(),但不能接受负值,且会自动调整参数位置

.substr()

截取字符串

.split()

将一个字符串拆分为一个新的数组
需要根据一个字符串参数来拆分数组
如果传递一个空串会将每一个字符都拆出

.toUpperCase()

将一个字符串转换为全部大写并返回新值

.toLowerCase()


6.正则表达式(对象)

用于定义一些字符串规则以检查字符串
或者将字符串中符合规则的内容提取出来

创建正则表达式


var 变量 = new RegExp("正则表达式","匹配模式");
var reg = new RegExp("a");//检查一个字符串中是否含有a
return.test(reg);
.test()检查字符串是否符合正则表达式的规则,返回布尔值
大小写敏感 

第二个参数
i忽略大小写  g全局匹配模式

使用字面量创建正则表达式
var 变量 =/正则表达式/匹配模式
var reg = /a/i;  //检查一个字符串中是否含有a
但构造函数比利用字面量更灵活

|  [ ]表示或的关系
[a-z]任意小写字母  [A-Z]大  [A-z]任意字母
[^ ]除了


字符串和正则相关的方法

.split()

根据参数将一个字符串拆为一个数组,可以传入一个正则表达式,全局匹配

.search()

可以搜索字符串中是否含有指定内容,有返回第一出现索引,没有返回-1
可以传入一个正则表达式作为参数
默认情况下只能找到一个符合要求的内容,找到后终止检索
但设置正则表达式为全局匹配模式,会匹配到所有内容
可以为一个正则表达式设置多个匹配模式,且顺序无所谓

.match()

会将匹配的内容封装到一个数组中返回,即使只读到一个结果


正则表达式的语法

量词:一个内容出现的次数 
只对前边的一个内容起作用
var reg = /a{3}/;

{n} ->出现n次
(m,n) ->出现m~n次数
{m,} ->m次以上
+至少一个,相当于{1,}
* 0个或多个,相当于{0,}
? 0个或1个,相当于{0,1}
^ 表示开头(^a 检查某字符串是否以a开头)
& 表示结尾(b& 检查某字符串是否以b结尾)

如果在正则表达式中同时使用^ & ->要求字符串完全符合正则表达式

var phoneStr = "13982358001";
var phoneReg = /^1[3-9][0-9]{9}&/;
console.log(phoneReg.test(phoneStr));

字面量中
.表示任意字符
\转义字符  -> \.表示.
ps.在构造函数中,由于它的参数是一个字符串,\属于字符串的转义字符
如果要使用\则需要用\\来代替 -> \\.

\w 任意字母、数字、_
\w 除了任意字母、数字、_
\d 任意数字[0-9]
\D 除了数字[0-9] ->[^0-9]
\s 空格
\S 除了空格
\b 单词边界 ->独立单词
\B 除了单词边界

eg.去除开头和结尾的空格

str = str.replace(/^\s*|\s*&/g,"");

eg.检查电子邮件
任意字母数字下划线  .任意字母数字下划线@  任意字母数字  .任意字母(2-5位) .任意字母(2-5位)

              var str = "hello world";
              result = str.search(/a[bef]c/);


.replace(被替换内容,新的内容)可以将字符串中指定内容替换为新的内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值