前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简单地说说TypeScript中的let

简单地说说TypeScript中的let

原创
作者头像
软件工程师Michael
发布2023-05-29 21:26:06
3600
发布2023-05-29 21:26:06
举报

TypeScript面向对象实例:

代码语言:javascript
复制
class Car {
  private _make: string;
  private _model: string;
  private _year: number;

  constructor(make: string, model: string, year: number) {
    this._make = make;
    this._model = model;
    this._year = year;
  }

  get make(): string {
    return this._make;
  }

  set make(make: string) {
    this._make = make;
  }

  get model(): string {
    return this._model;
  }

  set model(model: string) {
    this._model = model;
  }

  get year(): number {
    return this._year;
  }

  set year(year: number) {
    this._year = year;
  }

  drive(): void {
    console.log(`Driving a ${this._year} ${this._make} ${this._model}`);
  }
}

class SportsCar extends Car {
  private _topSpeed: number;

  constructor(make: string, model: string, year: number, topSpeed: number) {
    super(make, model, year);
    this._topSpeed = topSpeed;
  }

  get topSpeed(): number {
    return this._topSpeed;
  }

  set topSpeed(topSpeed: number) {
    this._topSpeed = topSpeed;
  }

  drive(): void {
    console.log(`Driving a ${this.year} ${this.make} ${this.model} at top speed ${this._topSpeed}`);
  }
}

let myCar: Car = new Car("Ford", "Mustang", 2021);
myCar.drive();

let mySportsCar: SportsCar = new SportsCar("Lamborghini", "Aventador", 2021, 350);
mySportsCar.drive();

输出结果如下:

代码语言:javascript
复制
Driving a 2021 Ford Mustang
Driving a 2021 Lamborghini Aventador at top speed 350

var可以进行变量提升,而let是块级作用域,不可以进行变量提升。

在JavaScript中,变量提升指的是在代码执行之前,JavaScript引擎会将所有声明过的变量和函数声明提升至作用域的顶部,无论是否在代码的顶部声明。

代码语言:javascript
复制
console.log(a); // undefined
var a = 10;

console.log(func()); // "Hello world!"
function func() {
  return "Hello world!";
}

在上面的例子中,变量a和函数func都被提升到了作用域的顶部。这意味着即使在代码的顶部没有声明变量或函数,它们也可以在代码的后面使用。

在实际开发中,建议在代码的顶部声明所有变量和函数,以提高代码的可读性和可维护性。同时,在使用变量或函数时,也要注意它们是否已经声明过,避免因变量提升而导致的意想不到的错误。

前端中的var和let哪个执行效率更高呢?

在执行效率方面,let比var更高效。因为let是块级作用域,在代码块执行完毕后会自动释放内存,而var则是函数作用域,不会自动释放内存,因此会占用更多的内存。同时,let也可以实现更严格的变量声明和限制,可以避免一些潜在的问题。所以建议尽量使用let,较少使用var。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档