声明方式

变量的声明:

  • 使用 var 关键字(variable 单词的缩写)
  • ES6 还有 let、 const 声明方式

注意事项:

  • 如果一个变量未声明(declaration)就直接使用,那么会报错;
  • 如果一个变量有声明,但是没有赋值,那么默认值是 undefined
  • 如果没有使用 var 声明变量也可以,但是不推荐(事实上会被添加到window对象上)

数据类型

JavaScript 中的值都具有特定的类型

有 8 种基本的数据类型(7 种原始类型和 1 种复杂类型)

  • Number
  • String
  • Boolean
  • Undefined
  • Null
  • Object
  • BigInt
  • Symbol

typeof

因为 ECMAScript 的类型系统是松散的,所以需要一种手段来确定任意变量的数据类型

  • typeof 操作符就是为此而生

用法:

  • typeof (x),它与 typeof x 相同
  • typeof 是一个操作符,并非是一个函数, () 只是将后续的内容当做一个整体而已

返回值:

  • “undefined”表示值未定义;
  • “boolean”表示值为布尔值;
  • “string”表示值为字符串;
  • “number”表示值为数值;
  • “object”表示值为对象 (而不是函数) 或 null;
  • “function”表示值为函数;
  • “symbol” 表示值为符号;

Number

代表整数和浮点数

特殊数值:

  • Infinity: 代表数学概念中的无穷大 ∞,也可以表示-Infinity;
    • 比如 1/0 得到的就是无穷大;
  • NaN: NaN 代表一个计算错误,它是一个错误的操作所得到的结果;
    • 比如 字符串和一个数字相乘;

范围:

  • 最小正数值: Number. MIN_VALUE,这个值为: 5e-324,小于这个的数字会被转化为0
  • 最大正数值: Number. MAX_VALUE,这个值为: 1.7976931348623157e+308

isNaN

  • 用于判断是否不是一个数字。不是数字返回 true,是数字返回 false。

String

JavaScript 中的字符串必须被括在引号里,有三种包含字符串的方式

  • 双引号: “Hello”
  • 单引号: ‘Hello’
  • 反引号: `Hello`(ES6)

转义字符:

Boolean

仅包含两个值: true 和 false

Undefined

只有一个值,就是特殊值 undefined

声明一个变量,但是没有对其进行初始化时,它默认就是 undefined

Object

是一个特殊的类型,我们通常把它称为引用类型或者复杂类型

往往可以表示一组数据,是其他数据的一个集合

在 JavaScript 中我们可以使用花括号{} 的方式来表示一个对象

Null

只有一个值,即特殊值 null

表示一个对象为空,所以通常我们在给一个对象进行初始化时,会赋值为 null

null 和 undefined 的关系:

  • undefined 通常只有在一个变量声明但是未初始化时,它的默认值是 undefined 才会用到
  • 并且我们不推荐直接给一个变量赋值为 undefined,所以很少主动来使用
  • null 值非常常用,当一个变量准备保存一个对象,但是这个对象不确定时,我们可以先赋值为 null

类型转换

转 String

隐式转换

  • 一个字符串和其他类型进行+操作,
    • 如果+运算符左右两边有一个是字符串,那么另一边会自动转换成字符串类型进行拼接
  • 某些函数的执行也会自动将参数转为字符串类型
    • 比如 console. log 函数

显式转换

  • 调用 String () 函数
  • 调用 toString () 方法

转 Number

隐式转换

  • 在算数运算中,通常会将其他类型转换成数字类型来进行运算
    • 比如 “6” / “2”;
    • 但是如果是+运算,并且其中一边有字符串,那么还是按照字符串来连接的

显式转换

  • 使用 Number () 函数

转 Boolean

在逻辑运算中隐式转换,但是也可以通过调用 Boolean (value) 显式地进行转换

直观上为“空”的值(如 0、空字符串、 null、 undefined 和 NaN)将变为 false

其他值变成 true