JavaScript$Data-Label

48 阅读1分钟

JavaScript$Data-Label

1. Variable: Say My Name

表达数据 data 的方式有两种:

  • 字面量 literal:'Tom'; { name: 'Tom', age: 18 },直接表达数据
  • 变量 variable:var name = 'Tom'; let tom = { name: 'Tom', age: 18 }; const ADULT_AGE = 18; function greet(){ console.log('你好') },给数据一个名字

使用变量的好处是见名知意和方便引用。

变量可以分为“变量”和“常量”:

  • 变量 mutable:地址可以改变的变量,使用 var, let, function 定义
  • 常量 immutable:地址不可改变的变量(对于对象,属性值可以改变),使用 const 定义

2. Identifier

我们需要一个 label 来表示变量,这个 label 称为标识符 identifier。(properties 也看可做变量)

标识符的规则:

  • 只能包含字母、数字、下划线 _$
  • 不能以数字开头
  • 不能使用关键字和保留字

标识符最佳实践:

  • 变量 camelCase: let firstJob = 'worker
  • Class PascalCaseclass SchoolTeacher{}
  • 常量 Upper_Caseconst JAVASCRIPT_DATA_LABEL = 'JavaScript$Data-Label'
  • snake_casekebab-case 在 JavaScript 中用的较少

MDN_Identifier

Variables&Identifier

3. var, let, const; function

声明变量时可以使用 varlet 或者 constfunction 可以定义函数(在我看来也应该放在这里)。其中 var 是 ES2015 之前的唯一方式(虽然不使用 var 也可以定义变量,但是并不推荐)。

  • var:函数作用域,状态提升 hoist,可重复定义,会放在 window
  • let:块作用域,暂时性死区 TDZ
  • const:块作用域,暂时性死区 TDZ,不可重新赋值
  • function:快作用域,可重复定义,状态提升 hoist(和 var 同名时优先)