A-A+

细说javascript中的数据类型

2018年11月01日 javascript, 前端基础 评论 4 条

 

JavaScript中的变量可以包含任何数据。变量先是字符串,然后接受赋值为数值型数据:

// 不会报错

let message = "hello";
message = 123456;

允许这样操作编程语言称为“动态类型语言”,这意味着存在数据类型,但变量不会绑定到任何数据类型上。JavaScript中有七种基本数据类型。在接下来的章节中,我们将详细讨论它们。

Number 数值型


let n = 123;

n = 12.345;

Number型可以存储整数和浮点型数据。
Number有许多操作,例如乘法*,除法/,加法+,减法-等。
除了常规的数字,有所谓“特殊的数值”,这也属于该类型:Infinity-InfinityNaN

  • Infinity代表数学无穷大 ∞。这是一个比任何数字都大的特殊值。
    我们可以通过零除以得到它:

    或者直接在代码中提及它:

  • NaN表示计算错误。它是不正确或未定义的数学运算的结果,例如:

    NaN很粘。任何进一步的操作NaN都会给出NaN

    所以,如果NaN数学表达式中有某个地方,它会传播到整个结果。

数学运算是安全的

在JavaScript中进行数学运算是安全的。我们可以做任何事情:除以零,将非数字字符串视为数字等。
该脚本永远不会因致命错误(“死亡”)而停止。在最坏的情况下,我们会得到NaN结果。

特殊数值正式属于“数字”类型。当然,它们不是这个词的常识中的数字。

String 字符串

javascript中,字符串用英文状态的单引号或者双引号或者反引号括起来。

在JavaScript中,有3种类型的引号。

  1. 双引号:"Hello"
  2. 单引号:'Hello'
  3. 反引号:Hello

双引号和单引号是“简单”引号。它们在JavaScript中没有区别。
反引号是“扩展功能”引用。它们允许我们通过将变量和表达式包装在一个字符串中来嵌入它们${…},例如:

let name = "John"; // embed a variable
alert( Hello, ${name}! ); // Hello, John!
// embed an expression
alert( the result is ${1 + 2} ); // the result is 3

计算内部表达式${…},结果成为字符串的一部分。我们可以把任何东西放在那里:变量像name或算术表达式1 + 2或更复杂的东西。
请注意,这只能在反引号中完成。其他引号不允许这样的嵌入!

我们将在字符串章节中更全面地介绍字符串。

没有char类型。

在某些语言中,单个字符有一种特殊的“字符”类型。例如,在C语言和Java中char
在JavaScript中,没有这种类型。只有一种类型:string。字符串可能只包含一个字符或多个字符。

布尔值(逻辑类型)

布尔类型只有两个值:truefalse
此类型通常用于存储是/否值:true表示“是,正确”,false表示“不,不正确”。
例如:

布尔值也是比较的结果:

“null”值

特殊null值不属于上述任何类型。
它形成了一个独立的类型,它只包含以下null值:

在JavaScript null中,不是“对不存在的对象的引用”或者像其他语言中的“空指针”。
它只是一个特殊的价值,具有“无”,“空”或“价值未知”的感觉。
上面的代码表明age由于某种原因,它是未知的或空的。

undefined

特殊价值undefined与众不同。它就是一种自己的类型null
意思undefined是“没有分配值”。
如果声明了变量但未分配值,那么它的值恰好是undefined

从技术上讲,可以分配undefined给任何变量:

......但不建议这样做。通常,我们使用null在变量中写入“空”或“未知”值,并undefined仅用于检查,以查看变量是否已分配或类似。

Objects and Symbols

object类型是特殊的。
所有其他类型都称为“原始”,因为它们的值只能包含一个东西(无论是字符串,数字还是其他)。相反,对象用于存储数据集合和更复杂的实体。。
symbol类型用于为对象创建唯一标识符。我们在这里必须提到它的完整性,但最好在对象之后研究它们。

typeof运算符

typeof运算符返回参数的类型。当我们想要以不同方式处理不同类型的值,或者只是想快速检查时,这很有用。
它支持两种语法形式:

  1. 作为运营商:typeof x
  2. 功能风格:typeof(x)

换句话说,它既可以使用括号,也可以不使用括号。结果是一样的。
该调用typeof x返回一个类型名称为的字符串:

最后三行可能需要额外的解释:

  1. Math是一个提供数学运算的内置对象。我们将在Numbers中学习它。这里它只是一个对象的例子。
  2. 结果typeof null"object"。那是错的。这是一个官方认可的错误typeof,保持兼容性。当然,null不是一个对象。它是一个特殊值,具有单独的类型。所以,再一次,这是语言中的错误。
  3. 结果typeof alert"function",因为alert是语言的功能。我们将在接下来的章节中学习函数,我们将看到该语言中没有特殊的“函数”类型。函数属于对象类型。但typeof对待他们的方式不同。形式上,这是不正确的,但在实践中非常方便。
标签:

4 条留言  访客:2 条  博主:2 条

  1. jues

    很详细,受教了。

    • wellen

      谦虚了,哈哈

  2. 男装品牌

    文章不错非常喜欢

    • wellen

      谢谢~
      你的电商站也不错哦,加油!

给我留言

Copyright © 前端面试题 保留所有权利.   Theme  Ality 桂ICP备17012235号-1

用户登录