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);
```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 197,099评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,846评论 2 374
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 144,146评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,789评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,656评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,467评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,870评论 3 389
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,500评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,790评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,828评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,628评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,449评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,881评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,077评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,376评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,879评论 2 343
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,089评论 2 338

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,197评论 0 4
  • 三,字符串扩展 3.1 Unicode表示法 ES6 做出了改进,只要将码点放入大括号,就能正确解读该字符。有了这...
    eastbaby阅读 1,498评论 0 8
  • 初衷:看了很多视频、文章,最后却通通忘记了,别人的知识依旧是别人的,自己却什么都没获得。此系列文章旨在加深自己的印...
    DCbryant阅读 3,975评论 0 20
  • 这个夏天 风神雷神度假去了 只有雨神留下来值班 于是雨一直下个没完 无风亦无雷 若要问苍天 此雨何时歇 要待风雷度...
    一元真人阅读 164评论 2 8
  • 秋雨, 寒意。 发现自己患了很严重的失忆,片段记忆会消失,说不定在之后的某个时段再回忆出来。本来我就试图欺骗自己去...
    迷途不知返Stacey阅读 108评论 0 0