JavaScript 教程入门-不古出品

  • JavaScript 背景
  • JavaScript 简介
  • JavaScript 使用
    • < script > 标签
    • JavaScript 函数和事件
    • < head > 或 < body > 中的 JavaScript
    • < head > 中的 JavaScript
    • < body > 中的 JavaScript
    • 外部脚本
    • 外部 JavaScript 的优势
    • 外部引用
  • JavaScript 输出
    • 使用 innerHTML
    • 使用 document.write()
    • 使用 window.alert()
    • 使用 console.log()
  • JavaScript 语句
    • JavaScript 程序
    • JavaScript 语句
    • 分号 ;
    • JavaScript 空白字符
    • JavaScript 行长度和折行
    • JavaScript 代码块
    • JavaScript 关键词
  • JavaScript 语法
    • JavaScript 值
    • JavaScript 变量
    • JavaScript 运算符
    • JavaScript 表达式
    • JavaScript 关键词
    • JavaScript 注释
    • JavaScript 标识符
    • JavaScript 对大小写敏感
    • JavaScript 与驼峰式大小写
    • JavaScript 字符集
  • JavaScript 注释
    • 单行注释
    • 多行注释
    • 使用注释来阻止执行
    • JavaScript 变量
    • JavaScript 标识符
    • 赋值运算符
    • JavaScript 数据类型
    • 声明(创建) JavaScript 变量
    • 一条语句,多个变量
    • Value = undefined
    • 重复声明 JavaScript 变量
    • JavaScript 算术
  • JavaScript Let
    • 全局作用域
    • 函数作用域
    • JavaScript 块作用域
    • 重新声明变量
    • 循环作用域
    • 函数作用域
    • 全局作用域
    • HTML 中的全局变量
    • 重新声明
    • 提升

JavaScript 背景

  • JavaScript 是属于 HTML 和 Web 的编程语言。
    编程令计算机完成您需要它们做的工作。
    JavaScript 很容易学习。
    本教程涵盖 JavaScript 基础和高级教程。
  • 为何学习 JavaScript?
    JavaScript 是 web 开发者必学的三种语言之一:

    • HTML 定义网页的内容
    • CSS 规定网页的布局
    • JavaScript 对网页行为进行编程
  • 本教程提供关于 JavaScript,以及 JavaScript 如何与 HTML 和 CSS 协同工作的知识。

JavaScript 简介

  • JavaScript 能够改变 HTML 内容

    • getElementById() 是多个 JavaScript HTML 方法之一。
    • 本例使用该方法来“查找” id=“demo” 的 HTML 元素,并把元素内容(innerHTML)更改为 “Hello JavaScript”:

实例:

<button type="button" onclick="document.getElementById('demo').innerHTML = 'Hello JavaScript!'">单击这里</button>
  • JavaScript 能够改变 HTML 属性

    • 本例通过改变 标签的 src 属性(source)来改变一张 HTML 图像:
      实例:
<button onclick="document.getElementById('myImage').src='/i/eg_bulbon.gif'">开灯</button>
<img id="myImage" border="0" src="/i/eg_bulboff.gif" style="text-align:center;">
<button onclick="document.getElementById('myImage').src='/i/eg_bulboff.gif'">关灯</button>
  • JavaScript 能够改变 HTML 样式 (CSS)

    • 改变 HTML 元素的样式,是改变 HTML 属性的一种变种:
      实例:
document.getElementById("demo").style.fontSize = "25px";
  • JavaScript 能够隐藏 HTML 元素

    • 可通过改变 display 样式来隐藏 HTML 元素:
      实例:
document.getElementById("demo").style.display="none";
  • JavaScript 能够显示 HTML 元素

    • 可通过改变 display 样式来显示 HTML 元素:
      实例:
document.getElementById("demo").style.display="block";

JavaScript 使用

< script > 标签

  • 在 HTML 中,JavaScript 代码必须位于 < script > 与 < /script > 标签之间。

实例:

<script>
document.getElementById("demo").innerHTML = "我的第一段 JavaScript";
</script>

注释:旧的 JavaScript 例子也许会使用 type 属性:< script type=“text/javascript”>。

注释:type 属性不是必需的。JavaScript 是 HTML 中的默认脚本语言。

JavaScript 函数和事件

JavaScript 函数是一种 JavaScript 代码块,它可以在调用时被执行。

例如,当发生事件时调用函数,比如当用户点击按钮时。

提示:您将在稍后的章节学到更多有关函数和事件的知识。

< head > 或 < body > 中的 JavaScript

您能够在 HTML 文档中放置任意数量的脚本。

脚本可被放置与 HTML 页面的 < body > 或 < head > 部分中,或兼而有之。

< head > 中的 JavaScript

在本例中,JavaScript 函数被放置于 HTML 页面的 < head > 部分。

该函数会在按钮被点击时调用:
实例:

<!DOCTYPE html>
<html>
<head>
<script>
function myFunction() {document.getElementById("demo").innerHTML = "段落被更改。";
}
</script>
</head><body><h1>一张网页</h1>
<p id="demo">一个段落</p>
<button type="button" onclick="myFunction()">试一试</button></body>
</html>

< body > 中的 JavaScript

在本例中,JavaScript 函数被放置于 HTML 页面的 < body > 部分。

该函数会在按钮被点击时调用:
实例:

<!DOCTYPE html>
<html>
<body> <h1>A Web Page</h1>
<p id="demo">一个段落</p>
<button type="button" onclick="myFunction()">试一试</button><script>
function myFunction() {document.getElementById("demo").innerHTML = "段落被更改。";
}
</script></body>
</html>

提示:把脚本置于 < body > 元素的底部,可改善显示速度,因为脚本编译会拖慢显示。

外部脚本

脚本可放置与外部文件中:

外部文件:myScript.js

function myFunction() {document.getElementById("demo").innerHTML = "段落被更改。";
}

外部脚本很实用,如果相同的脚本被用于许多不同的网页。

JavaScript 文件的文件扩展名是 .js。

如需使用外部脚本,请在

实例:

<script src="myScript.js"></script>

您可以在 < head > 或 < body > 中放置外部脚本引用。

该脚本的表现与它被置于 < script > 标签中是一样的。

注释:外部脚本不能包含 < script > 标签。

外部 JavaScript 的优势

在外部文件中放置脚本有如下优势:

  • 分离了 HTML 和代码
  • 使 HTML 和 JavaScript 更易于阅读和维护
  • 已缓存的 JavaScript 文件可加速页面加载
    如需向一张页面添加多个脚本文件 - 请使用多个 script 标签:
    实例:
<script src="myScript1.js"></script>
<script src="myScript2.js"></script>

外部引用

可通过完整的 URL 或相对于当前网页的路径引用外部脚本:

本例使用完整的 URL 来链接至脚本:

实例:

<script src="https://www.w3school.com.cn/js/myScript1.js"></script>本例使用了位于当前网站上指定文件夹中的脚本:
<script src="/js/myScript1.js"></script>本例链接了与当前页面相同文件夹的脚本:
<script src="myScript1.js"></script>

JavaScript 输出

JavaScript 不提供任何内建的打印或显示函数。
JavaScript 显示方案

JavaScript 能够以不同方式“显示”数据:

  • 使用 window.alert() 写入警告框
  • 使用 document.write() 写入 HTML 输出
  • 使用 innerHTML 写入 HTML 元素
  • 使用 console.log() 写入浏览器控制台

使用 innerHTML

如需访问 HTML 元素,JavaScript 可使用 document.getElementById(id) 方法。

id 属性定义 HTML 元素。innerHTML 属性定义 HTML 内容:
实例:

<!DOCTYPE html>
<html>
<body><h1>我的第一张网页</h1><p>我的第一个段落</p><p id="demo"></p><script>document.getElementById("demo").innerHTML = 5 + 6;
</script></body>
</html>

