工作日报_13

208 阅读2分钟

2020年5月15日 星期五

世界上最遥远的距离就是周一到周五,O(∩_∩)O!没错今天就到周五了。

好了言归正传吧,今天呢就是把专业题进行了一个背诵,然后老大给我们讲了一个新的知识点TypeScript:自己呢也对这个新东西进行一个初步的了解,然后还讲了一道非常经典的面试题,最后面呢分享给大家

1.TypeScript是由微软开发的一款开源的编程语言。

2.TypeScript是JavaScript的超集,遵循最新的ES5,ES6,的规范,TypeScript扩展了JavaScript的语法

3.TypeScript更像是后端的java、c#这样的面向对象的语言,可以让js开发大型的企业项目。

4.包括最新版本的Vue、React也可集成使用TypsScript。

5.Nodejs框架Nestjs、midway中就是用的TypeScript语法。

6.typeScript和js是包含被包含的关系

typescript的下载

    npm install -g typescript

运行:

tsc helloworld.ts

typescript在编译时呢有一个类型检查,可见语法时相当的严格的

function run(name:string, age:number){
  console.log(name,age);
}
run("ss", 18);
//run(6, 18);//报错 Argument of type '6' is not assignable to parameter of type 'string'```

typescript呢对于数据类型主要分为四类:

1、基础类型

    let name:string = "ss";
    let age:number = 15;
    let n:null = null;//也可以是undefined
    let und:undefined = undefined;//也可以是null
    let s2:boolean = false;
    let s1:String = "src";//类类型
    
2、数组与元组

    let arr1:number[] = [12, null];//只能是数字或是null、undefined
    
    let arr2:Array<number> = [];
    
    //元组 下面的原组 前两位必须对应 后面必须是两种类型之一 可以是
    null或undefined
    
    let tuple:[number,string] = [12,"ss"];
    
    tuple[2] = 18;
    
    tuple[5]= "ff";
    
    // tuple[4] = false;//不能是false
    
    console.log(tuple)//[ 12, 'ss', 18, <2 empty items>, 'ff' ]
    
    }
    
3、枚举

    使用枚举我们可以定义一些带名字的常量,TypeScript支持数字的和基于字符串的枚举。
    
    enum M1{
    
      A,B//默认从0开始,往后默认加1
      
    }
    
    function Foo(a:M1){
    
      switch(a){
      
        case M1.A :
        return "aaaaa";
        case M1.B:
        return "bbbbb";
        default:
        console.log(M1.A);//0
        console.log(MT1.B);//1
        return "defalult";
      }
      
    }
    
    console.log(Foo(undefined));
    
4、任意类型 (any)
    
    这个any类型呢不要擅自使用,因为js 代码会自行转译类型 ‘导致报错’;
    let t: any = 10;
    t = 'hello'
    void:
    let unusable: void = undefined;

一道非常经典的面试题:

function Foo() {

var  getName = function () { alert(1) }

return this;  //window

}

//特权方法
Foo.getName = function () { alert(2) }

Foo.prototype.getName = function () { alert(3) }
var getName = function () {  alert(4)}
function getName() { alert(5) }

//第一个运行结果:
Foo.getName();  //2
getName()  //4
Foo().getName(); //1
getName(); //1
new Foo.getName(); // 2
new Foo().getName();  //3

new new Foo().getName(); //3