圆周率)返回 3.141592653589793
四舍五入)Math.round(x) 的返回值是 x 四舍五入为最接近的整数 document.getElementById("demo").innerHTML = Math.round(7.5);//返回 8
次幂)Math.pow(x, y) 的返回值是 x 的 y 次幂 document.getElementById("demo").innerHTML = Math.pow(2, 5);//返回 32
平方根)Math.sqrt(x) 返回 x 的平方根Math.sqrt(64); // 返回 8
绝对(正)值)Math.abs(x) 返回 x 的绝对(正)值Math.abs(-4.7); // 返回 4.7
更多的用法参考JavaScript 数学
0-1之间的随机数)Math.random() 返回 0(包括) 至 1(不包括) 之间的随机数 document.getElementById("demo").innerHTML = Math.random();
输出:0.4962596442377123
Math.random() 与 Math.floor() 一起使用用于返回随机整数。(1) Math.random() * 10 返回0-9之间的随机数
<body>
<p><span id="demo">span>p>
<script>
document.getElementById("demo").innerHTML = Math.floor(
Math.random() * 10
);
script>
body>
输出:8
(2) 返回0-10之间的随机数
Math.floor(Math.random() * 11);
或
Math.floor(Math.random() * 10) + 1; // 返回 1 至 10 之间的数
(3) 返回0-99之间的随机数
Math.floor(Math.random() * 100);
(4) Math.random() * 101 返回0-100之间的随机数
Math.floor(Math.random() * 101);
或
Math.floor(Math.random() * 100)+1;
min(包括)和 max(不包括)之间的随机数<body>
<p><span id="demo">span>p>
<script>
document.getElementById("demo").innerHTML = getrndInteger(5, 10);
function getrndInteger(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}
script>
body>
都包括)之间的随机数 <body>
<p><span id="demo">span>p>
<script>
document.getElementById("demo").innerHTML = getrndInteger(5, 10);
function getrndInteger(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
script>
body>
var voteable = (age < 18) ? "太年轻":"足够成熟";
示例:
<body>
<p>请输入您的年龄p>
<input type="num" id="age" />
<button onclick="myFunction()">保存button>
<p id="demo">p>
<script>
function myFunction() {
var age, text;
age = Number(document.getElementById("age").value);
//isNaN函数用于检查其参数是否是非数字值。
if (isNaN(age) || age == "") {
text = "请输入正确的年龄";
} else {
text = age < 18 ? "年轻" : "成熟";
}
document.getElementById("demo").innerHTML = text;
}
script>
body>
在 JavaScript 中,我们可使用如下条件语句:
if 来规定要执行的代码块,如果指定条件为 trueelse 来规定要执行的代码块,如果相同的条件为 falseelse if 来规定要测试的新条件,如果第一个条件为 falseswitch 来规定多个被执行的备选代码块if (条件) {
如果条件为 true 时执行的代码
}
或
if (条件) {
条件为 true 时执行的代码块
} else {
条件为 false 时执行的代码块
}
或
if (条件 1) {
条件 1 为 true 时执行的代码块
} else if (条件 2) {
条件 1 为 false 而条件 2 为 true 时执行的代码块
} else {
条件 1 和条件 2 同时为 false 时执行的代码块
}
等…
switch 语句用于基于不同条件执行不同动作。break 关键词,它会跳出 switch 代码块。default 关键词规定不存在 case 匹配时所运行的代码。(可省略)。Switch case 使用严格比较(===),值必须与要匹配的类型相同,只有操作数属于同一类型时,严格比较才能为 true。switch(表达式) {
case n:
代码块
break;
case n:
代码块
break;
default:
默认代码块
}
示例:
<body>
<p id="demo">p>
<script>
var day;
switch (new Date().getDay()) {
case 0:
day = "周日";
break;
case 1:
day = "周一";
break;
case 2:
day = "周二";
break;
case 3:
day = "周三";
break;
case 4:
day = "周四";
break;
case 5:
day = "周五";
break;
case 6:
day = "周六";
break;
default:
day = "周八";
}
document.getElementById("demo").innerHTML = day;
script>
body>
JavaScript 支持不同类型的循环:
for - 多次遍历代码块for/in - 遍历对象属性while - 当指定条件为 true 时循环一段代码块do/while - 当指定条件为 true 时循环一段代码块for (语句 1; 语句 2; 语句 3) {
要执行的代码块
}
示例:
<body>
<p id="demo">p>
<script>
var text = "";
var i;
for (i = 0; i < 5; i++) {
text += i + "
";
}
document.getElementById("demo").innerHTML = text;
script>
body>
输出:
0
1
2
3
4
遍历对象的属性示例:
<body>
<p id="demo">p>
<script>
var text = "";
var person = { fname: "Bill", lname: "Gates", age: 62 };
var x;
for (x in person) {
text += person[x] + " ";
}
document.getElementById("demo").innerHTML = text;
script>
body>
输出:Bill Gates 62
例子解释:
① for in 循环遍历 person 对象
② 每次迭代返回一个键 (x)
③ 键用于访问键的值
④ 键的值为 person[x]
<body>
<p id="demo">p>
<script>
var text = "";
var nums = [1, 4, 7, 10, 100];
var x;
for (x in nums) {
text += nums[x] + " ";
}
document.getElementById("demo").innerHTML = text;
script>
body>
输出:1 4 7 10 100
或使用Array.forEach():
DOCTYPE html>
<html>
<body>
<h2>JavaScript Array.forEach()h2>
<p>为每个数组元素调用一次函数。p>
<p id="demo">p>
<script>
const numbers = [45, 4, 9, 16, 25];
let txt = "";
numbers.forEach(myFunction);
document.getElementById("demo").innerHTML = txt;
function myFunction(value) {
txt += value + "
";
}
script>
body>
html>
for (variable of iterable) {
// code block to be executed
}
(1)遍历数组:
注意是: text += x + " ";而不是: text += nums[x] + " ";
<body>
<p id="demo">p>
<script>
var text = "";
var nums = [1, 4, 7, 10, 100];
var x;
for (let x of nums) {
text += x + " ";
}
document.getElementById("demo").innerHTML = text;
script>
body>
(2)遍历字符串:
<body>
<p id="demo">p>
<script>
var text = "";
var language = "Chinese";
var x;
for (x of language) {
text += x + "
";
}
document.getElementById("demo").innerHTML = text;
script>
body>
输出:
C
h
i
n
e
s
e
true,循环能够一直执行代码块。while (条件) {
要执行的代码块
}
示例:在下面的例子中,循环中的代码将运行,一遍又一遍,只要变量(i)小于 10:
<body>
<p id="demo">p>
<script>
var text = "";
var i = 0;
while (i < 10) {
text += i + "
";
i++;
}
document.getElementById("demo").innerHTML = text;
script>
body>
输出:0
1
2
3
4
5
6
7
8
9
do {
要执行的代码块
}
while (条件);
示例:
<body>
<p id="demo">p>
<script>
var text = "";
var i = 0;
do {
text += i + "
";
i++;
} while (i < 10);
document.getElementById("demo").innerHTML = text;
script>
body>
输出:0
1
2
3
4
5
6
7
8
9
break 语句“跳出”循环。
continue 语句“跳过”循环中的一个迭代。
break语句可被用于“跳出” switch 语句。break 语句也可用于跳出循环。<body>
<p>带 break 的循环p>
<p id="demo">p>
<script>
var text = "";
var i;
for (i = 0; i < 10; i++) {
if (i === 3) { break; }
text += "数字是 " + i + "
";
}
document.getElementById("demo").innerHTML = text;
script>
body>
输出:
带 break 的循环
数字是 0
数字是 1
数字是 2
continue 语句中断(循环中)的一个迭代,如果发生指定的条件。然后继续循环中的下一个迭代。<body>
<p>这个循环在 i=3 时跳过这一步:p>
<p id="demo">p>
<script>
var text = "";
var i;
for (i = 0; i < 10; i++) {
if (i === 3) { continue; }
text += "数字是 " + i + "
";
}
document.getElementById("demo").innerHTML = text;
script>
body>
输出:
这个循环在 i=3 时跳过这一步:
数字是 0
数字是 1
数字是 2
数字是 4
数字是 5
数字是 6
数字是 7
数字是 8
数字是 9
typeof正则表达式是构成搜索模式(search pattern)的字符序列。
当您搜索文本中的数据时,您可使用搜索模式来描述您搜索的内容。
正则表达式可以是单字符,或者更复杂的模式。
正则表达式可用于执行所有类型的文本搜索和文本替换操作。
/pattern/modifiers;
示例:
var patt = /w3school/i;
例子解释:
/w3school/i 是一个正则表达式。
w3school 是模式(pattern)(在搜索中使用)。
i 是修饰符(把搜索修改为大小写不敏感)。
在 JavaScript 中,正则表达式常用于两个字符串方法:search() 和 replace()。
search() 方法使用表达式来搜索匹配,然后返回匹配的位置。
replace() 方法返回模式被替换处修改后的字符串。
search() 方法也接受字符串作为搜索参数。(1)使用字符串来执行对 “W3school” 的搜索:
<body>
<p id="demo">p>
<script>
var text = "Welcome China";
var n = text.search("China");
document.getElementById("demo").innerHTML = n;
script>
body>
输出:8
(2)在字符串方法 search() 中使用正则表达式
<body>
<p id="demo">p>
<script>
var text = "Welcome China";
var n = text.search(/china/i);
document.getElementById("demo").innerHTML = n;
script>
body>
输出:8
如果查询不到则输出:-1
(1)replace() 也接受字符串作为搜索参数:
<body>
<p id="demo">p>
<script>
var text = "Welcome China";
var n = text.replace("China", "A");
document.getElementById("demo").innerHTML = n;
script>
body>
输出:Welcome A
(2)在字符串方法 replace() 中使用正则表达式:
<body>
<p id="demo">p>
<script>
var text = "Welcome China";
var n = text.replace(/china/i, "B");
document.getElementById("demo").innerHTML = n;
script>
body>
输出:Welcome B

括号用于查找一定范围的字符串:

元字符(Metacharacter)是拥有特殊含义的字符:

Quantifiers 定义量词:

test() 是一个正则表达式方法。
它通过模式来搜索字符串,然后根据结果返回 true 或 false。
示例:搜索是否包含字母‘e’:
<body>
<p id="demo">p>
<script>
var text = "Welcome China";
document.getElementById("demo").innerHTML = /e/.test(text);
script>
body>
输出:true
exec() 方法是一个正则表达式方法。
它通过指定的模式(pattern)搜索字符串,并返回已找到的文本。
如果未找到匹配,则返回 null。
<body>
<p id="demo">p>
<script>
var text = "Welcome China";
document.getElementById("demo").innerHTML = /e/.exec(text);
script>
body>
输出:e