提示:更改 HTML 元素的 innerHTML 属性是在 HTML 中显示数据的常用方法。

使用 document.write()

出于测试目的,使用 document.write() 比较方便:
实例:

<!DOCTYPE html>
<html>
<body><h1>我的第一张网页</h1><p>我的第一个段落</p><script>
document.write(5 + 6);
</script></body>
</html>

注意:在 HTML 文档完全加载后使用 document.write() 将删除所有已有的 HTML :
实例:

<!DOCTYPE html>
<html>
<body><h1>我的第一张网页</h1><p>我的第一个段落</p><button onclick="document.write(5 + 6)">试一试</button></body>
</html>

提示:document.write() 方法仅用于测试。

使用 window.alert()

您能够使用警告框来显示数据:
实例:

<!DOCTYPE html>
<html>
<body><h1>我的第一张网页</h1><p>我的第一个段落</p><script>
window.alert(5 + 6);
</script></body>
</html>

使用 console.log()

在浏览器中,您可使用 console.log() 方法来显示数据。

请通过 F12 来激活浏览器控制台,并在菜单中选择“控制台”。
实例:

<!DOCTYPE html>
<html>
<body><h1>我的第一张网页</h1><p>我的第一个段落</p><script>
console.log(5 + 6);
</script></body>
</html>

注释:按 F12 启动
在 debugger 中选择 “Console”。然后再次点击运行按钮。

JavaScript 语句

在 HTML 中,JavaScript 语句是由 web 浏览器“执行”的“指令”。
实例:

<!DOCTYPE html>
<html>
<body><h2>JavaScript 语句</h2><p><b>JavaScript 程序</b> 是一系列由计算机执行的 <b>语句</b>。</p><p id="demo"></p><script>var x, y, z;  // 语句 1
x = 22;        // 语句 2
y = 11;        // 语句 3
z = x + y;    // 语句 4document.getElementById("demo").innerHTML =
"z 的值是" + z + "。";  </script></body>
</html>

JavaScript 程序

计算机程序是由计算机“执行”的一系列“指令”。

在编程语言中,这些编程指令被称为语句。

JavaScript 程序就是一系列的编程语句。

注释:在 HTML 中,JavaScript 程序由 web 浏览器执行。

JavaScript 语句

JavaScript 语句由以下构成:

值、运算符、表达式、关键词和注释。

这条语句告诉浏览器在 id=“demo” 的 HTML 元素中输出 “Hello Kitty.”:

实例:

document.getElementById("demo").innerHTML = "Hello Kitty.";

大多数 JavaScript 程序都包含许多 JavaScript 语句。

这些语句会按照它们被编写的顺序逐一执行。

注释:JavaScript 程序(以及 JavaScript 语句)常被称为 JavaScript 代码。

分号 ;

分号分隔 JavaScript 语句。
实例:

请在每条可执行的语句之后添加分号:a = 5;
b = 6;
c = a + b;
亲自试一试
如果有分号分隔,允许在同一行写多条语句:a = 5; b = 6; c = a + b;

您可能在网上看到不带分号的例子。

提示:以分号结束语句不是必需的,但我们仍然强烈建议您这么做。

JavaScript 空白字符

JavaScript 会忽略多个空格。您可以向脚本添加空格,以增强可读性。
实例:

下面这两行是相等的:var person = "Bill";
var person="Bill";
在运算符旁边( = + - * / )添加空格是个好习惯:var x = y + z;

JavaScript 行长度和折行

为了达到最佳的可读性,程序员们常常喜欢把代码行控制在 80 个字符以内。

如果 JavaScript 语句太长,对其进行折行的最佳位置是某个运算符:
实例:

document.getElementById("demo").innerHTML ="Hello Kitty.";

JavaScript 代码块

JavaScript 语句可以用花括号({…})组合在代码块中。

代码块的作用是定义一同执行的语句。

