JavaScript 关于对象(object) 记录学习

目录

JavaScript对象用来干嘛的?

8种核心对象:

1.String对象:

2.Number对象:

3.Boolean对象:

4.Math对象:

5.Array对象:

6.Date对象:

7.Object对象:

8.RegExp对象:正则表达式


JavaScript对象用来干嘛的?

允许创建用户自定义和组合类型等其他能简化JavaScript的一系列操作。

8种核心对象:

核心对象简要说明
String字符对象
Number数字对象
Boolean布尔对象
Math用于执行数学运算(无法new)
Array创建数组对象
Date创建时间对象
Object包含由JavaScript对象所共享的基本功能,并提供生成其他对象的模板和基本操作方法
RegExp正则表达式

1.String对象:

属性:length(返回字符串长度);

1.1、charAt(num):返回索引(下标)位置的字符。如果num是不字符串中的有效索引则返回-1;
简单语法:变量.charAt("下标");

<script>
			let a = "charAt";
			alert(a.charAt(3));
</script>

1.2、charCodeAt(num):与charAt使用相同,但返回的是对应ASCll码;
简单语法:变量.charCodeAt("下标");
 

<script>
			let a = "charAt";
			alert(a.charCodeAt(0));
</script>

1.3、fromCharCode(num):返回ASCll对应字符;
简单语法:String.fromCharCode("变量保存的ASCll码或是直接ASCll码");
 

<script>
			let a = "charAt";
			let b=a.charCodeAt(0);
			alert(String.fromCharCode(b));
		</script>

1.4、concat(string2):连接字符串并返回新字符串;
简单语法:需要连接的变量.concat(需要被连接的变量);

<script>
			let a="con";
			let b=a.concat("cat");
			alert(b);
		</script>

1.5、
1.5.1:indexOf(string):返回指定字符第一次出现的下标;

简单语法:变量.indexOf("指定字符");
 

<script>
			let a="indexof";
			let b=a.indexOf("x");
			alert(b);
		</script>


1.5.1:indexOf(string,num):多了个指定下标的参数,如果指定下标的值不匹配,会继续往后找匹配值,没有返回-1;
简单语法:变量.indexOf("指定字符",下标);

<script>
			let a="indexofx";
			//从下标6往后找,
			let b=a.indexOf("x",6);
			alert(b);
		</script>

1.6、lastIndexOf(string):返回指定字符最后一次出现的下标;
简单语法:变量.lastIndexOf("指定字符");
 

<script>
			let a="indexofx";
			//最后一个出现的是下标为7的x;
			let b=a.lastIndexOf("x");
			//从下标6开始往前找就是下标为4的x;
			let b1=a.lastIndexOf("x",6);
			alert(b+"\n"+b1);
		</script>

1.7、replace(regExpression,string2):替换字符;
简单语法:变量.replace("替换目标"或是"正则表达式","替换字符");

<body>
		<p>你好</p>
		<script>
			let a = "ab字符";
			//
			let b = a.replace("ab","写个");
			document.getElementsByTagName("p")[0].innerText = b;
		</script>
	</body>

1.8、split(separetor):分割字符;
简单语法:变量.split("从什么开始分割");

<script>
			let a = "127.0.0.0.1";
			//分割后返回一个数组
			let b = a.split(".");
			//遍历
			for (let i = 0; i < b.length; i++) {
				console.log(b[i]);
			}
		</script>

1.9、字符串截取
1.9.1:substring(num1,num2):返回目标字符串中指定位置的字符串;

简单语法:变量.substring(开始下标,结束下标前停);

<script>
			let a = "127.0.0.0.1";
			//从下标3开始,下标10直接结束
			let b = a.substring(3,10);
			console.log(b);
		</script>

 
1.9.2.:substring(num):
简单语法:变量.substring(开始下标)一直往后;

2.0、toLowerCase():将字符串的全部字符转化为小写;
简单语法:变量.toLowerCase();

