专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 JavaScript类型详解

JavaScript类型详解

更新时间:2022-02-18 10:36:44 来源:赢咖4 浏览691次

简单来说,类型有助于对可以执行常见操作的相似值进行分组。根据我们的数学知识,很容易确定可以对序列11、3、67和中的值求和89。同时,我们知道我们不能将下面的序列JS, is, 和中的值相乘cool,但是我们可以很自然地合并它们。数字和字符串是最流行的类型。

在编程语言中,类型决定了为保存值分配的内存量。值的类型还决定了允许对其执行的操作和方法。

JavaScript 有六种原语类型:string、number、undefined、null、boolean和symbol。还有一个复合类型或object。有趣的是,原始类型是不可变的并且没有属性。例如,由于String对象的原因,您可以检索字符串的长度。代码像魔术一样由解释器"a".length进行评估。new String("a").length还有对象Number、Boolean和Symbol,它们也将属性添加到自己的基元中。

JavaScript 中的类型看起来简单而无用,但了解它们的工作原理很重要。它们有助于更好地理解语言及其行为。

动态类型检查

类型是编程语言的主要基础之一。JavaScript 中的许多执行错误都是类型错误。例如,当我们尝试将 a 乘以 a 时number,我们会以返回string的形式得到一个静默错误。Not a Number您是否曾经调用过函数并收到错误undefined is not a function?当我们尝试访问未定义的属性时,就会发生这种情况。由于 Javascript 无法找到该属性,因此它返回其默认后备值:undefined.

另一个常见的与类型相关的错误是当我们尝试从值为nullor的值更改或访问属性时undefined。请记住,这里没有构造函数喜欢Undefined或Null拯救我们。我们最终得到一个错误。更不用说我们错误的值类型this并尝试禁止的东西的所有时间。

一个好的类型系统可以帮助我们避免这些常见的错误。根据定义,JavaScript 是一种解释型和动态语言,它要求类型系统在代码执行期间工作。该语言还尝试通过静默转换值类型来提供帮助。当您尝试将一个数字与包含一个数字的 a 相加2时,它对您有利。:sweat_smile:'3'string类型更改或强制是许多开发人员切换到严格使用===来检查值的相等性的原因,但它比修复强制,不是症状解释的要多得多。

本质上,JavaScript 中的类型是一个移动的目标,很难击中它们。此外,由于语言是弱类型的,并且该类型可能会改变,因此无法预测或确保变量类型。

静态类型检查

静态类型检查确保程序是正确的,至少在执行之前是静态的。在 JavaScript 中,还有其他方法可以注释值类型。它可以避免你对试图以疯狂的方式操作不同类型的用户产生错误。

下面的代码计算 a 的价格Product。从第 4 行到第 6 行,我们使用Flow注释定义Product属性的类型。其余代码是纯 JavaScript,但请注意第 19 行的值不兼容。这是一种赋予您价值的代码。幸运的是,Flow 分析器会在编写代码时警告您了解潜在的错误。

/* @flow */
class Product {
  name: string
  cost: number
  tax: number
  constructor (name, cost, tax) {
    this.name = name
    this.cost = cost
    this.tax = tax
  }
  price() {
    return this.cost * (1 + this.tax)
  }
}
const item = new Product("Banana", 2, "%30")

Flow 批注允许您定义所有不同的原语、 对象、构造函数/类(Date、、Array...),甚至是字面量。有一些高级类型,比如任何接受所有类型的类型;可以为空或可能,以指示类型或null;以及 类型和接口的联合和交集(更多关于下面的内容)。

恕我直言,最强大的注释是新类型或别名,它们允许您为一组类型命名以获取专有属性;定义上下文所关注的一组非排他性的重要属性或方法的接口;和泛型。最后一个,允许您定义数组值的类型或Promise例如结果的类型。

根据Kris Jenkins的说法,通过类型定义,可以预测设计问题。返回许多不同类型的函数可能意味着计划中的错误。新类型的创建有助于程序员定义问题的实体。在任何情况下,类型注释都是编写更安全、更易理解的代码的好资源。

以上就是关于“JavaScript类型详解”的介绍,大家如果对此比较感兴趣,想了解更多相关知识,不妨来关注一下赢咖4的Java赢咖4在线学习,里面的课程内容从入门到精通,很适合没有基础的小伙伴学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>