js+ts

271 阅读3分钟

forEach循环和.map()循环的主要区别

forEach

  • 遍历数组中的元素。
  • 为每个元素执行回调。
  • 无返回值。

map

  • 遍历数组中的元素
  • 通过对每个元素调用函数,将每个元素“映射(map)”到一个新元素,从而创建一个新数组。 .forEach 和 .map() 的主要区别在于 .map() 返回一个新的数组。如果你想得到一个结果,但不想改变原始数组,用 .map()。如果你只需要在数组上做迭代修改,用 forEach

Promise代替回调函数有什么优缺点?

  • 避免可读性极差的回调地狱。
  • 使用.then()编写的顺序异步代码,既简单又易读。
  • 使用Promise.all()编写并行异步代码变得很容易。

==和===的区别是什么

== 是抽象相等运算符,而 === 是严格相等运算符。== 运算符是在进行必要的类型转换后,再比较。=== 运算符不会进行类型转换,所以如果两个值不是相同的类型,会直接返回 false 。使用 == 时,可能发生一些特别的事情

什么是类型断言

类型断言允许程序员手动指定一个值的类型。这在需要明确告诉编译器某个值的类型时非常有用

const和readonly的区别

const用于声明常量值。一旦被赋值后,其值将不能被重新赋值或修改。 常量必须在声明时就被赋值,并且该值不可改变。 常量通常用于存储不会发生变化的值,例如数学常数或固定的配置值。

readonly关键字用于标记类的属性,表明该属性只能在类的构造函数或声明时被赋值,并且不能再次被修改。 readonly属性可以在声明时或构造函数中被赋值,但之后不能再被修改。 readonly属性通常用于表示对象的某些属性是只读的,防止外部代码修改这些属性的值。

总结来说,const主要用于声明常量值,而readonly则用于标记类的属性使其只读。

TypeScript 中 any 类型的作用是什么,滥用会有什么后果

1、代码可读性下降 2、类型安全受损 3、潜在的运行时错误

TypeScript数据类型

在TypeScript中,常见的数据类型包括以下几种:

  • 基本类型

    • number: 表示数字,包括整数和浮点数。
    • string: 表示文本字符串。
    • boolean: 表示布尔值,即truefalse
    • nullundefined: 分别表示null和undefined。
    • symbol: 表示唯一的、不可变的值。
  • 复合类型

    • array: 表示数组,可以使用number[]Array<number>来声明其中元素的类型。
    • tuple: 表示元组,用于表示固定数量和类型的数组。
    • enum: 表示枚举类型,用于定义具名常量集合。
  • 对象类型

    • object: 表示非原始类型,即除number、string、boolean、symbol、null或undefined之外的类型。
    • interface: 用于描述对象的结构,并且可以重复使用。
  • 函数类型

    • function: 表示函数类型。
    • void: 表示函数没有返回值。
    • any: 表示任意类型。
  • 高级类型

    • union types: 表示一个值可以是几种类型之一。
    • intersection types: 表示一个值同时拥有多种类型的特性。