-------------------------------今天新知识-------------------------------------
一:对象·类(类别)
面向对象:面向对象一种编程思想,一个是类的概念,一个是对象的概念
类:抽象的;对象:实例化的,具体的; 例如计算机类的这台电脑就是把某一类具体实例化了
(类的标识符首字母一般都是大写)(系统内置的类,自定义的类,实例化出来都是对象)
回顾数据类型:基本数据类型 (number string boolean undefined null)
引用数据类型:object function arr
js中的数据分类:在js中任何一个数据都能找到对应的类别(首字母一般是大写)
在js中每一个类都对应很多的对象
类和对象?
类是指某一类,抽象的,对象是实例化的具体的(对象是某一类的具体)
对象:是某一类的具体,对象也叫实例,对象是属性的无序集合(集合就是容器)
在js除了可以使用内置对象,可以自己创建对象
创建对象的两种方式:
字面量的方式(就是键值对的方式):
例如:
var dog1={
name:"哈哈哈",
age:4,
eat:function(){
consle.log("我会吃东西")
};
console.log(dog1.name);
console.log(dog1.age);
console.log(dog1.eat());
}
通过new类来创建对象 new是一个运算符。
var a=new Number(1)判断a是否属于number这个对象
(1)console.log(typeof a)object
(2)console.log(a instanceof number) true
获取对象中的属性,对象名.属性名
创建对象的第二种方式:
var obj=new Object()
obg.name="XXX"
console.log(obj.name)//xxx
获取对象中的方法,对象名.方法名
obj.eat=function(){
console.log("eat ...")
}
obg.eat();
二,js中常用的类
了解js的内置的类?
Date类:提供日期相关的操作
年getFullYear,月getMonth,日getDate 时getHours,分getHours,秒getSecond
Math类:(不需要new)提供数学相关的操作random floor ceil round
三 数组
1)数组是一组有序数据的集合,创建数组的两种方式?
(1)通过字面量的方式
var arr1=【10,20,20,31,“张”,“”,“zhihuimin”】
(2)实例化,也就是new一个数组
var arr2=new Array(“a”,“b”,“c”);
2)判断一个数据是否是数组的方法?
console.log(arr instanceof Array);true
console.log(Array.isArray(arr);true
console.log(arr typeof Array); object
3)注意细节:
给Array一个数据的时候如果是数值类型,则表示返回一个该长度的空数组
索引从0开始,依次递增,可以不连续
数组中可以放任意类型的数据
数组是动态的,可以根据数组的长度增长或者缩减。
4)操作数组
增删改查:
var arr =new Array(a,b,c,d)
访问:
console.log(arr[0])//a
添加:
arr【4】=e
console.log(arr)//[a,b,c,d,e]
修改元素:
arr【2】=123;
console.log(arr)//[a,123,c,d,e]
数组的属性:length
可以通过数组名.length获取数组的长度
console.log(arr.length)得到数组的长度
四 字符串
1)创建字符串的两种方式
通过字面量的方式
var s1=“你好“;
console.log(typeof s1)//string
通过new一个类
var s2=new String("zhang")
console.log(typeof s2)//object
console.log(s2 instanceof string)//true
五 数组和字符串中的常用方法
数组
通过数组方法操作数组?
push 在末尾追加元素 返回新数组长度 改变原数组
unshift 在开头追加元素 返回新数组长度 改变原数组
pop 删除末尾元素 返回被删除的元素 改变原数组
shift 删除开头元素 返回被删除的元素 改变原数组
reverse 将数组反转 返回反转后的数组 改变原数组
sort 把数组中的元素进行排序 返回排序后的数组 改变了原数组 如果需要对数组中的数字进行排序,需要传递一个比较函数,比较函数有两个参数,如果返回第1个参数-第2个参数,是升序, 如果返回第2个参数-第1个参数,是降序
slice 用来截取数组的 返回一个新数组 不改变原数组
toString 把数组转成字符串 返回一个字符串 不改变原数组
join 把数组转成字符串 返回字符串 不改变原数组
concat 多个数组连接成一个数组 返回连接后的新数组 不改变原数组
字符串方法:
concat 返回一个字符串从指定位置开始到指定字符数的字符(不改变原字符串)
查找:(都不改变原字符串)
charAt :返回该值指定字符
charcodeAt:返回该值指定字符的ascii码
indexof:返回该字符第一次出现它的指定值的索引(从左到右)
lastindexof:返回该字符最后一次出现它的指定值的索引(从右像左)
search:返回该字符对应的索引,找不到就返回-1
截取
substr:返回从指定位置开始到指定字符数的字符
substring:返回从开始索引到结束索引之间的一个子集(不截取end)(不可以)(start取负转为零)
slice:返回从开始索引到结束索引之间的一个子集(不截取end)(可以在数组中用)(取负转为length+start,length+end处理)
大小写转换
toLowercase 会将该字符串转为小写形式并返回
toUppercase 会将该字符串转为大写形式并返回
替换
replace 返回替换后的新字符串
转数组
split:使用指定分隔符将string对象分割成字符串数组(不加分割符,默认转换为一个数组中的一个元素)