您的位置:首页 > Web前端 > JavaScript

Free Code Camp 练习总结(二) —— JavaScript 基本知识 Object Oriented and Functional Progra

2018-07-16 23:20 447 查看

我会每天都更新我写东西,学大概有一段时间了,我感触还是挺大的,把之前基础知识又复习一遍,活到老学到老。希望能给在FreecodeCamp有同学有帮助,我会每天更新我在写FreecodeCamp,代码。

现在让我们开始学习最流行的JavaScript库jQuery吧,不用担心JavaScript本身,我们稍后会提到它,我现在开始接上面Basic front End Development Proiects 继续更新内容,希望跟大家学习交流。

#239 Declare JavaScript Objects as Variables

在我们深入面向对象编程之前,让我们先回顾一下Javascript 的对象(Object)

var motorBike = {

  // 只能在这一行下面写代码
  "wheels":8,
  "engines":6,
  "seats":9

};

#240  Construct JavaScript Objects with Functions

除了上一种方法外,我们还可以使用构造函数来创建对,构造函数通常使用大写字母开头,以便把自己和其他普通函数区别开。

var MotorBike = function() {
  this.wheels =4;
  this.engines =1;
  this.seats=1;
};

#241  Make Instances of Objects with a Constructor Function

我们写的构造函数在这里用起来:

var Car = function() {
  this.wheels = 4;
  this.engines = 1;
  this.seats = 1;
};

// 只能在这一行下面写代码

var myCar = new Car();

myCar.nickname  = "youyouxiong";

#242  Make Unique Objects by Passing Parameters to our Constructor

为了解决这个问题,我们要向构造函数添加参数。

var Car = function(wheels,seats,engines) {
  //Change this constructor
  this.wheels = wheels;
  this.seats = seats;
  this.engines = engines;
};

//Try it out here
var myCar = new Car(3,1,2) ;
#243  Make Object Properties Private

var Car = function() {
  // this is a private variable
  var speed = 10;

  // these are public methods
  this.accelerate = function(change) {
    speed += change;
  };

  this.decelerate = function() {
    speed -= 5;
  };

  this.getSpeed = function() {
    return speed;
  };
};

var Bike = function() {

  // 只能在这一行下面写代码
  var gear;
  this.setGear = function(num){
    gear = num; 
  };
  this.getGear = function()
  {
    return gear;
  };

};

var myCar = new Car();

var myBike = new Bike();
私有变量gear,通过对象属性的方式不能访问,通过setGear方法来访问

#244 Iterate over Arrays with map

map方法会迭代数组中的每一个元素,并根据回调函数处理每一个元素,最后返回一个新数组,注意这个方法不改变原始数组。

使用

map
方法来为
oldArray
中的每一项增加3,并且在
newArray
中保存它们。
oldArray
不应该被改变。

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

// 只能在这一行下面写代码

var newArray = oldArray.map(function(val){
      return val +=3;
    });
#245 Condense arrays with reduce

数组方法reduce 用来迭代一个数组,并且把它累计到一个值中。

使用reduce方法是,你要传入一个回调函数,这个回调函数的参数是一个累加器(比如例子中的previousVal)和当前值(currentVal).

reduce方法有一个可选的第二参数,它可以被用来设置累加器的初始值。如果每天在这定义初始值,那么初始值将变成数组中低第一项,而currentVal将从数组的第二项开始。

var array = [4,5,6,7,8];
var singleVal = 0;

// 只能在这一行下面写代码

 singleVal = array.reduce(function(previousVal,currentVal){
  return previousVal+currentVal;
},0);
#246  Filter Arrays with filter

fiter 方法用来迭代一个数组,并且按给出的条件过滤出符合的元素。

filter方法传入一个回函数,这个回调函数会携带一个参数,参数为当前迭代的项(我们叫它val)

回调函数返回true的项保留在数组中,返回false的项会被过滤出数组。

var oldArray = [1,2,3,4,5,6,7,8,9,10];

// 只能在这一行下面写代码

var newArray = oldArray.filter(function(val){
  return val <6;
});
#247  Sort Arrays with sort

 使用sort方法,你可以很容易的按照字母顺序或者数字顺序对数组中的元素进行排序。

与我们之前用的数组方法不仅仅返回一个新数组不同,sort方法将改变原数组,返回被排序后的数组。

 

sort
可以把比较函数作为参数传入。比较函数有返回值,当
a
小于
b
,返回一个负数;当
a
大于
b
,返回一个正数;相等时返回0。

如果没有传入比较函数,它将把值全部转成字符串,并按照字母顺序进行排序。

var array = [1, 12, 21, 2];

// 只能在这一行下面写代码

array.sort(function(a,b){
  return b -a ;
});
#248 Reverse Arrays with reverse

可以使用reverse方法来翻转数组。

var array = [1,2,3,4,5,6,7];
var newArray = [];

// 只能在这一行下面写代码

newArray = array.reverse();
#249  Concatenate Arrays with concat

concat 方法可以用来把两个数组的内容合并到一个数组中。

concat方法的参数应该是一个数组。参数中的数组拼接在原数组的后面,并作为一个新数组返回。

var oldArray = [1,2,3];
var newArray = [];

var concatMe = [4,5,6];

// 只能在这一行下面写代码

newArray = oldArray.concat(concatMe);
#250  Split Strings with split

你可以使用split方法按指定分隔符将字符串分割数组。

你要给split方法传递一个参数,这个参数将会作为一个分隔符。

var string = "Split me into an array";
var array = [];

// 只能在这一行下面写代码

array = string.split(" ");

#251 Join Strings with join

我们还可以使用Join 方法来把数组转换字符串,里面的每一个元素可以用你指定的连接符连接起来,这个连接符就是你要传入的参数。

var joinMe = ["Split","me","into","an","array"];
var joinedString = '';

// 只能在这一行下面写代码

joinedString = joinMe.join(" ");
 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: