你的位置:首页 > Java教程

[Java教程]重撸JS_1


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); // ReferenceErrorlet x = 3;

 

4.函数提升


 

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

/* Function declaration */foo(); // "bar"function foo() { console.log("bar");}/* Function expression */baz(); // TypeError: baz is not a functionvar baz = function() { console.log("bar2");};

 

5.常量


 

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

在同一作用域中,不能用与变量或函数同样的名字来命名常量

// THIS WILL CAUSE AN ERRORfunction f() {};const f = 5;// THIS WILL CAUSE AN ERROR ALSOfunction 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 对象