forEach(),map()与filter()等的区别

 1.JSON.stringify() 方法是将一个JavaScript值(对象或者数组)转换为一个 JSON字符串

   JSON.parse() 方法用来解析JSON字符串,构造由字符串描述的JavaScript值或对象。

  prop与attr

* 对于HTML元素本身就带有的固有属性,只存在true/false的属性在处理时,使用prop方法。   

  Href, target, class, id   像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”

* 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

2. * 数组

    * Array.from(v) : 将伪数组对象或可遍历对象转换为真数组

    * Array.of(v1, v2, v3) : 将一系列值转换成数组

    * find(function(value, index, arr){return true}) : 找出第一个满足条件返回true的元素

    * findIndex(function(value, index, arr){return true}) : 找出第一个满足条件返回true的元素下标

3.* **Array.prototype.forEach(function(item, index){}) : 遍历数组**

  * **Array.prototype.map (function(item, index){}) : 遍历数组返回一个新的数组**

  * **Array.prototype.filter(function(item, index){}) : 遍历过滤出一个子数组**

Arr.forEach((num, index) => {return arr[index] = num * 2;});  

    arr = [2,4,6,8,10]. 

    forEach适合于你并不打算改变数据的时候,只是想用数据做一些事情—比如存入数据库或打印出来

    $( selector ).each( function( index, domEle ){ } )

let doubled = arr.map(num => {return num *2;});  

    doubled = [2,4,6,8,10] 

     适用于你要改变数据值的时候,返回一个新的数组

var numbers = [1,2,3,4,5,4,3,2,1];

var everyResult = numbers.filter(function(item,index,array){

    return item>2;

});

alert(everyResult);   //  [3,4,5,4,3]

4. 归并数组的方法reduce()

var values = [1,2,3,4,5];

var sum = values.reduce(function(prev,cur,index,array){

    return prev + cur;

});

alert(sum); //15

5. every() 调用every()并不能改变数组的值,只能检测数组中的每个值是否满足给定的条件。当遍历到某一个值不满足条件时,函数立即返回false,不再继续遍历。当数组中的每一个值都满足给定的条件时,函数返回true。

function isBigEnough(element, index, array) {

        console.log(element);

        return element >= 10;

}

[12, 5, 8, 130, 44].every(isBigEnough);

12

5

false

6. Object.keys()   遍历属性与方法,得到的是数组

    Object.assign()    结果:一个对象,但是相同的属性会覆盖前一个                                      该方法返回一个对象 o 自身包含(不包括原型中)的所有属性的名称的数组。

7. 模板字符串:如果我们现在要用到一个长字符串,这个字符串中,大部分内容是相同的,只有少部分内容要根据不同的条件进行更改,当然,我们可以把整个字符串拆开,然后使用字符串拼接的方式为这个字符串赋值。

插入表达式

在普通字符串中嵌入表达式,必须使用如下语法:

var a = 5;

var b = 10;

console.log('Fifteen is ' + (a + b) + ' and\nnot ' + (2 * a + b) + '.');

// "Fifteen is 15 and

// not 20."

现在通过模板字符串,我们可以使用一种更优雅的方式来表示:

var a = 5;

var b = 10;

console.log(`Fifteen is ${a + b} and

not ${2 * a + b}.`);

// "Fifteen is 15 and

// not 20."

8.new Promise((resolve, reject) => {

  $.ajax({

    url: 'http://happymmall.com/user/get_user_info.do',

    type: 'post',

    success(res) {

      resolve(res);

    },

    error(err) {

      reject(err);

    }

  });

}).then((res) => {

  console.log('sucess', res);

}, (err) => {

  console.log('error', err);

});

VM598:13 

sucess 

* {status: 1, msg: "用户未登录,无法获取当前用户的信息"}

    * msg
:
"用户未登录,无法获取当前用户的信息"
status
:
1
__proto__
:
Object

链式promise(之前是嵌套$.ajax)

promiseFn1.then(() = > {

  console.log('promiseFn1 success');

  return promiseFn2;

}).then(() => {

  console.log('promiseFn2 success');

});

9.类的继承

class Animal {

  constructor() {

    this.name = 'animal';

  }

  getName() {

    return this.name

  }

}

class Cat extends Animal {

  constructor() {

    super()

    this.name = 'cat';

  }

}

let animal = new Animal();

let cat    = new Cat();

console.log(animal.getName());

console.log(cat.getName());

//animal

//cat

对象的用法

猜你喜欢

转载自blog.csdn.net/qq_21747731/article/details/81078931