您会在 JavaScript 中看到成块组合在一起的语句:
实例:

<!DOCTYPE html>
<html>
<body><h2>JavaScript 语句</h2><p>JavaScript 代码块在 { 与 } 之间编写。</p><button type="button" onclick="myFunction()">点击我!</button><p id="demo1"></p>
<p id="demo2"></p><script>
function myFunction() {document.getElementById("demo1").innerHTML = "Hello Kitty.";document.getElementById("demo2").innerHTML = "How are you?";
}
</script></body>
</html>

JavaScript 关键词

JavaScript 语句常常通过某个关键词来标识需要执行的 JavaScript 动作。

下面的表格列出了一部分将在教程中学到的关键词:

关键词 描述
break 终止 switch 或循环。
continue 跳出循环并在顶端开始。
debugger 停止执行 JavaScript,并调用调试函数(如果可用)。
do … while 执行语句块,并在条件为真时重复代码块。
for 标记需被执行的语句块,只要条件为真。
function 声明函数。
if … else 标记需被执行的语句块,根据某个条件。
return 退出函数。
switch 标记需被执行的语句块,根据不同的情况。
try … catch 对语句块实现错误处理。
var 声明变量。
注释:JavaScript 关键词指的是保留的单词。保留词无法用作变量名。

JavaScript 语法

** JavaScript 语法是一套规则,它定义了 JavaScript 的语言结构。**

var x, y;    // 如何声明变量
x = 7; y = 8; // 如何赋值
z = x + y;    // 如何计算值

JavaScript 值

JavaScript 语句定义两种类型的值:混合值和变量值。

混合值被称为字面量(literal)。变量值被称为变量。

JavaScript 字面量
书写混合值最重要的规则是:

写数值有无小数点均可:
15.90
10011字符串是文本,由双引号或单引号包围:
"Bill Gates"
'Bill Gates'

JavaScript 变量

在编程语言中,变量用于存储数据值。

JavaScript 使用 var 关键词来声明变量。

= 号用于为变量赋值。

在本例中,x 被定义为变量。然后,x 被赋的值是 7:

<!DOCTYPE html>
<html>
<body><h2>JavaScript 变量</h2><p>在本例中,x 被定义为变量。然后 x 被赋值 7:</p><p id="demo"></p><script>
var x;
x = 7;
document.getElementById("demo").innerHTML = x;
</script></body>
</html>

JavaScript 运算符

JavaScript 使用算数运算符(+ - * /)来计算值:(7 + 8) * 10JavaScript 使用赋值运算符(=)向变量赋值:var x, y;
var x = 7;
var y = 8;

JavaScript 表达式

表达式是值、变量和运算符的组合,计算结果是值。
6 * 10表达式也可包含变量值:
x * 10值可以是多种类型,比如数值和字符串。
例如,"Bill" + " " + "Gates",计算为 "Bill Gates":
"Bill" + " " + "Gates"

JavaScript 关键词

JavaScript 关键词用于标识被执行的动作。

var 关键词告知浏览器创建新的变量:

<!DOCTYPE html>
<html>
<body><h2>var 关键词创建变量</h2><p id="demo"></p><script>
var x, y;
x = 7 + 8;
y = x * 10;
document.getElementById("demo").innerHTML = y;
</script></body>
</html>

JavaScript 注释

并非所有 JavaScript 语句都被“执行”。

双斜杠 // 或 /* 与 */ 之间的代码被视为注释。

注释会被忽略,不会被执行:

var x = 7; // 会执行

// var x = 8; 不会执行

JavaScript 标识符

标识符是名称。

在 JavaScript 中,标识符用于命名变量(以及关键词、函数和标签)。

在大多数编程语言中,合法名称的规则大多相同。

在 JavaScript 中,首字符必须是字母、下划线(-)或美元符号($)。

连串的字符可以是字母、数字、下划线或美元符号。

提示:数值不可以作为首字符。这样,JavaScript 就能轻松区分标识符和数值。