<script>
			let a = "ABCDE";
			console.log(a.toLowerCase());
		</script>

2.1、toUpperCase():将字符串的全部字符转化为大写;
简单语法:变量.toUpperCase();

<script>
			let a = "abcde";
			console.log(a.toUpperCase());
		</script>

2.2、valueOf():返回String对象的原始值;
简单语法:变量.valueOf();

<script>
			let a = "abcdef";
			console.log(a.valueOf());
		</script>

2.Number对象:

定义方式:

<script>
			//三种定义方式
			let num1=new Number(5);
			let num2=Number(10);
			let num3=15;
			console.log(num1+"\n"+num2+"\n"+num3);
		</script>


Number的对象属性:
JavaScript能表示的最大数和最小数

<script>
			let num3 = 15;
			console.log(num3.MAX_VALUE);//这里是undefined
			//该属性是Number对象的静态属性,
			//只能通过Number.MAX_VALUE显示
			
			console.log("JavaScript能表示的最大数:"+Number.MAX_VALUE);
            //表示JavaScript中能表达的最大数
			//大于表示无穷大;

			console.log("JavaScript能表示的最小数:"+Number.MIN_VALUE);
		</script>

 
NaN:表示非数字值

<script>
			let sr = "我可不是数字";
			//一般用于数字校验
			if (sr!=NaN) {
				console.log(sr+"不是数字");
			}
		</script>

 
NEGATIVE_INFINITY 和POSITIVE_INFINITY 

<script>
			console.log(Number.NEGATIVE_INFINITY);
			//代表负无穷大。溢出返回-Infinity
			
			console.log(Number.POSITIVE_INFINITY);
			//代表正无穷大.溢出返回Infinity
		</script>

 方法:

toString()
数值转换成一个字符串,使用IRadix指定基数,默认为十进制

<script>
			let a=1000;
			console.log(typeof a.toString());
		</script>


toFixed(x)
数值转换成一个字符串,x是小数显示多少位数;

<script>
			let a=1000;
			//2位小数
			console.log(a.toFixed(2));
		</script>


toExponential(x)
对象值转成指数计数法,x是小数显示多少位数;

<script>
			let a=1000;
			//2位小数
			console.log(a.toExponential(2));
		</script>


toPrecosion(x)
把数值格式化为参数x给定的长度包括小数

<script>
			let a=1000;
			
			console.log(a.toPrecision());
		</script>


valueOf 返回一个Number对象的原始数值

<script>
			let a=1000;
			console.log(a.valueOf());
		</script>

3.Boolean对象:

参数只有false和true
0、null、undefined的情况下会得到false,否则值为true;

<script>
			let a=new Boolean();
			a=false;
			console.log(a);
		</script>

4.Math对象:

直接上代码逐一解释

		<script>
			let a=-100;
			//1.Math.abs(num):返回num的绝对值
			console.log(a+"绝对数:"+Math.abs(a));
			
			//2.Math.round(num):四舍五入
			let mr=2.4,mr2=2.5;
			console.log(mr+"四舍五入"+Math.round(mr));
			console.log(mr2+"四舍五入"+Math.round(mr2));
			
			//3.Math.ceil(num):向上取整//
			//通俗一点:
			//c=2.1,c输出变成3;有小数默认向上取整。没有就是本身;
			let b=2.3;
			console.log(b+"向上取整:"+Math.ceil(b));
			
			
			//4.Math.floor(num):向下取整
			//和上面那个恰好相反
			let f=5.2;
			console.log(f+"向下取整:"+Math.floor(f));
			
			//5.Math.random():返回0-1的随机数(包括小数)
			//可以通过上面两个方法增大随机数
			//下面举例
			console.log("10-30随机生成:"+(Math.ceil(Math.random()*21)+10));//10-30(向下取整)
			console.log("31-50随机生成:"+(Math.floor(Math.random()*20)+30));//31-50(向上取整)
			//基本公式:(Math.random()*n)+m;
			//说到这里可能还是云里雾里,我通俗的说一下逻辑
			//首先:Math.random函数是随机0-1;默认这里有2个值(0和1);
			//让函数自定义范围,只需要对它的2个值进行增值即可;再通过向上取整或是向下取整方法去除小数
			//0*20=0;1*20=20;这里就变成了0-20;
			//括号外再+30  //0+30=30;20+30=50;
			//到这里0和1就增值为20-50;
			
			//6.Math.sqrt(num);//返回num的平方根
			let ms=4;
			console.log(ms+"的平方根是:"+Math.sqrt(ms));
			
			//7.Math.max(num1,num2):返回两者中大的数
			let num1=5;
			let num2=5.1;
			console.log(num1+"和"+num2+"中"+Math.max(num1,num2)+"大");
			
			//8.Math.min(num1,num2):返回两者中小的数
			console.log(num1+"和"+num2+"中"+Math.min(num1,num2)+"小");
			
			//9.Math.pow(num1,num2):返回两者的次方
			console.log(num1+"和"+num2+"的次方是:"+Math.pow(num1,num2));
			
		</script>

