数组方法总结

1. concat()

1
2
3
4
5
语法: arr1.concat(arrayX,arrayX,......,arrayX)
返回值:一个连接新数组,包含了arr1和所有arrayX
参数:arrayX:可以是具体元素值,也可以是数组,数量是任意
作用:连接两个或多个数组
缺点:效率低

示例1:

1
2
3
let arr1 = [1, 2, 3];
let resArr = arr1.concat(4, 5)
console.log(resArr);// [1, 2, 3, 4, 5]

前言

安装vue-cli3.0

因为我电脑之前有装了vue-cli2的,所以要先卸载以前的版本,再安装新的版本。

npm uninstall vue-cli -g

然后再安装新版本

npm install -g @vue/cli 

安装成功后用vue -V查看,发现还是2.9.x版本,我看了一下node版本是符合要求的,然后我真是的一脸懵逼。然后网上搜了下,最后找到了一个解决办法(window系统有遇到这个问题,mac没有)。

  1. 把node完全卸载了,文件也删除干净。
  2. 然后下载nvm,下载传送门,选择相应的版本,然后选择下载nvm-setup.zip这个包,然后安装成功后,命令行输入nvm,会出现nvm版本号和一系列指令。
  3. 命令行输入 nvm install node版本号,就可以安装相应版本的node,最后nvm use node版本号使用指定版本的node
  4. 最后在命令行输入npm install -g @vue/cli,发现输出终于是3.x了,欢呼!!

一、 为什么用正则表达式

我们去学习某个新技能,肯定是因为它有某些实用价值,它能解决某些问题,能提高某些方面效率。

正则表达式也是如此。

正则表达式是匹配模式,

正则表达式能做的事情:

  1. 验证
    • 表单验证
  2. 切分
    • “2019-05-25这一天,我们去密室逃脱.”切分出日期
    • 切分出url的参数
  3. 提取
    • ”2019-05-28“提取出年月日
  4. 替换
    • 替换空格等

总的来说,正则表达式可以用来匹配字符,也可以匹配位置,可以使我们少写很多行代码。

prtotype和proto

说到原型,我们必须要了解prototype和proto,这两个很多人可能总是会分不清,接下来我会尽可能以通俗易懂的语言去解释这两者的不同。

我们看到的大多数引用类型值:函数,数组,对象都是Object的实例,所以Object可以说是一个基本。

我们去创建一个Object的实例,有两种方法,一种是通过new

例如:

var obj = new Object()

还有一种通过对象字面量

var obj = {}  

每个构造函数都有一个原型对象,通过prototype去访问,比如Object.prototype,然后这个原型对象包含一个constructor属性,指向构造函数,也就是Object.prototype.constructor === Object,还包含了一些内置函数,或者自定义的函数。

然后实例化这个构造函数,得到的实例,有一个proto属性指向构造函数的原型对象。

下面是Object的一个例子。

所以我们可以看到obj.proto=== Object.prototype

总结:

  1. 每个函数都有prototype指向原型对象
  2. 每个对象都有protot指向构造函数的原型对象

在js中,函数是一种特殊的对象,所以函数也有proto

this

第一段代码

var count = 1;
function a () {
    this.count ++
    console.log(this.count)
}
a.count = 0;
a()
console.log(a.count)

谣言: this指向自身

第二段代码

重要的事情说三遍

this永远指向最后调用它的对象

this永远指向最后调用它的对象

this永远指向最后调用它的对象

一、js引擎执行过程

var a;
console.log(a);
console.log(b);

输出?

a = 2;
var a;
console.log(a);

输出?

console.log(a);
var a = 2;

输出?

我们之前说过js代码是由上到下去执行的,但是上面代码的输出结果好像显示的不是这样,其实不是的,js代码确实是由上到下去执行的,只是执行的不是我们直接写的代码,而是我们代码通过编译后生成的代码。

我们可以将js引擎执行过程分为三个阶段,分别是语法分析,预编译和解释执行阶段。

0.1. 前言

0.1.1. ES5,ES6和JavaScript的关系

众所周知,JavaScript是一位网景公司的奇人布兰登艾奇花了十天就开发出来的。一开始JavaScript叫LiveScript,当时Java特别火,为了蹭个热度,网景公司将其改名成了JavaScript。

微软在IE3的时候加入了JavaScript的实现,为了避免纠纷,命名为JScript。还有其他公司自己研发了JavaScript,所以这样兼容性就称为一个很头疼的事情,所以业内人士强烈呼吁定制一个标准。

1996年,网景公司将JavaScript提交给国际标准化组织ECMA,次年,该组织发布了浏览器脚本语言的标准,并将这种语言称为ECMAScript,也就是我们常说的ES。所以ES是一种标准,JavaScript是ES的实现。

ES5是指ECMAScript5.0,ECMAScript5.1版本,ES6是泛指,指5.1版本以后的JavaScript的下一代标准。

D3.js入门实例-3D方柱

最近由于项目需要去实现3D可视化,所以学了一下D3.js。使用版本是v4.x。

Git浅解

一、为什么选择Git

比如我们写东西的时候刚开始写了一部分,先保存为了文章1,然后后续写的时候,改了一些东西,删除了之前的一部分,但是你又可能需要之前的部分,所以你会另存为文章2,所以这样下去,等你的文章写完,可能会有文章1,2,3,4。。。很多个副本,然后你想去找其中的一段,但是又可能不记得在哪了,所以要一个个文件查看,这样就没有效率,重复做了很多事情,而且很乱。

然后Git可以帮你解决这些问题,它能帮我们记录每次文件的改动,而且可以多人协同完成,这样我们可以快速,高效的进行版本管理。

GIt是分布式版本控制系统。

Git不需要联网,每个人都可以拷贝一份完整的版本库到本地,然后在本地进行一系列操作。

二、学习Git前须知

(1)git文件的四种状态

  1. modified 修改了,但没有被保存在本地版本库
  2. staged(已暂存)
  3. untracked()
  4. commit(已提交)

(2)git的五个区域

三、一般使用Git的流程

DOM扩展

一、选择符API(重要)

平时我们写代码的时候最常用的一个操作就是根据css选择符选择与某个模式匹配的DOM元素,比如$(“css选择符”)。但是用jquery的话我们必须引用jquery库。现在我们可以不需要引js库就可以实现这个功能。

选择符API的核心是两个方法:querySelector()和querySelectorAll()。还有一个matchesSelector()方法。

Document、Element,DocumentFragment三种类型的元素都有这两个方法。