JavaScript 对大小写敏感

所有 JavaScript 标识符对大小写敏感。

变量 lastName 和 lastname,是两个不同的变量。

lastName = “Gates”;
lastname = “Jobs”;
JavaScript 不会把 VAR 或 Var 译作关键词 var。

JavaScript 与驼峰式大小写

历史上,程序员曾使用三种把多个单词连接为一个变量名的方法:

连字符:
first-name, last-name, master-card, inter-city.
注释:JavaScript 中不能使用连字符。它是为减法预留的。下划线:
first_name, last_name, master_card, inter_city.驼峰式大小写(Camel Case):
FirstName, LastName, MasterCard, InterCity.JavaScript 程序员倾向于使用以小写字母开头的驼峰大小写:firstName, lastName, masterCard, interCity

JavaScript 字符集

JavaScript 使用 Unicode 字符集。

Unicode 覆盖世界上几乎所有的字符、标点和符号。

JavaScript 注释

JavaScript 注释用于解释 JavaScript 代码,增强其可读性。

JavaScript 注释也可以用于在测试替代代码时阻止执行。

单行注释

单行注释以 // 开头。

任何位于 // 与行末之间的文本都会被 JavaScript 忽略(不会执行)。

本例在每条代码行之前使用单行注释:
// 改变标题:document.getElementById("myH").innerHTML = "我的第一张页面";
// 改变段落:document.getElementById("myP").innerHTML = "我的第一个段落。";本例在每行结尾处使用了单行注释来解释代码:
var x = 5;      // 声明 x,为其赋值 5
var y = x + 2;  // 声明 y,为其赋值 x + 2

多行注释

多行注释以 /* 开头,以 */ 结尾。

任何位于 /* 和 */ 之间的文本都会被 JavaScript 忽略。

本例使用多行注释(注释块)来解释代码:

/*下面的代码会改变网页中id = "myH" 的标题以及 id = "myP" 的段落:
*/
document.getElementById("myH").innerHTML = "我的第一张页面";
document.getElementById("myP").innerHTML = "我的第一个段落。";

使用注释来阻止执行

使用注释来防止代码执行很适合代码测试。

在代码行之前添加 // 会把可执行的代码行更改为注释。

本例使用 // 来阻止代码行的执行:

//document.getElementById("myH").innerHTML = "我的第一张页面";
document.getElementById("myP").innerHTML = "我的第一个段落。";

JavaScript 变量

JavaScript 变量
JavaScript 变量是存储数据值的容器。

在本例中,x、y 和 z 是变量:

实例
var x = 7;
var y = 8;
var z = x + y;

提示:JavaScript 变量是存储数据值的容器。

JavaScript 标识符

所有 JavaScript 变量必须以唯一的名称的标识。

这些唯一的名称称为标识符。

标识符可以是短名称(比如 x 和 y),或者更具描述性的名称(age、sum、totalVolume)。

构造变量名称(唯一标识符)的通用规则是:

  • 名称可包含字母、数字、下划线和美元符号
  • 名称必须以字母开头
  • 名称也可以 $ 和 _ 开头(但是在本教程中我们不会这么做)
  • 名称对大小写敏感(y 和 Y 是不同的变量)
  • 保留字(比如 JavaScript 的关键词)无法用作变量名称
    提示:JavaScript 标识符对大小写敏感。

赋值运算符

在 JavaScript 中,等号(=)是赋值运算符,而不是“等于”运算符。

这一点与代数不同。下面的代码在代数中是不合理的:

x = x + 5
然而在 JavaScript 中,它非常合理:把 x + 5 的值赋给 x。

(计算 x + 5 的值并把结果放入 x 中。x 的值递增 5。)

注释:JavaScript 中的“等于”运算符是 ==。

JavaScript 数据类型

JavaScript 变量可存放数值,比如 100,以及文本值,比如 “Bill Gates”。

在编程中,文本值被称为字符串。

JavaScript 可处理多种数据类型,但是现在,我们只关注数值和字符串值。

