文章目录
arguments
在调用函数时,浏览器每次都会传递两个隐含的参数:
(1)函数的上下文对象this
(2)封装实参的对象arguments
- arguments是一个类数组对象,它可以通过索引来操作数据,也可以获取长度
- 在调用函数时,我们所传的实参都会在arguments中保存
- 我们即使不定义形参,也可以通过arguments来使用实参,只不过比较麻烦
- 它里边有一个属性叫做callee,这个属性对应一个函数对象,就是当前正在执行的函数对象
function fun(){
console.log(arguments.length);//返回2,因为有两个实参数
}//arguments.length可以用来获取实参的长度
console.log(arguments[0]);//返回hello
console.log(arguments.callee == fun);//返回true
fun("hello","true");
Date对象
创建一个Date对象:
- 如果使用构造函数创建一个Date对象,则会封装为当前代码执行的时间
var d = new Date();
创建一个指定的时间对象:
- 需要在构造函数中传递一个表示时间的字符串作为参数
- 日期的格式:月份/日/年 时:分:秒
var d2 = new Date("12/03/2011 11:10:30");
console.log(d2);
1.getDate()
获取当前日期对象是几日
var date = d2.getDate();//12/03/2001 11:10:30
console.log(date);
2.getDay()
- 会获取当前日期对象是周几
- 会返回0~6的值
- 0表示周日,以此类推
var Day = d2.getDay();//12/03/2001 11:10:30
console.log(Day);
3.getMonth()
- 获取当前时间对象的月份
- 会返回0~11的值
- 0表示一月,以此类推
var month = d2.getMonth();//12/03/2001 11:10:30
console.log("month:"+(month+1));
4.getTime()
- 获取当前日期对象的时间戳
- 时间戳:指的是格林威治标准时间的1970年1月1日,0时0分0秒到当前日期所花的费的毫秒数
- 计算机底层在保存时间时使用都是时间戳
var time=d2.getTime();
console.log(time);
利用时间戳来调式代码的执行性能
var start = Date.now();
for(var i = 0; i<100; i++){
console.log(i);
}
var end = Date.now();
console.log("执行了"+(end-start)+"毫秒");
Math
!!!Math和其他对象不同,他不是一个构造函数,它属于一个工具类,不用创建对象,它里边封装了数学运算相关的属性和方法!!!
Math.PI 表示圆周率
Math.abs() 返回一个数的绝对值
Math.ceil() 对一个数向上取整,如2.1就取3
Math.floor() 对一个数向下取整,小数部分会被舍掉
Math.round() 对一个数进行四舍五入区取整
Math.random() 可以用来生成一个0~1之间的随机数;要生成0到某个数的随机数,变为Math.round( Math.random() 乘以 某个数 );生成一个X到Y的随机数,变为Math.round( Math.random()*(Y-X)+X
)Math.max() 可以获取多个数中的最大值
Math.min() 可以获取多个数中的最小值
Math.pow(x,y) 返回x的y次幂
Math.sqrt() 用于对一个数进行开方
https://www.w3school.com.cn/jsref/jsref_obj_math.asp
包装类
字符串的相关方法
1.charAt()
可以返回字符串中指定位置的字符
根据索引获取指定的字符
var str="Hello 您好"
var result=str.charAt(7);
console.log(result);
2.charCodeAt()
获取指定位置字符的字符编码(Unicode编码)
var str = "Hello At";
var result = str.charCodeAt(1);//101
- formcharCodeAt() 根据字符编码去获取字符
3.indexOf()
- 该方法可以检索一个字符串中是否含指定内容 如果字符串中含有该内容,则会返回其第一次出现的索引;如果没有找到指内容,则返回-1;
- 可以指定第二个参数,指定开始查找的位置
var str = "Hello 您好";
var result = str.indexOf("l",1);//1表示从e开始查找,找到l,返回位置
console.log(result);
4.lastIndexOf()
- 该方法和indexOf()一样,不同的是lastIndexOf()是从后往前找
- 也可以指定开始查找的位置
5.String.fromCharCode
可以根据字符编码取获取字符
var result = String.fromCharCode(0x2692);
6.concat()
- 用来连接两个或多个字符串
- 作用和 + 一样
var result = str.concat("你好","您好");
7.slice()
- 可以从字符串中获取指定的内容
- 不会影响原字符串,而是将截取到的内容返回
- 参数:
第一个,开始位置的索引(包括开始的位置);
第二个,结束位置的索引(不包括结束位置)- 如果省略第二个参数,则会截取到后边所有的
- 也可以传递一个负数作为第二个参数,负数的话将会从后边计算
var str = "acavrsddassdf";
var result = str.slice(1,4);
var result1 = str.slice(1,-1);
console.log(result);
console.log(result1);
8.substring()
- 可以用来截取一个字符串,与slice类似
- 参数和slice()相同
- 不同的是这个方法不能接受负数作为参数,如果用了负数,则默认为0
- 如果第二个参数小于第一个参数,会自动交换
9.substr()
用来截取字符串
10.split()
- 可以将一个数组拆分成一个数组
- 参数:需要一个字符串作为参数,将会根据该字符串去拆分数组
11.toUpperCase()
- 将一个字符串转换为大写并返回
var str = "abcd";
var result = str.toUpperCase();
12.toLowerCase()
- 将一个字符串转换为小写并返回
正则表达式
功能:用于定义一些字符串的规则,计算机可以根据正则表达式,来检查一个字符串是否符合规则,或者将字符串中符合规则的内容提取出来。
1.创建正则表达式的对象
- 语法: var 变量 = new RegExp(“正则表达式”,“匹配模式”)匹配模式:可以是i(忽略大小写) g(全局匹配模式);
- 使用typeof检查正则对象,会返回object
var reg = new RegExp("a","i");
这个正则表达式可以用来检查一个字符串中是否含有a
- 在构造函数中可以传递一个匹配模式作为第二个参数:可以是i(忽略大小写) g(全局匹配模式)
2.正则表达式的方法:
- test()使用这个方法可以用来检查一个字符串是否符合正则表达式的规则,如果符合则返回true,否则返回false
var result = reg.test(str);
console.log(result);//返回true
console.log(reg.test("bacd"));//返回true,有a就行
console.log(reg.test("bacd"));
和
console.log(reg.test("bAcd"));//都返回true
3.使用字面量来创建正则表达式
- 语法:var 变量 = /正则表达式/ 匹配模式
- 使用字面量形式更简单
- 使用构造函数更加灵活
var reg = new RegExp("a","i");//这是构造函数的形式
或者
var reg = /a/i;//字面量的形式
4.创建一个正则表达式。检查一个字符串中是否有a或b
- 使用 | 表示或者的意思
- [ ]里的内容也是或的意思
- [ab] == a|b
var reg = /a|b/;
console.log(reg.test("bcd"));
5.创建一个正则表达式检查一个字符串中是否含有字母
- [a - z]任意小写字母 [A - Z]
- 任意大写字母
- [A - z]任意字母
var reg = [a - z];
console.log(reg.test("b"));
6.创建一个正则表达式检查一个字符串是否含有aaa
(1)量词
- 通过量词可以设置一个内容出现的次数
- 量词只对前一个内容起作用
- {n} 表示出现n次
- {m,n} 出现m到n次不能超过n,不能小于m
- {m,} 出现m次以上
- 加号(+) 出现至少一个,相当于{1,}
- 星号(*) 出现0个或多个,相当于{0,}
- 问号(?)出现0个或1个,相当于{0,1}
正则表达式相关的方法
1.split()
可以将一个字符串拆成一个数组
var str="1a2b3c4d5e6f";
var result=str.split(/[A-z]/);//A到z
console.log(result);
2.search()
- 可以搜索字符串中是否含有该指定内容
- 如果搜索到指定内容,则会返回第一次出现的索引,如果没有则返回 -1
- 它可以接受一个正则表达式作为参数,然后根据正则表达式来检索字符串
- search()只会查找第一个,即使设置全局匹配也没用
var str = "hello abc aec afc";
var result = str.search(/a[bef]c/);//abc或aec或afc
console.log(result);
3.match()
- 可以根据正则表达式,从一个字符串中将符合条件的内容提取出来
- 默认情况下我们的match只会找到第一个符合要求的内容,找到以后就停止检索。我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容。可以为一个正则表达式设置多个匹配模式,且顺序无所谓。
- match()会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果。
var str = "1a2b3c4d5e6f7A8B9C";
var result = str.match(/[A-z]/ig);
console.log(result);
console.log(result[0]);//返回a
4.replace()
- 可以将字符串中指定内容替换为新的内容
- 参数:
1.第一个参数, 被替换的内容,可以接受一个正则表达式作为参数
2.第二个参数, 新的内容
默认只会替换第一个
var str = "1a2b3c4a5e6f7A8B9C";
var result = str.replace(/[a-z]/gi , "");
console.log(result);