第二天
- javascript 数组 concat 函数?
答:concat 用来连接两个或两个以上array,这方法并不会改变存在的array,而是返回一个新array。
var new_array = old_array.concat(value1, value2, ...)
// value若为数组,则数组元素添加到new_array里,若value为非数组,则本身添加到new_array里。
concat有很多要注意的地方,详见 MDN
- javascript 类的构造函数(constructor)?
答:构造函数是类中很 special 的函数,用来创建和初始化类的实例对象。
// 注意1:在派生类中,super() 必须在使用 this 之前调用,不然会发生引用错误。
class Square extends Polygon {
constructor(length) {
// Here, it calls the parent class' constructor with lengths
// provided for the Polygon's width and height
super(length, length);
// Note: In derived classes, super() must be called before you
// can use 'this'. Leaving this out will cause a reference error.
this.name = 'Square';
}
}
// 注意2:虽然派生类的原型在定义之后可以代码改变,但当重新 new 一个派生类实例时,基类的构造函数仍然会调用
constructor 详见 (MDN)[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/constructor]
- JSX语法?
答:类似<Button></Button>,使得组件具有了声明性,易于编程,寻找问题。JSX语法浏览器读不懂,但是可以通过babel解析器来转为浏览器能够读懂的普通js代码。
这个概念是 React 中的概念。React
- Babel ?
答:能够把JSX语法转为普通的javascript代码;能够把 ES6 转为 ES5,可以解决浏览器兼容不同javascript版本。
- git 删除本地分支 -d -D?
答:git branch -d <branchName> 或 git branch -D <branchName>。有的时候我们在branchA 上使用 -d 删除 branchB 时,git会报 the branch XXX is not fully merged(branchB 上有一些内容没有完全合并到 branchA 上)。-D 强制删除 branchB,会忽略这个问题。
- git 删除远程分支?
答:git push origin -d <branchName>。
- git 打本地 tag ?
答:git tag -a <tagName> -m 'description'。
- git 删除远程 tag ?
答:git push origin -d tag <tagName>。
和删除远程分支类似。
- git 推送远程 tag ?
答:git push origin <tagName>。
- git lfs 模式?
答:在 git repositories 中,git lfs 工作于大文件。
Git lfs 是一个系统,能够对管理和版本记录关联了 git repository 的大文件。
Git lfs 并不会把实际文件内容存在仓库中,而是存在 Git LFS server上,Git lfs 只存储一个文件指针。当需要时,大的文件会自动下载,例如:check out 一个包含大文件的branch。
当包含一个新的大文件版本 commit 将要 push 到对应的 Git Server 时,Git lfs 会提前 push 大文件的内容到 Git LFS Server 上。
- git submodule 模式?
答:子模块。Ref。