字符串被包围在双引号或单引号中。数值不用引号。

如果把数值放在引号中,会被视作文本字符串。
实例:

var pi = 3.14;
var person = "Bill Gates";
var answer = 'How are you!';

声明(创建) JavaScript 变量

在 JavaScript 中创建变量被称为“声明”变量。
实例:

您可以通过 var 关键词来声明 JavaScript 变量:var carName;
声明之后,变量是没有值的。(技术上,它的值是 undefined。)如需赋值给变量,请使用等号:carName = "porsche";
您可以在声明变量时向它赋值:var carName = "porsche";
在上面的例子中,我们创建了名为 carName 的变量,并向其赋值 "porsche"。然后,我们在 id="demo" 的 HTML 段落中“输出”该值:举例:
<p id="demo"></p><script>
var carName = "porsche";
document.getElementById("demo").innerHTML = carName;
</script>

提示:在脚本的开头声明所有变量是个好习惯!

一条语句,多个变量

您可以在一条语句中声明许多变量。

以 var 作为语句的开头,并以逗号分隔变量:
var person = "Bill Gates", carName = "porsche", price = 15000;声明可横跨多行:
var person = "Bill Gates",
carName = "porsche",
price = 15000;

Value = undefined

在计算机程序中,被声明的变量经常是不带值的。值可以是需被计算的内容,或是之后被提供的数据,比如数据输入。

不带有值的变量,它的值将是 undefined。

变量 carName 在这条语句执行后的值是 undefined:

重复声明 JavaScript 变量

如果再次声明某个 JavaScript 变量,将不会丢它的值。

在这两条语句执行后,变量 carName 的值仍然是 “porsche”:

实例
var carName = “porsche”;
var carName;

JavaScript 算术

与代数类似,您能够通过 JavaScript 变量进行算术运算,使用 = 和 + 之类的运算符:

实例
var x = 3 + 5 + 8;
字符串也可以使用加号,但是字符串将被级联:

实例
var x = “Bill” + " " + “Gates”;

JavaScript Let

ECMAScript 2015
ES2015 引入了两个重要的 JavaScript 新关键词:let 和 const

这两个关键字在 JavaScript 中提供了块作用域(Block Scope)变量(和常量)。

在 ES2015 之前,JavaScript 只有两种类型的作用域:全局作用域和函数作用域。

全局作用域

全局(在函数之外)声明的变量拥有全局作用域。

实例

<!DOCTYPE html>
<html>
<body><h1>JavaScript 全局作用域</h1><p>可以从任何脚本或函数中访问全局变量。</p><p id="demo"></p><script>
var carName = "porsche";
myFunction();function myFunction() {document.getElementById("demo").innerHTML ="I can display " + carName;
}
</script></body>
</html>

全局变量可以在 JavaScript 程序中的任何位置访问。

函数作用域

局部(函数内)声明的变量拥有函数作用域。
实例

// 此处的代码不可以使用 carNamefunction myFunction() {var carName = "porsche";// code here CAN use carName
}// 此处的代码不可以使用 carName

局部变量只能在它们被声明的函数内访问。

JavaScript 块作用域

通过 var 关键词声明的变量没有块作用域。

可以使用 let 关键词声明拥有块作用域的变量。

在块 {} 内声明的变量可以从块之外进行访问。

实例
{ var x = 10;
}
// 此处可以使用 x
在 ES2015 之前,JavaScript 是没有块作用域的。可以使用 let 关键词声明拥有块作用域的变量。在块 {} 内声明的变量无法从块外访问:实例
{ let x = 10;
}
// 此处不可以使用 x

重新声明变量

使用 var 关键字重新声明变量会带来问题。

在块中重新声明变量也将重新声明块外的变量:

var x = 10;
// 此处 x 为 10
{ var x = 6;// 此处 x 为 6
}
// 此处 x 为 6

使用 let 关键字重新声明变量可以解决这个问题。

