JS开发笔记(一)

1.通过串联起来的点操作符或中括号操作符来访问JSON对象的嵌套属性

var ourStorage = {
"desk": {
"drawer": "stapler"
},
"cabinet": {
"top drawer": {
"folder1": "a file",
"folder2": "secrets"
},
"bottom drawer": "soda"
}
}
ourStorage.cabinet["top drawer"].folder2; // "secrets"
ourStorage.desk.drawer; // "stapler"

2.Math操作

1.Math.random() 生成一个随机小数
2.用 Math.floor() 向下取整 获得它最近的整数。

function myFunction() {

  // 生成一个 0 到 9之间的随机整数。
  return  Math.floor(Math.random() * 10);
}


3.正则表达式

正则表达式被用来根据某种匹配模式来寻找strings中的某些单词
1.举例:如果我们想要找到字符串The dog chased the cat中单词 the,我们可以使用下面的正则表达式: /the/gi

/ 是这个正则表达式的头部
the 是我们想要匹配的模式
/ 是这个正则表达式的尾部
g 代表着 global(全局),意味着返回所有的匹配而不仅仅是第一个。
i 代表着忽略大小写,意思是当我们寻找匹配的字符串的时候忽略掉字母的大小写。

var testString = "Ada Lovelace and Charles Babbage designed the first computer and the software that would have run on it.";

// 举例
var expressionToGetSoftware = /software/gi;
var softwareCount = testString.match(expressionToGetSoftware).length;
//结果是获取software单词的个数
  
// Only change code below this line.

var expression = /and/gi;  // Change this Line

// This code counts the matches of expression in testString
var andCount = testString.match(expression).length;

2.特殊选择器中的一种就是数字选择器\d,意思是被用来获取一个字符串的数字。

在JavaScript中, 数字选择器类似于: /\d/g。

在选择器后面添加一个加号标记(+),例如:/\d+/g,它允许这个正则表达式匹配一个或更多数字。

尾部的g是'global'的简写,意思是允许这个正则表达式 找到所有的匹配而不是仅仅找到第一个匹配

// Setup
var testString = "There are 3 cats but 4 dogs.";

// Only change code below this line.

var expression = /\d+/g;  // Change this line

// Only change code above this line

// This code counts the matches of expression in testString
var digitCount = testString.match(expression).length;

3.我们也可以使用正则表达式选择器 \s 来选择一个字符串中的空白
\s 匹配任何空白字符,\S 匹配任何非空白字符。。

空白字符有 " " (空格符)、\r (回车符)、\n (换行符)、\t (制表符) 和 \f (换页符)。

空白正则表达式类似于:

/\s+/g

// Setup
var testString = "How many spaces are there in this sentence?";

var expression = /\s+/g;  // Change this line

// This code counts the matches of expression in testString
var spaceCount = testString.match(expression).length;

4.JS创建对象

1.创建对象

1
var car = {
  "wheels":4,
  "engines":1,
  "seats":5
};
//构造函数创建
var Car = function() {
  this.wheels = 4;
  this.engines = 1;
  this.seats = 1;
};
//构造函数 中添加 参数 
//Try it out here
var Car = function(wheels,seats,engines){
  
  this.wheels = wheels;
  this.seats = seats;
  this.engines = engines;
  
};

var myCar =  new Car(6, 3, 1);

2.创建私有对象,只可以通过getSpeed方法访问该对象

var Car = function() {
  // 创建一个私有对象
  var speed = 10;

  // public方法
  this.accelerate = function(change) {
    speed += change;
  };

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

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

5.数组操作的方法

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

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

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

var newArray = oldArray.map(function(val){
  
  return val + 3;
});

//
```
2.reduce方法:数组方法 reduce 用来迭代一个数组,并且把它累积到一个值中。
使用 reduce 方法时,你要传入一个回调函数,这个回调函数的参数是一个 累加器 (比如例子中的 previousVal) 和当前值 (currentVal)。
reduce 方法有一个可选的第二参数,它可以被用来设置累加器的初始值。如果没有在这定义初始值,那么初始值将变成数组中的第一项,而 currentVal 将从数组的第二项开始。
```
var array = [4,5,6,7,8];
var singleVal = 0;

// 遍历数组相加
singleVal = array.reduce(function(previosVal,cur){
  //结果等于30
  return previosVal + cur;
});
//下面的例子使用了 reduce 来让数组中的所有值相减:
 var singleVal = array.reduce(function(previousVal, currentVal) {
      return previousVal - currentVal;
    }, 0);
```
3 . filter 方法用来迭代一个数组,并且按给出的条件过滤出符合的元素。
filter 方法传入一个回调函数,这个回调函数会携带一个参数,参数为当前迭代的项(我们叫它 val )。
回调函数返回 true 的项会保留在数组中,返回 false 的项会被过滤出数组
```
//使用 filter 来创建一个新数组,新数组的值是 oldArray 中值小于6的元素。不改变原数组 oldArray 
var oldArray = [1,2,3,4,5,6,7,8,9,10];

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

var newArray = oldArray.filter(function(val){
  return val <6;
});
```
4.使用 sort 方法,你可以很容易的按字母顺序或数字顺序对数组中的元素进行排序。
与我们之前用的数组方法仅仅返回一个新数组不同, sort 方法将改变原数组,返回被排序后的数组。
sort 可以把比较函数作为参数传入。比较函数有返回值,当 a 小于 b,返回一个负数;当 a 大于 b ,返回一个正数;相等时返回0。
```
//下面的例子将展示 sort 的使用,传入的比较函数把元素按照从小到大的顺序进行排列:
    var array = [1, 12, 21, 2];
    array.sort(function(a, b) {
      return a - b;
    });
```
5.你可以使用 reverse 方法来翻转数组。

    var myArray = [1, 2, 3];
    myArray.reverse();

6.concat 方法可以用来把两个数组的内容合并到一个数组中。
```
下面是一个拼接数组的例子,用concat 把 otherArray 拼接在 oldArray 的后面:
newArray = oldArray.concat(otherArray);
```

你可能感兴趣的:(JS开发笔记(一))