js知识点拾遗1
1. 在css定位的元素中,如果两个元素z-index一样的话,那么在dom结构中靠后的元素会覆盖前面的元素(这跟元素在css中样式的顺序(css优先级)无关)。
2. js中return与return false的区别?
return:相当于return undefined,阻止程序继续执行(只干了一件事)
return false:
1.原生js中,不仅可以阻止程序运行, 也可以阻止默认行为(如a标签的跳转),做了两件事
2.jquery中 ,不仅做了上面两件事,还可以阻止冒泡(相当于原生的e.preventDefault和e.stopPropagation) 三件事都干了
3. filter:过滤--返回符合条件的item项--不会改变原数组,它返回过滤后的新数组。
map:加工--对item加工,返回值组成的数组(长度与原数组一样,不符合加工条件的返回undefined),也不改变原数组
4. 没有办法中止或者跳出 forEach 循环,除了抛出一个异常。
如果你需要这样,使用forEach()方法是错误的,你可以用一个简单的循环(用break中止)作为替代。
如果您正在测试一个数组里的元素是否符合某条件,且需要返回一个布尔值,那么可使用 Array.every(数组中的所有项都符合条件时,返回true) 或 Array.some(数组中只要有一项满足条件时,就返回true)。
如果可用,ES6新方法 Array.find():返回数组中第一个符合条件的项, 或者Array.findIndex():返回数组中第一个符合条件的项的索引, 也可被用于真值测试的提早终止。
5. 遍历方法总结:
1. for in总是得到对像的key或数组和字符串的下标,而for of和forEach一样,是直接得到值结果,
另外for of不能对象使用。
2.f orEach和map用法类似,都可以遍历到数组的每个元素,而且参数一致;但forEach返回值总是undefined(即使有return)。
3.伪数组转真数组方法:
1. Array.form((divList))
2. [...divList]
3. [].slice.call(divList)同Array.prototype.slice.call(divList)
注: ES6新增了 遍历器(Iterator)机制,为不同的数据结构提供统一的访问机制。只要部署了Iterator的数据结构 都可以使用 for ··· of ··· 完成遍历操作。
原生具备 Iterator 接口的数据结构如下:
Array Map Set String TypedArray 函数的arguments对象 NodeList对象。