在块中重新声明变量不会重新声明块外的变量:

实例

var x = 10;
// 此处 x 为 10
{ let x = 6;// 此处 x 为 6
}
// 此处 x 为 10

循环作用域

在循环中使用 var:

实例
var i = 7;
for (var i = 0; i < 10; i++) {
// 一些语句
}
// 此处,i 为 10

在循环中使用 let:

实例
let i = 7;
for (let i = 0; i < 10; i++) {
// 一些语句
}
// 此处 i 为 7

在第一个例子中,在循环中使用的变量使用 var 重新声明了循环之外的变量。

在第二个例子中,在循环中使用的变量使用 let 并没有重新声明循环外的变量。

如果在循环中用 let 声明了变量 i,那么只有在循环内,变量 i 才是可见的。

函数作用域

在函数内声明变量时,使用 var 和 let 很相似。

它们都有函数作用域:

function myFunction() {var carName = "porsche";   // 函数作用域
}
function myFunction() {let carName = "porsche";   // 函数作用域
}

全局作用域

如果在块外声明声明,那么 var 和 let 也很相似。

它们都拥有全局作用域:

var x = 10; // 全局作用域
let y = 6; // 全局作用域

HTML 中的全局变量

使用 JavaScript 的情况下,全局作用域是 JavaScript 环境。

在 HTML 中,全局作用域是 window 对象。

通过 var 关键词定义的全局变量属于 window 对象:

实例
var carName = “porsche”;
// 此处的代码可使用 window.carName

通过 let 关键词定义的全局变量不属于 window 对象:

实例
let carName = “porsche”;
// 此处的代码不可使用 window.carName

重新声明

允许在程序的任何位置使用 var 重新声明 JavaScript 变量:

实例
var x = 10;// 现在,x 为 10var x = 6;// 现在,x 为 6在相同的作用域,或在相同的块中,通过 let 重新声明一个 var 变量是不允许的:实例
var x = 10;       // 允许
let x = 6;       // 不允许{var x = 10;   // 允许let x = 6;   // 不允许
}在相同的作用域,或在相同的块中,通过 let 重新声明一个 let 变量是不允许的:实例
let x = 10;       // 允许
let x = 6;       // 不允许{let x = 10;   // 允许let x = 6;   // 不允许
}
在相同的作用域,或在相同的块中,通过 var 重新声明一个 let 变量是不允许的:实例
let x = 10;       // 允许
var x = 6;       // 不允许{let x = 10;   // 允许var x = 6;   // 不允许
}
在不同的作用域或块中,通过 let 重新声明变量是允许的:实例
let x = 6;       // 允许{let x = 7;   // 允许
}{let x = 8;   // 允许
}

提升

通过 var 声明的变量会提升到顶端。如果您不了解什么是提升(Hoisting),请学习我们的提升这一章。您可以在声明变量之前就使用它:实例
// 在此处,您可以使用 carName
var carName;
亲自试一试
通过 let 定义的变量不会被提升到顶端。在声明 let 变量之前就使用它会导致 ReferenceError。变量从块的开头一直处于“暂时死区”,直到声明为止:实例
// 在此处,您不可以使用 carName
let carName;

