JavaScript学习笔记(五)

25、JavaScript 数学

25.1 Math.PI; (圆周率

返回 3.141592653589793

25.2 Math.round()(四舍五入

  • Math.round(x) 的返回值是 x 四舍五入为最接近的整数
html 复制代码
 document.getElementById("demo").innerHTML = Math.round(7.5);//返回 8

25.3 Math.pow()(次幂

  • Math.pow(x, y) 的返回值是 xy 次幂
html 复制代码
  document.getElementById("demo").innerHTML = Math.pow(2, 5);//返回 32

25.4 Math.sqrt()(平方根

  • Math.sqrt(x) 返回 x 的平方根
html 复制代码
Math.sqrt(64);      // 返回 8

25.5 Math.abs() (绝对(正)值

  • Math.abs(x) 返回 x 的绝对(正)值
html 复制代码
Math.abs(-4.7);     // 返回 4.7

更多的用法参考JavaScript 数学

26、JavaScript 随机

26.1 Math.random() (0-1之间的随机数

  • Math.random() 返回 0(包括) 至 1(不包括) 之间的随机数
html 复制代码
  document.getElementById("demo").innerHTML = Math.random();

输出:0.4962596442377123

26.2 JavaScript 随机整数

  • Math.random()Math.floor() 一起使用用于返回随机整数。

(1) Math.random() * 10 返回0-9之间的随机数

html 复制代码
 <body>
    <p><span id="demo"></span></p>
    <script>
      document.getElementById("demo").innerHTML = Math.floor(
        Math.random() * 10
      );
    </script>
  </body>

输出:8

(2) 返回0-10之间的随机数

html 复制代码
Math.floor(Math.random() * 11);

html 复制代码
Math.floor(Math.random() * 10) + 1;	// 返回 1 至 10 之间的数

(3) 返回0-99之间的随机数

html 复制代码
Math.floor(Math.random() * 100);

(4) Math.random() * 101 返回0-100之间的随机数

html 复制代码
Math.floor(Math.random() * 101);

html 复制代码
Math.floor(Math.random() * 100)+1;

26.3 一个适当的随机函数

  • (1)始终返回介于 min(包括)和 max(不包括)之间的随机数
html 复制代码
<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>
  • (2)始终返回介于 min 和 max(都包括)之间的随机数
html 复制代码
  <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>

27、JavaScript 逻辑

  • JavaScript 布尔(逻辑)代表两个值之一:true 或 false。
    JavaScript 逻辑

28、JavaScript 比较

  • 比较和逻辑运算符用于测试 true 或 false。
html 复制代码
var voteable = (age < 18) ? "太年轻":"足够成熟";

示例:

html 复制代码
 <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 比较

29、JavaScript 条件

  • 条件语句用于基于不同条件执行不同的动作。

在 JavaScript 中,我们可使用如下条件语句:

  • 使用 if 来规定要执行的代码块,如果指定条件为 true
  • 使用 else 来规定要执行的代码块,如果相同的条件为 false
  • 使用 else if 来规定要测试的新条件,如果第一个条件为 false
  • 使用 switch 来规定多个被执行的备选代码块

29.1 if+else

  • 使用 if 语句来规定假如条件为 true 时被执行的 JavaScript 代码块。
  • 语法:
html 复制代码
if (条件) {
    如果条件为 true 时执行的代码
} 

html 复制代码
if (条件) {
    条件为 true 时执行的代码块
} else { 
    条件为 false 时执行的代码块
}

html 复制代码
if (条件 1) {
    条件 1 为 true 时执行的代码块
} else if (条件 2) {
    条件 1 为 false 而条件 2 为 true 时执行的代码块
 } else {
    条件 1 和条件 2 同时为 false 时执行的代码块
}

等...

29.2 Switch

  • switch 语句用于基于不同条件执行不同动作。
  • 如果 JavaScript 遇到 break 关键词,它会跳出 switch 代码块。
  • default 关键词规定不存在 case 匹配时所运行的代码。(可省略)。
  • Switch case 使用严格比较(===),值必须与要匹配的类型相同,只有操作数属于同一类型时,严格比较才能为 true
  • 语法:
html 复制代码
switch(表达式) {
     case n:
        代码块
        break;
     case n:
        代码块
        break;
     default:
        默认代码块
} 

示例:

html 复制代码
 <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>

30、JavaScript For 循环

  • 循环可多次执行代码块。

JavaScript 支持不同类型的循环:

  • for - 多次遍历代码块
  • for/in - 遍历对象属性
  • while - 当指定条件为 true 时循环一段代码块
  • do/while - 当指定条件为 true 时循环一段代码块

30.1 For 循环

  • 语法:
html 复制代码
for (语句 1; 语句 2; 语句 3) {
     要执行的代码块
}

示例:

html 复制代码
<body>
    <p id="demo"></p>
    <script>
      var text = "";
      var i;
      for (i = 0; i < 5; i++) {
        text += i + "<br>";
      }
      document.getElementById("demo").innerHTML = text;
    </script>
  </body>

输出:

0

1

2

3

4

30.2 For/In 循环

  • (1)JavaScript for/in 语句遍历对象的属性

示例:

html 复制代码
  <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]

  • (2)for in 语句也可以遍历数组的属性:
html 复制代码
 <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():

html 复制代码
<!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 + "<br>"; 
}
</script>

</body>
</html>

30.3 For Of 循环

  • for of 语句循环遍历可迭代对象的值。
  • 它允许您循环遍历可迭代的数据结构,例如数组、字符串、映射、节点列表等。
  • 语法:
html 复制代码
for (variable of iterable) {
  // code block to be executed
}

(1)遍历数组:

注意是: text += x + " ";而不是: text += nums[x] + " ";

html 复制代码
<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)遍历字符串:

html 复制代码
  <body>
    <p id="demo"></p>
    <script>
      var text = "";
      var language = "Chinese";
      var x;
      for (x of language) {
        text += x + "<br>";
      }
      document.getElementById("demo").innerHTML = text;
    </script>
  </body>

输出:

C

h

i

n

e

s

e

30.4 While 循环

  • 只要条件为 true,循环能够一直执行代码块。
  • 语法:
html 复制代码
while (条件) {
    要执行的代码块
}

示例:在下面的例子中,循环中的代码将运行,一遍又一遍,只要变量(i)小于 10:

html 复制代码
  <body>
    <p id="demo"></p>
    <script>
      var text = "";
      var i = 0;
      while (i < 10) {
        text += i + "<br>";
        i++;
      }
      document.getElementById("demo").innerHTML = text;
    </script>
  </body>

输出:0

1

2

3

4

5

6

7

8

9

30.5 Do/While 循环

  • do/while 循环是 while 循环的变体。在检查条件是否为真之前,这种循环会执行一次代码块,然后只要条件为真就会重复循环。
  • 语法:
html 复制代码
do {
    要执行的代码块
}

while (条件);

示例:

html 复制代码
  <body>
    <p id="demo"></p>
    <script>
      var text = "";
      var i = 0;
      do {
        text += i + "<br>";
        i++;
      } while (i < 10);
      document.getElementById("demo").innerHTML = text;
    </script>
  </body>

输出:0

1

2

3

4

5

6

7

8

9

31 、JavaScript Break 和 Continue

  • break 语句"跳出"循环。

  • continue 语句"跳过"循环中的一个迭代。

31.1 Break 语句

  • break语句可被用于"跳出" switch 语句。
  • break 语句也可用于跳出循环。
html 复制代码
<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 + "<br>";
}
document.getElementById("demo").innerHTML = text;
</script>

</body>

输出:

带 break 的循环

数字是 0

数字是 1

数字是 2

31.2 Continue 语句

  • continue 语句中断(循环中)的一个迭代,如果发生指定的条件。然后继续循环中的下一个迭代。
html 复制代码
<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 + "<br>";
}
document.getElementById("demo").innerHTML = text;
</script>

</body>

输出:

这个循环在 i=3 时跳过这一步:

数字是 0

数字是 1

数字是 2

数字是 4

数字是 5

数字是 6

数字是 7

数字是 8

数字是 9

32、JavaScript typeof

JavaScript typeof

33、JavaScript 类型转换

JavaScript 类型转换

34、JavaScript 位运算符

JavaScript 位运算符

35、JavaScript 正则表达式

  • 正则表达式是构成搜索模式的字符序列。该搜索模式可用于文本搜索和文本替换操作。
  • 什么是正则表达式?

正则表达式是构成搜索模式(search pattern)的字符序列。

当您搜索文本中的数据时,您可使用搜索模式来描述您搜索的内容。

正则表达式可以是单字符,或者更复杂的模式。

正则表达式可用于执行所有类型的文本搜索和文本替换操作。

  • 语法:
html 复制代码
/pattern/modifiers;

示例:

html 复制代码
var patt = /w3school/i;

例子解释:
/w3school/i 是一个正则表达式。

w3school 是模式(pattern)(在搜索中使用)。

i 是修饰符(把搜索修改为大小写不敏感)。

35.1 使用字符串方法

  • 在 JavaScript 中,正则表达式常用于两个字符串方法:search()replace()

  • search() 方法使用表达式来搜索匹配,然后返回匹配的位置。

  • replace() 方法返回模式被替换处修改后的字符串。

35.1.1使用字符串方法 search() 来处理字符串

  • search() 方法也接受字符串作为搜索参数。

(1)使用字符串来执行对 "W3school" 的搜索:

html 复制代码
<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() 中使用正则表达式

html 复制代码
 <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

35.1.2 使用字符串方法 replace() 处理字符串

(1)replace() 也接受字符串作为搜索参数:

html 复制代码
<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() 中使用正则表达式:

html 复制代码
 <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

35.2 正则表达式修饰符

35.3 正则表达式模式

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

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


Quantifiers 定义量词:

35.4 使用 RegExp 对象

  • 在 JavaScript 中,RegExp 对象是带有预定义属性和方法的正则表达式对象。

35.4.1 使用 test()

  • test() 是一个正则表达式方法。

  • 它通过模式来搜索字符串,然后根据结果返回 truefalse

示例:搜索是否包含字母'e':

html 复制代码
  <body>
    <p id="demo"></p>
    <script>
      var text = "Welcome China";
      document.getElementById("demo").innerHTML = /e/.test(text);
    </script>
  </body>

输出:true

35.4.2 使用 exec()

  • exec() 方法是一个正则表达式方法。

  • 它通过指定的模式(pattern)搜索字符串,并返回已找到的文本。

  • 如果未找到匹配,则返回 null。

html 复制代码
  <body>
    <p id="demo"></p>
    <script>
      var text = "Welcome China";
      document.getElementById("demo").innerHTML = /e/.exec(text);
    </script>
  </body>

输出:e

36、JavaScript 运算符优先级

JavaScript 运算符优先级

相关推荐
hlyling18 分钟前
一键高效处理,批量缩放PNG图片,按比例轻松调整,高效工作从此开始!
javascript·python·c#·objective-c·batch·symfony
love6a620 分钟前
从零开始学习网络安全渗透测试之Linux基础篇——(六)Linux网络及防火墙配置
linux·学习·web安全
mm99542027 分钟前
取得了PMP证书后有哪些优势?不清楚的快来看!
经验分享·学习·职场和发展·项目管理
灵韵设计43 分钟前
学习笔记——动态路由——IS-IS中间系统到中间系统(区域划分)
笔记·学习·is-is区域划分·is-is和ospf区域区别
小天呐1 小时前
eggjs笔记
笔记·node.js·eggjs
蛔虫在他乡1 小时前
从零开始的python学习生活1
python·学习·生活
不如吃茶去2 小时前
一文搞懂React Hooks闭包问题
前端·javascript·react.js
仁希'2 小时前
《Unity3D高级编程之进阶主程》第二章 架构(三) - 架构的误区,如何做前端架构,以及如何架构Unity3D项目
笔记·unity·架构
来之梦3 小时前
uniapp中 uni.previewImage用法
前端·javascript·uni-app
野猪佩奇0073 小时前
uni-app使用ucharts地图,自定义Tooltip鼠标悬浮显示内容并且根据@getIndex点击事件获取点击的地区下标和地区名
前端·javascript·vue.js·uni-app·echarts·ucharts