思路:前面i-1个元素不动,那么就要移动n-(i-1)个元素了。
思路:var a=[ ];
创建一个长度为0的数组;
a[5]=4;
数组长度自动延长到6,没有赋值的元素均为undefined。
思路:渐进时间复杂度是指n趋于无穷时的复杂度。向有序表中任意一个位置插入元素,插入位置之后的元素依次挪动一个位置,假设元素插入的位置坐标为k,则时间复杂度为O(k),渐进时间复杂度为O(n)。
思路: typeof(arr) 返回的是 Object
instanceof 在跨 frame 对象构建的场景下会失效
arr.toString 没有这种用法,正确的用法是 arr.toString() 返回的是数组的内容
思路:行列反了
思路:广义表( Lists ,又称列表) 是线性表的推广。线性表定义为 n>=0 个元素 a1,a2,a3,…,an 的有限序列。线性表的元素仅限于原子项,原子是作为结构上不可分割的成分,它可以是一个数或一个结构,若放松对表元素的这种限制,容许它们具有其自身结构,这样就产生了广义表的概念。
思路:js中事件对象的方法:
1)stopPropagation() 阻止事件冒泡。 这个事件不会阻止定义在元素上的其他事件。
2)stopImmediatePropagation() 会彻底的阻止事件。在其之后的绑定在元素上的其他监听事件都不会触发。
3)preventDefault() 阻止事件的默认动作。
因此,可以使用preventDefault()阻止默认行为。例如a链接的跳转,在a链接跳转中,需要先对a链接绑定点击事件,然后在a链接的事件对象中调用该方法即可。
思路:折半查找属于随机访问特性 链表不行
堆排序也不能用链表 因为调整堆时没法随机访问底层孩子节点
快速排序可以链表
归并排序可用链表
基数排序可用链表
插入排序链表比数组要快一些 减少移动次数
思路:$apply()方法可以在angular框架之外执行angular JS的表达式,例如:DOM事件、setTimeout、XHR或其他第三方的库。
思路:
- hover移入移出,输入验证一般不会使用hover
- keypress也不会用作输入验证,
- change可以用作输入验证的事件,change(fn)只是一种实现方式,还有其他实现方式:
- 原生js的onchange属性,
- html属性onchange,
- addEventListener(onchange,fn)都是实现方式,
- jquery中除了$(selector).change(fn)外还有bind(change,fn)