Math常用9种方法总结到这,下一个。

5.Array对象:

数组是包含基本和组合数据类型的有序序列。

直接代码段吧(看下面)

		<script>
			let Mya = new Array(); //吴长度
			let Mya2 = new Array(4); //长度为4,无值输出三个分隔符
			let Mya3 = new Array(1, 2, 3, 4, 5, 6);
			console.log(Mya + "\n" + Mya2 + "\n" + Mya3)


			//下标从0开始
			let b = 0;
			let a = ["元素1", "元素2", "元素3", "元素4", "元素5"];
			for (let i = 0; i < a.length; i++) {

				console.log(`下标为${b}的值是${a[i]}`);
				b += 1;
			}

			//接下来常用方法介绍
			//1.数组连接
			//1.1:concat   如果数组有元素,直接会在后面增加
			a = a.concat("元素6", "元素7", "元素8");
			console.log(a);

			//1.2:join("分隔符号(不是必须,默认是,分隔)")  把数组连接成一个字符串
			console.log(a.join("-"));
			console.log(typeof a.join());

			//2.排序
			//2.1:sort()  排序
			console.log(a.sort());
			//2.2:reverse()  反转数组
			console.log(a.reverse());
			
			
		</script>

<script>
			let a=["元素1","元素2","元素3","元素4","元素5"];
			//3.数组载入
			//slice(从那个下标开始截取,到那个下标结束);
			let a2=a.slice(0,4);
			console.log(a2);
			
			//4.数组元素添加,删除
			//splice(index,howmany,item1……);
			//三个参数(从什么下标开始,删除到什么地方,添加的元素);
			//返回被删除了的元素
			let a3=a.splice(1,3,"元素6","元素7");
			console.log(a3);
			console.log(a);
			//输入发现只剩下2个老元素,和新添的6,7元素;
			
		</script>

6.Date对象:

时间对象

<script>
			let dt1 = new Date(); // 创建当前日期时间对象
			let dt2 = new Date(100000000); //根据毫秒数构造日期时间对象
			let dt3 = new Date("2020-10-12 10:20:30"); // 根据字符串创建
			let dt4 = new Date(2022, 4, 10, 10, 20, 30); //5月
			//在js中是用0-11代表1-12月的
			
			// 时间转换方法
			//toLocaleString():年月日+时分秒
			//toLocaleDateString():年月日
			//toLocaleTimeString():时分秒
			console.log(dt1.toLocaleDateString());
			console.log(dt1.toLocaleTimeString());
			console.log(dt1.toLocaleString());
			console.log(dt1.toLocaleString());
			
			// set开头方法:用于设置日期时间各个部分的值
			let dt5 = new Date(); 
			
			dt5.setFullYear(2000); // 设置年
			//js中用0~11代表1到12月
			dt5.setMonth(10); // 设置月(11月)
			dt5.setDate(5); // 设置日
			dt5.setHours(10); // 设置时
			dt5.setMinutes(20); // 设置分
			dt5.setSeconds(30); // 设置秒
			dt5.setMilliseconds(40); // 设置毫秒
			console.log(dt5.toLocaleString());
			
			//get 开头的方法:获取日期时间对应部分的方法
			let y = dt5.getFullYear();//年
			let m = dt5.getMonth() + 1;//月
			let d = dt5.getDate();//日
			let h = dt5.getHours();//时
			let mm = dt5.getMinutes();//分
			let ss = dt5.getSeconds();//秒
			let wk = dt5.getDay(); // 返回星期(0-代表星期天,1-星期一,。。。。。)
			let weeks = ["日", "一", "二", "三", "四", "五", "六"];
			//用下标的方式输出xxxx年x月x日 时:分:秒
			let myDate = y + "年" + m + "月" + d + "日" + " " + h + ":" + mm + ":" + ss + " 星期" + weeks[wk];
			
			console.log(myDate)
		</script>

 

