ECMAScriptjavaScript的变量

1.声明


 

所以 var 或
let
声明的未赋初值的变量,值会被设定也undefined(译注:即未定义值,本身为是一个值)

准备访问一个未初始化的变量会促成一个
ReferenceError 异常被丢掉来

 

2.作用域


 

一般来说的代码用在控制高出口
5,因为 x 的作用域是声称了 x 的不得了函数(或全局范围),而不是 if
语句块。

if (true) {
  var x = 5;
}
console.log(x); // 5

如若采用
ECMAScript 6 中的 let 声明,上述行为将发生变化

if (true) {
  let y = 5;
}
console.log(y); // ReferenceError: y is not defined

 

3.变量提升


 

let不见面进行变量提升

console.log(x); // ReferenceError
let x = 3;

 

4.函数荣升


 

于函数,只有函数声明会受升级到顶部,不包括函数表达式。

/* Function declaration */

foo(); // "bar"

function foo() {
  console.log("bar");
}


/* Function expression */

baz(); // TypeError: baz is not a function

var baz = function() {
  console.log("bar2");
};

 

5.常量


 

const 创建一个只读(read-only)的常量

每当同作用域中,不能够为此和变量或函数同样的名来命名常量

// THIS WILL CAUSE AN ERROR
function f() {};
const f = 5;

// THIS WILL CAUSE AN ERROR ALSO
function f() {
  const g = 5;
  var g;

  //statements
}

 

6.数据类型


 

JavaScript语言可以分辨下面
7 种植不同类别的价:

  • 六栽是 原型
    的数据类型:

    Boolean.
    布尔值,true 和 false.

    null.
    一个标明 null 值的非正规重要性字。 JavaScript 是大小写敏感的,因此 null
    与 Null、NULL或其他变量完全不同。

    undefined.
    变量未定义时的性质。

    Number.
    代表数字,例如: 42 或者 3.14159。

    String.
    表示字符串,例如:”Howdy”

    Symbol ( 在
    ECMAScript 6
    中初加上的色).。一种植多少类,它的实例是绝无仅有且不可更改的。

  • 以及
    Object 对象