这篇文章主要介绍了JavaScript类型有哪些及怎么掌握的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript类型有哪些及怎么掌握文章都会有所收获,下面我们一起来看看吧。
简单来说,类型有助于对可以执行常见操作的相似值进行分组。根据我们的数学知识,很容易确定可以对序列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类型有哪些及怎么掌握”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“JavaScript类型有哪些及怎么掌握”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。