1.leetcode509-斐波那契数
斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1
给定 n ,请计算 F(n) 。
var fib = function (n) {
if (n == 0 || n == 1) {
return n;
}
return fib(n - 1) + fib(n - 2);
};
解题思路:
1.找到最开始的那一项,基本上是(传入的参数n)==(函数的返回值F(n)),如果n为数字,一般是0或1,或者是null。
2.第二步return 值只看最后一项需要什么结果,然后把结果相关的参数传入到 fib()函数中;相当于 fib(n ) = fib(n - 1) + fib(n - 2)。
2.dist文件怎么生成?
TS文件中在终端用命令tsc;Vue文件在终端用npm run build。
3.面试官问到当一个表达式里有很多if,你会怎么优化?
他在考察设计模式
4.面向对象的三要素:
继承(子类继承父类)
封装(数据的权限和保密)
多态(同一接口不同实现)
5.面向对象的两个概念:类和实例;可以通过类这个模板实例化很多对象。
//类中有两个:属性;函数或方法(动作)
//父类
class People{
constructor(name,age){
this.name=name;
this.age=age;
}
eat(){
alert(`${this.name} eat something`)
}
speak(){
alert(`My name is ${this.name}, age ${this.age}`)
}
}
//实例
let zhang=new People('zhang',20);
let wang=new People('wang',22);
6.继承举例
//子类
class Student extends People{
constructor(name,age,number){
puper(name,age)
this.number=number;
}
study(){
alert(`${this.name} study`)
}
}
//实例
let xiaoming= new Student('xiaoming', 10 , 'A1');
xiaoming.study();
onsole.log(xiaoming.number);
xiaoming.eat();
let xiaohong= new Student('xiaohong', 12 , 'A2');
xioahong.study();
xiaohong.speak();