注:本篇绝大多数内容来自 菜鸟编程
JavaScript
JavaScript 是 Web 的编程语言,是脚本语言。
所有现代的 HTML 页面都可以使用 JavaScript。
Web 开发必须学习的三种语言:
- HTML 定义了网页的内容
- CSS 描述了网页的布局
- JavaScript 控制了网页的行为
JavaScript 参考手册
在菜鸟教程中,我们为您提供完整的 JavaScript 对象、浏览器对象、HTML DOM 对象参考手册。
以下手册包含了每个对象、属性、方法的实例。
HTML/CSS/JS 在线工具
HTML/CSS/JS 在线工具可以在线编辑 HTML、CSS、JS 代码,并实时查看效果,你也可以将优质代码保存分享:https://c.runoob.com/front-end/61
1.直接在HTML用JS写文字
1 | document.write("<h1>这是一个标题</h1>"); |
2.alert() 函数在 JavaScript 中并不常用,但它对于代码测试非常方便。
1 | // 一个按钮,按下后网页提示 "欢迎!" |
3.JS改变HTML元素内容
1 | <body> |
您会经常看到 **document.getElementById(“some id”)**。这个方法是 HTML DOM 中定义的。
DOM (Document Object Model)(文档对象模型)是用于访问 HTML 元素的正式 W3C 标准。
您将在本教程的多个章节中学到有关 HTML DOM 的知识。
4.JavaScript:改变 HTML 图像
1 | // 本例会动态地改变 HTML <image> 的来源(src): |
1 *以上实例中代码* **element.src.match("bulbon")** *的作用意思是:检索* **<img id="myimage" onclick="changeImage()" src="/images/pic_bulboff.gif" width="100" height="180">** *里面 src 属性的值有没有包含* **bulbon** *这个字符串,如果存在字符串* **bulbon,图片 **src** *更新为* **bulboff.gif***,若匹配不到* **bulbon** *字符串,***src** *则更新为* **bulbon.gif**.JavaScript 能够改变任意 HTML 元素的大多数属性,而不仅仅是图片。
5.JS改变文字颜色
1 | <body> |
6.JS判断输入框中是不是数字
1 | <body> |
以上实例只是普通的验证,如果要在生产环境中使用,需要严格判断,如果输入的空格,或者连续空格 isNaN 是判别不出来的。可以添加正则来判断(后续章节会说明):
1 | <body> |
JavaScript 用法
1
2
3 HTML 中的 Javascript 脚本代码必须位于 **<script>** 与 **</script>** 标签之间。
Javascript 脚本代码可被放置在 HTML 页面的 **<body>** 和 **<head>** 部分中。
1 | <!- 如需在 HTML 页面中插入 JavaScript,请使用 <script> 标签。-> |
外部的 JavaScript
也可以把脚本保存到外部文件中。外部文件通常包含被多个网页使用的代码。
外部 JavaScript 文件的文件扩展名是 .js。
如需使用外部文件,请在 <script>
标签的 “src” 属性中设置该 .js 文件:
1 |
|
1 | 你可以将脚本放置于 <head> 或者 <body>中,放在 <script> 标签中的脚本与外部引用的脚本运行效果完全一致。 |
myScript.js 文件代码如下:
1 | function myFunction() |
JavaScript 输出
JavaScript 没有任何打印或者输出的函数。
JavaScript 显示数据
JavaScript 可以通过不同的方式来输出数据:
- 使用 window.alert() 弹出警告框。
- 使用 document.write() 方法将内容写到 HTML 文档中。
- 使用 innerHTML 写入到 HTML 元素。
- 使用 console.log() 写入到浏览器的控制台。
使用 window.alert()
你可以弹出警告框来显示数据:
1 |
|
效果:
操作 HTML 元素
如需从 JavaScript 访问某个 HTML 元素,您可以使用 document.getElementById(id) 方法。
请使用 “id” 属性来标识 HTML 元素,并 innerHTML 来获取或插入元素内容:
1 | <html> |
效果:文字 “段落已修改” 替代了 文字 “我的第一个段落”
1
2
3
4
5 以上 JavaScript 语句(在 <script> 标签中)可以在 web 浏览器中执行:
**document.getElementById("demo")** 是使用 id 属性来查找 HTML 元素的 JavaScript 代码 。
**innerHTML = "段落已修改。"** 是用于修改元素的 HTML 内容(innerHTML)的 JavaScript 代码。
写到控制台
如果您的浏览器支持调试,你可以使用 console.log() 方法在浏览器中显示 JavaScript 值。
浏览器中使用 F12 来启用调试模式, 在调试窗口中点击 “Console” 菜单。
1 |
|
实例 console 截图:
JavaScript 语法
JavaScript 是一个程序语言。语法规则定义了语言结构。
JavaScript 语法
JavaScript 是一个脚本语言。
它是一个轻量级,但功能强大的编程语言。
JavaScript 字面量
在编程语言中,一般固定值称为字面量,如 3.14。
数字(Number)字面量 可以是整数或者是小数,或者是科学计数(e)。
1 | 3.14 |
字符串(String)字面量 可以使用单引号或双引号:
1 | "John Doe" |
表达式字面量 用于计算:
1 | 5 + 6 |
数组(Array)字面量 定义一个数组:
1 | [40, 100, 1, 5, 25, 10] |
对象(Object)字面量 定义一个对象:
1 | {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"} |
函数(Function)字面量 定义一个函数:
1 | function myFunction(a, b) { return a * b;} |
JavaScript 变量
在编程语言中,变量用于存储数据值。
JavaScript 使用关键字 var 来定义变量, 使用等号来为变量赋值:
1 | var x, lengthx = 5 |
变量可以通过变量名访问。在指令式语言中,变量通常是可变的。字面量是一个恒定的值。
变量是一个名称。字面量是一个值。
JavaScript 操作符
JavaScript使用 算术运算符 来计算值:
1 | (5 + 6) * 10 |
JavaScript使用赋值运算符给变量赋值:
1 | x = 5 |
JavaScript语言有多种类型的运算符:
类型 | 实例 | 描述 |
---|---|---|
赋值,算术和位运算符 | = + - * / | 在 JS 运算符中描述 |
条件,比较及逻辑运算符 | == != < > | 在 JS 比较运算符中描述 |
JavaScript 语句
在 HTML 中,JavaScript 语句用于向浏览器发出命令。
语句是用分号分隔:
1 | x = 5 + 6; |
JavaScript 关键字
JavaScript 关键字用于标识要执行的操作。
和其他任何编程语言一样,JavaScript 保留了一些关键字为自己所用。
var 关键字告诉浏览器创建一个新的变量:
1 | var x = 5 + 6; |
JavaScript 同样保留了一些关键字,这些关键字在当前的语言版本中并没有使用,但在以后 JavaScript 扩展中会用到。
JavaScript 注释
不是所有的 JavaScript 语句都是”命令”。双斜杠 // 后的内容将会被浏览器忽略:
1 | // 我不会执行 |
JavaScript 数据类型
JavaScript 有多种数据类型:数字,字符串,数组,对象等等:
1 | var length = 16; // Number 通过数字字面量赋值 |
JavaScript 函数
JavaScript 语句可以写在函数内,函数可以重复引用:
引用一个函数 = 调用函数(执行函数内的语句)。
1 | function myFunction(a, b) { |
JavaScript 字母大小写
JavaScript 对大小写是敏感的。
当编写 JavaScript 语句时,请留意是否关闭大小写切换键。
函数 getElementById 与 getElementbyID 是不同的。
同样,变量 myVariable 与 MyVariable 也是不同的。
JavaScript 中,常见的是驼峰法的命名规则,如 lastName (而不是lastname)。
JavaScript 字符集
JavaScript 使用 Unicode 字符集。
Unicode 覆盖了所有的字符,包含标点等字符。
如需进一步了解,请学习我们的 完整 Unicode 参考手册。
JavaScript 语句标识符
JavaScript 语句通常以一个 语句标识符 为开始,并执行该语句。
语句标识符是保留关键字不能作为变量名使用。
下表列出了 JavaScript 语句标识符 (关键字) :
语句 | 描述 |
---|---|
break | 用于跳出循环。 |
catch | 语句块,在 try 语句块执行出错时执行 catch 语句块。 |
continue | 跳过循环中的一个迭代。 |
do … while | 执行一个语句块,在条件语句为 true 时继续执行该语句块。 |
for | 在条件语句为 true 时,可以将代码块执行指定的次数。 |
for … in | 用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。 |
function | 定义一个函数 |
if … else | 用于基于不同的条件来执行不同的动作。 |
return | 退出函数 |
switch | 用于基于不同的条件来执行不同的动作。 |
throw | 抛出(生成)错误 。 |
try | 实现错误处理,与 catch 一同使用。 |
var | 声明一个变量。 |
while | 当条件语句为 true 时,执行语句块。 |
空格
JavaScript 会忽略多余的空格。您可以向脚本添加空格,来提高其可读性。下面的两行代码是等效的:
1 | var person="runoob"; |
对代码行进行折行
您可以在文本字符串中使用反斜杠对代码行进行换行。下面的例子会正确地显示:
1 | document.write("你好 \ |
JavaScript 是脚本语言,浏览器会在读取代码时,逐行地执行脚本代码。而对于传统编程来说,会在执行前对所有代码进行编译。
声明(创建) JavaScript 变量
在 JavaScript 中创建变量通常称为”声明”变量。
我们使用 var 关键词来声明变量:
1 | var carname; |
变量声明之后,该变量是空的(它没有值)。
如需向变量赋值,请使用等号:
1 | carname="Volvo"; |
不过,您也可以在声明变量时对其赋值:
1 | var carname="Volvo"; |
在下面的例子中,我们创建了名为 carname 的变量,并向其赋值 “Volvo”,然后把它放入 id=”demo” 的 HTML 段落中:
1 | var carname="Volvo"; |
一个好的编程习惯是,在代码开始处,统一对需要的变量进行声明。
JavaScript 数据类型
**值类型(基本类型)**:字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。
引用数据类型(对象类型):对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)。
注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。
JavaScript 拥有动态类型
JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型:
1 | var x; |
变量的数据类型可以使用 typeof 操作符来查看:
1 | typeof "John" // 返回 string |
JavaScript 数字
JavaScript 只有一种数字类型。数字可以带小数点,也可以不带:
1 | var x1=34.00; //使用小数点来写 |
极大或极小的数字可以通过科学(指数)计数法来书写:
1 | var y=123e5; // 12300000 |
JavaScript 数组
下面的代码创建名为 cars 的数组:
1 | var cars=new Array(); |
或者 (condensed array):
1 | var cars=new Array("Saab","Volvo","BMW"); |
或者 (literal array):
1 | var cars=["Saab","Volvo","BMW"]; |
数组下标是基于零的,所以第一个项目是 [0],第二个是 [1],以此类推。
JavaScript 对象
对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔:
1 | var person={firstname:"John", lastname:"Doe", id:5566}; |
上面例子中的对象 (person) 有三个属性:firstname、lastname 以及 id。
空格和折行无关紧要。声明可横跨多行:
1 | var person={ |
对象属性有两种寻址方式:
1 | name=person.lastname; |
Undefined 和 Null
Undefined 这个值表示变量不含有值。
可以通过将变量的值设置为 null 来清空变量。
1 | cars=null; |
声明变量类型
当您声明新变量时,可以使用关键词 “new” 来声明其类型:
1 | var carname=new String; |
JavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象。