JavaScript 入门教程-不古出品相关推荐

  1. Mybase使用教程-不古出品

    Mybase使用教程-不古出品 Mybase使用教程 Mybase Desktop简介 使用方法.常见问题及注意事项 Mybase Desktop 基本使用方法 如何更有效运用 Mybase 软件 如 ...

  2. Jira使用教程-不古出品

    Jira使用教程-不古出品 Jira 简要概述 关于 Jira 关键术语 事务 项目 板 工作流 敏捷 Jira 入门教程:6 个基本步骤 第 1 步 – 创建项目 第 2 步 – 选择模板 项目类型 ...

  3. Confluence使用教程-不古出品

    Confluence使用教程-不古出品 Confluence 基础知识 关于 Confluence 托管选项 关键术语 页面 空间 页面树 创建站点和空间 第 1 步:了解空间 第 2 步:创建空间 ...

  4. 零基础JavaScript入门教程(1)–走进JavaScript的世界

    点此查看 所有教程.项目.源码导航 本文目录 1. 前言 2. JS的历史 3. JS的地位 4. JS与HTML.CSS的区别 5. JS是真正的编程语言 6. JS的组成部分 7. 小结 1. 前 ...

  5. HTML+CSS+JavaScript入门教程(万字)

    前言 作为一名后端开发人员,开发过程中,必不可少的与前端进行对接,因此尽管是后端开发者,也需要一定的前端知识,因此写下HTML+CSS+JavaScript入门知识,着重介绍了JavaScript,方 ...

  6. 0基础JavaScript入门教程(一)认识代码

    1. 环境: JavaScript简称js,后续我们将使用js来代替JavaScript. 认识代码前,需要安装js代码运行环境. 安装nodejs:在https://nodejs.org/zh-cn ...

  7. JavaScript 入门教程||javascript 简介||JavaScript 用法

    javascript 简介 JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平板电脑和智能手机等设备. JavaScrip ...

  8. 零基础JavaScript入门教程(8)–JS之输出语句

    点此查看 所有教程.项目.源码导航 本文目录 1. 前言 2. 弹窗输出 3. 网页内容输出 4. 控制台输出 5. 小结 1. 前言 之前我们只讲过一个JS语句:alert,用于弹窗显示信息.一般这 ...

  9. 零基础JavaScript入门教程(2)–在网页中使用JS

    点此查看 所有教程.项目.源码导航 本文目录 1. 前言 2. 网页中使用JS 3. 小结 1. 前言 上一篇,给大家聊了很多关于JS的事情,大家想必已经迫不及待,想知道如何在网页中使用JS. 本篇就 ...

最新文章

  1. Asp.net 邮件传输(转)
  2. J2EE 字符 字节 编码知识概念
  3. 上海临港新片区:新建数据中心CPUE值≤1.25 正建国际互联网数据专用通道
  4. Android Activity动画属性简介
  5. python处理nc文件并输出_利用python如何处理nc数据详解
  6. hihocoder 1689 - 推断大小关系(图论+二分)
  7. 使用Spring Cloud HystrixCommands的功能Hystrix
  8. 在linux中dns不安装coching,ubuntu 8.04下openldap的安装和使用
  9. mysql mgr监控_6. MySQL组复制(MGR)全解析 Part 6 监控MySQL组复制
  10. Weld(CDI)教程
  11. 网页java插件加载不了_win10系统浏览网页时无法加载java插件如何解决-系统城...
  12. Maven SCM Release版本控制与发布
  13. hadoop权威指南笔记
  14. 揭秘刷百度权重那些不为人知的事情
  15. 苹果4s什么时候上市的_前景***好苹果苗什么时候价格
  16. 图像识别VPU——易用的嵌入式AI支持深度学习平台介绍
  17. 1375. 至少K个不同字符的子串
  18. 程序员真实故事系列 ---阅读书籍计划
  19. Andorid-foreground 解析
  20. js事件-阻止默认操作

热门文章

  1. 中国石油大学《冼星海作品赏析》
  2. mysql数据库存储表情都是问号_数据库保存中文全为问号以及emoji表情保存出错...
  3. 天翼云创建内网弹性负载均衡
  4. 安装DELL R430服务器的过程记录
  5. php goto语句,PHP语法:goto 语句
  6. 【VirtualAPP 双开系列04】VirtualAPP 可扩展 AIDL 分析
  7. 计算机网络第七ppt,考研 计算机网络 第七学时 传输层.ppt
  8. csv逗号分割不兼容 解决_关于Excel保存为csv文件时提示 “可能含有与CSV(逗号分隔)不兼容的功能”...
  9. 保存图像数据为BMP格式的图片
  10. Java File类之getPath | getAbsolutePath | getCanonicalPath