在上一篇文章《JS基础知识点(一)》中我们学习了什么是js、js写法、js数据类型、js的函数。在本篇文章中我们将学习重要的部分:面向对象以及常用对象(math、date、string等)的方法
面向对象
面向对象特性:封装,继承,多态----抽象性
对象:对象应该有特征(属性)和行为(方法),特指的某个事物
创建对象的3种方式
1. 通过调用系统的Object构造函数创建对象
var 对象名字=new Object();
Object实际上就是一个函数,函数名首字母是大写的
第一种方式,添加属性和方法,非常简单,没有什么,直接.(点)就可以了
添加属性:
对象.属性名字=值;---->设置属性的值
例子:
obj.name="小三";
添加方法:
对象.方法名字=匿名函数;
例子:
obj.eat=function(){};
2. 自定义构造函数创建对象
function 大写字母的一个名字(){}
1.在内存开辟一块空间的空间(向内存申请一块空间的空闲)
2.把this设置为当前的对象(举例子)
3.设置该对象的属性和方法的值
4.把this作为当前对象返回
function Person(name,age){
this.name=name;
this.age=age;
this.sayHi=匿名函数;
}
var per=new Person("小白",23);
3.字面量的方式创建对象
var obj = {
name: "小明",
age: 10,
sayHi: function () {
console.log("我叫:" + this.name);
}
};
obj.sayHi();
var obj={
属性名字:值,
属性名字:值,
方法名字:匿名函数
};
对象中属性或方法的调用
对象中的属性或者是方法,不仅可以通过点语法的方式获取或者设置,同时可以使 用键值对的方式进行设置或者是获取
对象的遍历
对象一般通过for-in循环遍历
for(var 变量名字 in 对象名字){
console.log(变量名字);
//变量名字中存储的是该对象中属性的名字
}
JSON格式数据
var json={
键:值,
键:值,
};
扩展:JSON数据:格式化的一种数据(指定格式的一种数据,都是键值对的方式)
JSON格式的数据:成对的,一般都是用双引号括起来的
var obj2={
"name":"雏田",
"age":"20",
"sex":"男"
};
//JSON格式的数据,一般在js中都是通过for-in循环遍历的
for(var key in obj2){
console.log(key+"===="+obj2[key]);
}
JS对象分类
js中的对象分为:内置对象(系统自带的对象),自定义对象,浏览器对象window
Object/Math/Date/Array.....
(内置对象)Math对象
Math--->是内置对象,不是函数
Math.abs()---->绝对值
Math.max()---->一坨数字中的最大值
Math.min()---->一坨数字中的最小值
Math.ceil()--->向上取整
Math.floor()--->向下取整
Math.PI---->π的值
Math.random()--->获取随机数---->伪随机数,0-1之间,没有1,有0
(内置对象)Date对象
Date--->是内置对象,是函数
var dt=new Date();
dt.getFullYear()--->年份
dt.getMonth()--->月份
dt.getDate()--->几号
dt.getHours()--->小时
dt.getMinutes()--->分钟
dt.getSeconds()--->秒
new Date().toLocaleDateString();//日期
new Date().toDateString();//日期
new Date().toLocaleTimeString();//时间
new Date().toTimeString();//时间
String对象下的方法
.charAt(索引);--->返回的是指定索引位置的字符串
.charCodeAt(索引);--->返回的是指定索引位置的字符串的ASCII值
.concat("字符串1","字符串2",...)--->字符串拼接.返回新的字符串
.indexOf("要查找的字符串",开始的位置的索引);索引可以省略,返回的是查找后字符串的索引值,找不到则返回-1
.slice(开始的位置,结束的位置);----返回的是截取后的字符串
.lastIndexOf("要查找的字符串",开始的位置)--->从后向前找字符串,找到了就是索引,找不到就是-1
.replace("要替换的字符串","替换后的字符串");----替换后新的字符串
.subStr(开始的索引,截取字符串的长度);返回的是截取后的字符串
.subString(开始的索引,结束的索引);返回的是截取后的字符串
.trim()去掉字符串两端的空格,中间的空格不能去掉
.split("要切掉的字符串",想要几个字符串);返回的是一个字符串的数组
.toLocaleLowerCase();转小写
.toLocaleUpperCase();转大写
.charAt(索引);返回的是索引对应的字符串
.charCodeAt(索引);返回的是索引对应的字符串的ASCII码值(十进制)
.concat("新的字符串","其他字符串",...);
.slice(开始索引,结束索引);从指定位置开始提取字符串,到指定位置的前面
.substring(开始位置,结束位置);从指定位置开始提取字符串,到指定位置的前面
.substr(开始位置,字符串的截取个数);从指定位置开始截取,截取多少个字符串
.indexOf(字符串);获取的是该字符串的索引位置,如果找不到则返回-1
.lastIndexOf(字符串);从后向前找字符串,索引依然是从前向后
.trim()干掉字符串前后的空格
.toLocaleUpperCase()把字符串从小写转大写的
.toLocaleLowerCase();把字符串从大写转小写
.replace(原来的字符串,"新的字符串");替换字符串的
.split("要干掉的字符串");返回的是一个新的数组
创建数字的方式
1. 通过调用系统的构造函数 Array
var arr1=new Array(); //空数组
2.通过字面量的方式
var arr2=[]; //空数组
3.通过调用系统的构造函数,设置初始的数组的长度
var arr3=new Array(3); //undefined
.isArray(变量);返回的是布尔类型,如果是true则是数组,否则就不是数组
Array中的方法
.push(数据);向数组中追加一个数组,如果接收这个方法了,结果是追加数据后的数组的长度
.shift();删除数组中的第一个数据,返回值是删除后的那个数据值
.pop();删除数组中的最后一个数据,返回值是删除后的那个数据值
.unshift();向数组中第一个元素前面插入一个数据,返回值是插入数据后数组的新的长度
.reverse();反转数据数据
.sort();排序,但是不稳定
.slice(开始索引,结束索引);截取原数组中的数据,然后组成一个新的数组
.splice(开始的位置,删除的个数);返回值是删除后的数据组成的新数组,原来的数据的数据改变了
.splice(开始的位置,删除的个数,参数1,参数2...);是把数组中删除的位置用新的参数替换了
.indexof(要查找的数据);找到了就是索引,找不到就是-1
.join("字符串");返回值还是字符串,是把数组元素中间加上一个字符串,最终产生一个新的字符串
当一个函数参数的时候,这个函数就叫回调函数
.filter(回调函数);返回的是符合条件的筛选后的数据,组成的新数组