7.Object对象:

自定义对象:

			//1.定义对象构造函数
			function School(name, address, grade, number) {
				//创建对象
				this.Name = name;
				this.Address = address;
				this.Grade = grade;
				this.Number = number;
				//也可以写函数
				this.Cs = function() { //匿名函数
					console.log(`姓名:${this.Name}\n地址:${this.Address}\n学历:${this.Grade}\n人数:${this.Number}\n`);
				}
				this.Cs2 = cs2;
			}
			//通过构造函数初始化对象
			let a = new School("王五", "中国", "小学", "2000");
			a.Cs(); //调用方法
			function cs2() {
				console.log(`姓名:${this.Name}\n地址:${this.Address}\n学历:${this.Grade}\n人数:${this.Number}\n`);
			}
			let b = new School("李四", "中国", "初中", "3000");
			b.Cs2();

			//也可以通过数组存储多个对象
			let ar = [
				new School("张三", "中国", "高中", "400"),
				new School("张四", "美国", "高中", "300"),
				new School("张五", "美国", "高中", "200"),
			]
			let ar2 = [{
					name: "李四",
					address: "美国",
					grade: "高中",
					number: "200"
				},
				{
					name: "李五",
					address: "美国",
					grade: "高中",
					number: "100"
				},
				{
					name: "李六",
					address: "美国",
					grade: "高中",
					number: "50"
				}
			]
			for (let i = 0; i < ar.length; i++) {
				ar[i].Cs();
			}
			//下标和变量指定再初始化对象
			for (let j = 0; j < ar2.length; j++) {
				let s = new School(ar2[j].name,ar2[j].address,ar2[j].grade,ar2[j].number);
				s.Cs();
			}
			
			//2.对象字面量
			//上面的ar2数组其实就是对象字面量
			//直接初始化对象来创建自定义对象
			let obj={
				name:"北京大学",
				address:"北京",
				grade:"高等学府",
				number:"200",//逗号隔开,最后一个对象不需要逗号
				//也可以写函数
				show:function(){
					console.log(`机构名称${this.name}\n地址${this.address}\n教育层次${this.grade}\n在校人数${this.number}\n`)
				}
			}
			obj.show();
			
			
		</script>

8.RegExp对象:正则表达式

由^开始$结束。基本写法:/^里面规则$/

定位字符对照表
字符描述
\

将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符

例如:'n'匹配字符'n'。'\n'匹配一个换行符。序列'\\'匹配\,而"\("则匹配"("。

