JavaScript 是脚本语言,是一种轻量级的编程语言。JavaScript 是可插入 HTML 页面的编程代码。JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
HTML 中的 Javascript 脚本代码必须位于 标签之间。
Javascript 脚本代码可被放置在 HTML 页面的
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
head>
<body>
<p id="demo">p>
<script>
document.getElementById("demo").innerHTML = "测试 JavaScript";
script>
body>
html>
JavaScript 没有任何打印或者输出的函数
DOCTYPE html>
<html>
<body>
<h1>测试标题h1>
<p>测试段落。p>
<script>window.alert(警告);script>
body>
html>
从 JavaScript 访问某个 HTML 元素,使用 document.getElementById(id) 方法。innerHTML 来获取或插入元素内容:
DOCTYPE html>
<html>
<body>
<h1>我的第一个 Web 页面h1>
<p id="demo">我的第一个段落p>
<script>
document.getElementById("demo").innerHTML = "段落已修改。";
script>
body>
html>
innerHTML = “段落已修改。” 是用于修改元素的 HTML 内容(innerHTML)的 JavaScript 代码。
DOCTYPE html>
<html>
<body>
<h1>我的第一个 Web 页面h1>
<p>我的第一个段落。p>
<script>
document.write(Date());
script>
body>
html>
DOCTYPE html>
<html>
<body>
<h1>我的第一个 Web 页面h1>
<p>我的第一个段落。p>
<button onclick="myFunction()">点我button>
<script>
function myFunction() {
document.write(Date());
}
script>
body>
html>
DOCTYPE html>
<html>
<body>
<h1>我的第一张网页h1>
<p>我的第一个段落p>
<script>
console.log(5 + 6);
script>
body>
html>
| 关键词 | 描述 |
|---|---|
| break | 终止switch或循环。 |
| continue | 跳出循环并在顶端开始。 |
| debugger | 停止执行 JavaScript,并调用调试函数(如果可用)。 |
| do ... while | 执行语句块,并在条件为真时重复代码块。 |
| for | 标记需被执行的语句块,只要条件为真。 |
| function | 声明函数。 |
| if ... else | 标记需被执行的语句块,根据某个条件。 |
| return | 退出函数。 |
| switch | 标记需被执行的语句块,根据不同的情况。 |
| try ... catch | 对语句块实现错误处理。 |
| var | 声明变量。 |
注释:JavaScript 关键词指的是保留的单词。保留词无法用作变量名。
JavaScript 语句定义两种类型的值:混合值和变量值。
混合值被称为字面量(literal)。变量值被称为变量。
书写混合值最重要的规则是:写数值有无小数点均可:15.90,10011。
字符串是文本,由双引号或单引号包围:“Bill Gates”,‘Bill Gates’ 。
在编程语言中,变量用于存储数据值。
JavaScript 使用 var 关键词来声明变量。
= 号用于为变量赋值。
var x;
x = 7;
在 JavaScript 中创建变量被称为“声明”变量。通过 var 关键词来声明 JavaScript 变量:
var carName;
声明之后,变量是没有值的。(技术上,它的值是 undefined。)
赋值给变量,使用等号:carName = "porsche";
+ - * / 来计算值:(7 + 8) * 10
| 运算符 | 描述 |
|---|---|
| + | 加法 |
| - | 减法 |
| * | 乘法 |
| / | 除法 |
| % | 取模(余数) |
| ++ | 递加 |
| -- | 递减 |
使用赋值运算符(=)向变量赋值:
var x, y;
var x = 7;
var y = 8;
赋值运算符向 JavaScript 变量赋值。
| 运算符 | 例子 | 等同于 |
|---|---|---|
| = | x = y | x = y |
| += | x += y | x = x + y |
| -= | x -= y | x = x - y |
| *= | x *= y | x = x * y |
| /= | x /= y | x = x / y |
| %= | x %= y | x = x % y |
| 运算符 | 描述 |
|---|---|
| == | 等于 |
| === | 等值等型 |
| != | 不相等 |
| !== | 不等值或不等型 |
| > | 大于 |
| < | 小于 |
| >= | 大于或等于 |
| <= | 小于或等于 |
| ? | 三元运算符 |
==比较:它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;
===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。
由于JavaScript这个设计缺陷,不要使用比较,始终坚持使用=比较。
NaN这个特殊的Number与所有其他值都不相等,包括它自己:NaN === NaN; // false isNaN(NaN); // true
比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否小于某个阈值:
Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true
| 运算符 | 描述 |
|---|---|
| && | 逻辑与 |
| || | 逻辑或 |
| ! | 逻辑非 |
位运算符处理 32 位数。
该运算中的任何数值运算数都会被转换为 32 位的数。结果会被转换回 JavaScript 数。
| 运算符 | 描述 | 例子 | 等同于 | 结果 | 十进制 |
|---|---|---|---|---|---|
| & | 与 | 5 & 1 | 0101 & 0001 | 0001 | 1 |
| | | 或 | 5 | 1 | 0101 | 0001 | 0101 | 5 |
| ~ | 非 | ~ 5 | ~0101 | 1010 | 10 |
| ^ | 异或 | 5 ^ 1 | 0101 ^ 0001 | 0100 | 4 |
| << | 零填充左位移 | 5 << 1 | 0101 << 1 | 1010 | 10 |
| >> | 有符号右位移 | 5 >> 1 | 0101 >> 1 | 0010 | 2 |
| >>> | 零填充右位移 | 5 >>> 1 | 0101 >>> 1 | 0010 | 2 |
JavaScript 使用 32 位有符号数。因此,在 JavaScript 中,~ 5 不会返回 10,而是返回 -6。
~00000000000000000000000000000101 将返回 11111111111111111111111111111010。
双斜杠 // 或 /* 与 */ 之间的代码被视为注释。
注释会被忽略,不会被执行:
var x = 7; // 会执行
// var x = 8; 不会执行
在 JavaScript 中,标识符用于命名变量(以及关键词、函数和标签)。
首字符必须是字母、下划线(-)或美元符号($)。
JavaScript const 变量必须在声明时赋值
JavaScript不区分整数和浮点数,统一用Number表示。
var length = 7; // 数字
123; // 整数123
0.456; // 浮点数0.456
1.2345e3; // 科学计数法表示1.2345x1000,等同于1234.5
-99; // 负数
NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示
Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity
0xff00 //十六进制
字符串是以单引号’或双引号"括起来的任意文本
var lastName = "Gates"; // 字符串
true、false两种值
数组是一组按顺序排列的集合,集合的每个值称为元素。可以包括任意数据类型。数组用[]表示,元素之间用,分隔。
例如:[1, 2, 3.14, ‘Hello’, null, true];
另一种创建数组的方法是通过Array()函数实现:new Array(1, 2, 3); // 创建了数组[1, 2, 3]
数组的元素可以通过索引来访问。请注意,索引的起始值为0:
var arr = [1, 2, 3.14, 'Hello', null, true];
arr[0]; // 返回索引为0的元素,即1
arr[5]; // 返回索引为5的元素,即true
arr[6]; // 索引超出了范围,返回undefined
对象是一组由键-值组成的无序集合,例如:
var person = {
name: 'Bob',
age: 20,
tags: ['js', 'web', 'mobile'],
city: 'Beijing',
hasCar: true,
zipcode: null
};
对象的键都是字符串类型,值可以是任意数据类型。其中每个键又称为对象的属性。
要获取一个对象的属性,我们用对象变量.属性名的方式:
person.name; // 'Bob'
person.zipcode; // null
在 JavaScript 中,没有值的变量,其值是 undefined。typeof 也返回 undefined。
var person; // 值是 undefined,类型是 undefined。
undefined仅仅在判断函数参数是否传递的情况下有用。
任何变量均可通过设置值为 undefined 进行清空。其类型也将是 undefined。
person = undefined; // 值是 undefined,类型是 undefined。
null表示一个“空”的值,它和0以及空字符串’‘不同,0是一个数值,’'表示长度为0的字符串,而null表示“空”。
Undefined 与 null 的值相等,但类型不相等:
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
| 运算符 | 描述 |
|---|---|
| typeof | 返回变量的类型。 |
| instanceof | 返回 true,如果对象是对象类型的实例。 |
使用 JavaScript 的 typeof 来确定 JavaScript 变量的类型:
typeof 运算符返回变量或表达式的类型:
typeof "" // 返回 "string"
typeof "Bill" // 返回 "string"
typeof "Bill Gates" // 返回 "string"
typeof 0 // 返回 "number"
typeof 314 // 返回 "number"
typeof 3.14 // 返回 "number"
typeof (7) // 返回 "number"
typeof {name:'Bill', age:62} // 返回 "object"
typeof [1,2,3,4] // 返回 "object" (并非 "array",参见下面的注释)
typeof null // 返回 "object"
typeof function myFunc(){} // 返回 "function"