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. php中转,使用 PHP Curl 做数据中转
  2. linux间隔时间执行,科技常识:使用linux命令crontab间隔时间执行其它命令
  3. mac打开class文件
  4. Gradle学习网站
  5. 【英语学习】【Level 07】U03 Amazing wonders L2 A global city
  6. 发送方波_室内设备发送器
  7. 前端 vue antdv table导出execl
  8. 【Hive】日期函数
  9. Linxu 常用命令大全(一)
  10. Sync Framework 词汇表
  11. 连接 GIS Servers报错“Proxy server got bad address from remote server ...”
  12. Haar特征描述算子与人脸检测
  13. mysql僵尸进程_僵尸进程产生原因和解决方法
  14. python二元一次方程组用鸡兔同笼的思路来写编程_3应用二元一次方程组——鸡兔同笼教学设计...
  15. 【夯实基础--CSS】=> 高级技巧(雪碧图/滑动门/CSS三角形/字体图标(iconfont)等)
  16. Stratum mining protocol
  17. form表单—2种提交方式
  18. h3c服务器r4900清空配置信息,H3C R4900 G3服务器HDM初始化配置
  19. 视频文件太大如何压缩变小?
  20. SKY65162-70LF射频功率放大器

热门文章

  1. 选择专业要谨慎,不要跟风
  2. 使用FTP导出思科交换机配置(超详细)
  3. scanf返回值被忽略的原因及其解决方法
  4. ALOAM试跑及程序注释
  5. 家庭理财管理系统的设计与实现【功能展示+功能描述】
  6. java 椭圆焦点 求是否在圆内_找到一个点到椭圆的距离,在椭圆的内部或外部
  7. Android图片的获取和存储
  8. 使用ListView实现聊天界面
  9. oracle odp arraybindcount 极限,極限挑戰—C#+ODP 100萬條數據導入Oracle數據庫僅用不到1秒...
  10. 说说我最近的烦心事儿