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