一、JS数据类型
- 基本数据类型: number string boolean null undefined
- 引用数据类型: object function
- ES6新增数据类型: Symbol
二、常用数据类型,数据格式
- []
- {}
- [{}, {}]
- {0:{},1:{},2:{}} 索引唯一遍历
操作数组的方法:
1) vue里面数组的变异(能改变原来数组)
- slice
- splice *
- pop
- push
- unshift
- shift
- reverse
- sort
- indexof
- lastIndexof
- conact
- forEach
- filter
- map
- find
- some
- every
- includes
- reduce
- fill
2) 遍历数组方法总结 (面试题)
=>说说for、 for-in、 forEach 、for -of 区别
- for循环
- 不会遍历出私有的属性
- 编程式,知道原理
- forEach循环
- 不能return
- 不能遍历出私有属性
- 声明式编程, 不知道原理,用即可, vue就是
- for - in 循环
- 可以遍历出私有的属性,利用hasOwnproperty()进行过滤
- for - of循环 ES6完美解决上面问你
- 可以return
- 不会遍历出私有的属性
- 只能遍历数组
- myForEach封装,就是回调函数(在原型上扩展)
Array.prototype.myForEach = function(callback) {
if (typeof callback == 'function') {
for (let i =0;i<this.length;i++) {
callback.call(this,this[i], i, this);
}
}
};
var ary = ['vue', 'react', 'angular'];
ary.myForEach(function(item, index, slef) {
console.log(item, index, slef)
});
复制代码
1.for循环 // ==>> 不会遍历出私有的属性
let ary = [1, 2, 3];
ary.b = 100;
for (let i=0,len=ary.length;i<len;i++) {
console.log(ary);
}
2. forEach // ==>> 不能return,不会遍历出私有的属性
ary.forEach((item, index, self)=> {
console.log(item);
});
3.for - in // ==>> key会变成字符串,并且会遍历出私有的属性,利用hasOwnproperty进行过滤
for(let key in ary) {
if (!ary.hasOwnproperty(key)) {
conosle.log(key)
}
}
4.for - of // ==>> 可以return, 但是必须是数组,不能遍历对象
for(let key of ary) {
}
实现想遍历对象: Object.keys(); //====>>将一个对象的属性依次放到一个数组中,返回一个新的数组
let obj = {school:'科师',age:9};
for (let key of Ojbect.keys(obj) {
console.log(obj[key]);
}
复制代码
filter: 过滤
复制代码