关于数组、回调和递归的一些相关随笔

回调

一、回调通常至关于处理某件事情须要等待时,设置回调
二、当不要关心具体后续须要处理的事情是,设置回调

setTimeout(超时执行的函数,超时时间,执行函数的参数)  返回一个id数
console。log("a")
var id=setTimeout(fn,2000,5);//异步,必定时间后处理问题

    function fn(n){
        console.log(n);
        clearTimeout(id);//清除这个超时函数
    }
    console.log("b"); 
复制代码

递归

数组的建立

有序列表存储若干个无序的元素,紧密型结构
将元素放在列表中的第几位,从0开始计算,这个位置就是下表,又叫作索引值
元素被存储在列表中,这个数据解释元素,简称元
从列表中获取这个元素的方法,使用数组名[下标]就能够的到这个元素
把这种方式叫作下标变量


对象是一种松散的结构,对象是键值对存储,当删除一个元素时,对象的其余值不会发生变化,对象是没有元素的个数,也就是对象长度
对象中不知道存储了多少了元素,插入和删除不会影响其余数据,因此时间复杂度极低,由于经过key去意义对应存储一个值,因此获取时,只须要根据key去取值就能够了,因此时间复杂度极低。对于对象来讲,由于每一个数据都是独立存在,不存在关联关系,更不能排序,因此不找因关联关系找到对应的值


数组是紧密型结构,只用下表存储对应的值,当删除一个元素时,由于紧密结构的关系就会将后面的元素向前递进
数组中能够知道存储了都少元素,由于插入和删除都会影响数组的元素的位置和结构,所以插入和删除都会影响数组的运行效率时间复杂度较高
数组的存储是依靠下标的,因此若是须要查找一个值,就须要遍历每个元素,已到达找到目标元素,所以时间复杂度极高,数组在使用时,由于是紧密性结构,因此你能够根据上一个内容找到与其相关联的元素 列入咱们能够利用数组排序,找一个最小值,含能够迅速找第二位最小值。
复制代码

数组的建立方式

字面量建立数组
var arr = [4,4,5,6,7];
var arr=[];//建立空数组
由于js是弱类型语言,所以数组比较随意能够随意扩张,就不须要限定个数

构造函数建立法
var arr=new Array(4,56,7,7,6,4);
var arr=Arry(1,5,6);
//若是构造函数建立数组时,既有一个参数且这个参数是一个大于0的正整数,这个数就是就是新数组的长度,而且没有元素。若是附属或者小鼠,就会报错

若是是非数值,就自动放在第0位

对象建立法
var arr=new Oject([1,2,5,6])

var arr=[1,,5,6,6];
//console.log(arr.constructor===Array);
//console.log(Array.isArray(arr));//ES6
//sonsole.log(String(arr))!== "[object Object]";


//数组也是引用类型,引用地址赋值
数组在强转或者隐式转换位字符串时,都会转换数组的元素
复制代码

数组的长度

arr.length  就是数组的长度。数组中元素的个数
数组的长度就是一个可读可写的属性
若是数组的长度修改比与哪来的长度学校,就会把对象多出来的元素删除
arr.length--//删除最为不得一个元素
arr.length=0//清空数组总全部的元素
++//在数组尾部添加一个空元素
素组的长度比数组的最大下表大1
arr[arr.length]=5;//在数组的尾部添加5


使用for in会便利到数组的属性
数组使用for循环遍历,会将所压迫得下标白能力,不遍历数组的对象属性,可是会遍历到空元素,遍历时下标

数组使用for in循环遍历,将会全部的可枚举属性遍历,若是该属性没有值就不会遍历,复制代码
相关文章
相关标签/搜索