[xyz]字符集合。匹配[]包含的任意一个字符。例如:[abc],可以匹配a或b或c
[^xyz]非字符集合,匹配[]未包含的任意一个字符。例如:[^abc],除了这三都匹配。
[a-z]字符集合,匹配a-z范围内的任意小写字母
[^a-z]非字符集合,除了a-z范围内的任意小写字母都可以匹配
\w匹配任意单个的字母、数字、或下划线。等于[a-zA-Z0-9]
\W匹配任意单个的非字母、数字、或下划线。等于[^a-zA-Z0-9]
\d匹配一个数字。等于[0-9]
\D匹配一个非数字。等于[^0-9]
.匹配任意一个单字符
x|y匹配x或y。'(x|f)ood'  则匹配"xood"或是"food"
普通字符对照表
字符描述
*匹配前面的子表达式0次或多次。例如xy*能匹配“x”以及“xyy”。等价于{0,}。(简单来说就是能匹配最少0次,最多n次)
+匹配前面的子表达式一次或多次。例如:'zx+'能匹配"zx"以及"zxx",但不能匹配"z"。+等于{1,}。(+前的表达式必须完全匹配一次)
匹配前面的子表达式0次或一次。例如:'do(es)?'  可以匹配"do"或"does"。?等于{0,1}
{n}n是一个非负整数。匹配确定的n次。例如:'o{2}'  不能匹配"Bob"  中的'o',但能匹配"food"  中的所有o。(简单来说就是只能出现2个o)
{n,}n是一个非负整数。至少匹配的n次。例如:'o{2,}'  不能匹配"Bob"  中的'o',但能匹配"foooooood"  中的所有o。(简单来说就是至少要有2个o)
{n,m}

m和n都是非负整数,其中n<=m。最少匹配n次,最多匹配m次。

例如:o{1,3}将匹配"fooooood"中的前三个o。"o{0,1}"等于'o?'。

请注意逗号和2数之间不能有空格。

限定字符对照表
字符说明
()标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,()
[标记一个中括号表达式的开始。[]
{标记限定符表达式的开始。{}
|指明2项之间的一个选择。x|y

常用方法:

1.test();

		<script>
			//匹配大小写字母和数字任意次
			let rg = /^\w*$/
			let a = "你好";
			let a2="abcd213";
			//1.test();
            //正则变量.test(需要校验的值);
			//返回Boolean。查找对应的字符串中是否存在与模式中。
			//true(匹配成功),false(匹配失败);
			console.log(a+":"+rg.test(a));
			console.log(a2+":"+rg.test(a2));
		</script>

 

2.exec(); 

<script>
			//匹配大小写字母和数字任意次
			let rg = /^\w*$/
			let a = "你好";
			let a2 = "abcd213";
			//2.exec();
			//exec有4个属性:
            //input:整个被搜索的字符
            //index:声明匹配文本的第一个字符位置
            //lastIndex:匹配的子字符串的最后一个字符的下一次字符位置
            //length:数组长度
			//返回当前的匹配结果,一个数组。其中存放匹配结果。
            //第0个元素是与正则表达式相匹配的文本
            //第1个元素是与RegExp的第1个子表达式相匹配的文本(有的话)
            //第2个元素是与RegExp的第2个子表达式相匹配的文本(有的话),以此类推
			//如果未找到匹配结果返回null

			console.log(a + ":" + rg.exec(a));
			console.log(a2 + ":" + rg.exec(a2));
			
			//在构造RegExp对象时,还可以指定参数。
            //i:执行对大小写不敏感
            //g:执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
            //m:执行多行匹配
            //let str="1c1b1a";
            //let reg=new RegExp("1.","g");
            /*
            let arr=reg.exec(str);
            console.log(arr.length);//1
            console.log(arr[0]);//1c
            console.log(arr.input);//1c1b1a
            console.log(arr.lastIndex);//2
            console.log(arr.index);//0

            */ 
			
		</script>

 

​​​​​​​3.match();

<script>
			//匹配大小写字母和数字任意次
			let rg = /^\w*$/
			let a = "你好";
			let a2 = "abcd213";
			//3.match();
			//可在字符串内检索指定的值,
			//或找到一个或多个正则表达式的匹配。
			//类似indexOf()和lastIndexOf();
			//不过返回的是值,而不是字符下标
			console.log(a + ":" + a.match(rg));
			console.log(a2 + ":" + a2.match(rg));
		</script>

 

 

 

 结束


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值