1.构造函数
new出来的是实例化对象
实例化构造函数没有参数时可以省略小括号()
系统构造函数,比如Object、Array、String等,是系统提供的
2.自定义构造函数
自己起名的叫自定义构造函数,比较便于分类,比较灵活
构造函数的this指向当前实例化对象
instanceof:判断一个对象是否属于一个构造函数的
对象 instanceof 构造函数名称
constructor:用于指回构造函数本身 对象.constructor
3.成员
函数是对象,构造函数也是对象,也可以加属性和方法
静态成员
构造函数身上添加的成员,只能构造函数用,外部不可以用,this指向构造函数本身
实例成员
给实例对象准备的成员(构造函数里面的属性),只能实例对象用,构造函数本身不可以用
4.简单和复杂数据类型数据存储
简单数据类型存在栈里面,复杂数据类型对象存在堆里面(地址存在栈里面)
简单数据类型重新赋值的话,只传值,它的值不会改,是两个不同的值
复杂数据类型重新赋值的话,传的是地址,它的值会改
5.引用数据类型
对象Object
是内置的构造函数,用于创建普通对象
Object.keys静态方法中获取对象的所有键
Object.values静态方法中获取对象中的所有属性值
数组Array
join:拼接数组成字符串 如果拼接之间不加符号要用空字符串
reverse:翻转字符串
sort:数组排序 正序排:数组.sort(function (a,b) {return a-b})
倒序排:数组.sort(function (a,b) {return b-a})
indexof:查找某个元素在数组中首次出现的索引值位置 有就返回下标,没有就返回-1
lastindexof:查找某个元素在数组中尾次(最后)出现的位置 有就返回一下标,没有就返回-1
from:伪数组转成真数组 必须有length属性,否则转不成真数组 它是静态方法,其余的都是实例方法
forEach():遍历数组 数组.forEach(function (item,index,o) { }) item是数组的当前项(数组的每一项) index就是当前项的索引值(下标) o就是需要遍历数组的名称
find():遍历数组,并且查找满足条件的第一个值 用法和forEach()一样,参数也一样
findIndex():遍历数组,查找满足条件的第一个值并返回它的索引值 用法和forEach()一样,参数也一样
filter():遍历筛选,把满足条件的元素放到新数组返回 用法和forEach()一样,参数也一样
map():遍历每个元素执行一遍回调函数,把结果保存数组中返回 用法和forEach()一样,参数也一样
some():遍历数组查找满足条件的元素,如果有就返回true,否则返回false
every():遍历数组查找满足条件的元素,必须所有元素都满足才返回true,否则返回false
正则表达式RegExp
构造函数创建正则表达式 例如:let reg = new RegExp(/123/);
6.包装类型
简单类型包装直接字面量定义,也可以使用包装复杂类型,因为是系统包装的
String
原本是简单类型,但是一用new实例出来的就是构造函数 let str = new String();
实例属性:length 获取字符串的长度
实例方法:split():将字符串拆分成数组
toUpperCase():将小写字母转换成大写
toLowerCase():将大写字母转换成小写
indexof():查找某个字符,返回首次出现的索引值 有就返回索引值,找不到返回-1
lastindexof():查找某个字符,返回尾次出现的索引值 有就返回索引值,没有就返回-1
substring():截取字符串 字符串.substring(start,end) 但是end索引位置上的值取不到,如果只有一个 参数,会截取到最后
substr():截取字符串 字符串.substr(start,length) 如果只有一个参数,会截取到最后
Number
number也是一个简单数据类型,new出来的实例化对象也是构造函数 let num = new Number();
toFixed(数字):保留几位有效数字 例如:toFixed(3);
parseInt():转换为整数
parseFloat():转化为浮点数
Boolean
boolean也是一个简单数据类型,new出来的实例化对象也是构造函数 例:let flag = Boolean(22);
7.公共方法
undefined和null不能用
toString():转换成字符串 任何任何的否可以转化成字符串
valueOf():用于返回原始值 例如时间日期 new Date() 它的原始就是时间戳