JS的超干货笔记(第三弹)

21.for 循环

for...in 和 for...of 的写法

  1. for...in 循环的语法是这样的:

let peppaFamily = ["佩奇", "乔治", "猪妈妈", "猪爸爸"];
​
for (let i in peppaFamily) {
  console.log(peppaFamily[i]);
}
// 输出:
// 佩奇
// 乔治
// 猪妈妈
// 猪爸爸

for...in 循环会访问数组中的每一项,这里的 i 对应数组中每一项的下标。

for...in 不但可以循环数组,还能循环对象。

  1. for...of 循环

let peppaFamily = ["佩奇", "乔治", "猪妈妈", "猪爸爸"];
​
for (let item of peppaFamily) {
  console.log(item);
}
// 输出:
// 佩奇
// 乔治
// 猪妈妈
// 猪爸爸

for...of 循环也会访问数组中的每一项,这里的 item 对应数组中每一项。

两者的区别:for...in 循环遍历的结果是数组元素的下标,而 for...of 遍历的结果是元素的值。

22.while循环

注意:初始条件写在 while 循环外,更新条件的表达式写在执行内容里。

do...while 循环

while 循环有两种写法:while 和 do...while。

两者的区别在于先判断还是先执行:

写法一:while 先判断,后执行。 写法二:do...while,先 “do” (执行),后 while (判断)。

do...while 的语法如下:

同样的:初始条件写在 while 循环外,更新条件的表达式写在执行内容里。

但因为 do...while 是先执行后判断的,所以一定会执行一次 do 之后的内容。比如:

let i = 0;
​
do {
  console.log(i); // 输出:0
  i++;
} while (i < 0 );

23.跳出循环 break/continue

跳出整个循环:break

break 的作用就是跳出循环,不管循环有没有结束都不会再继续下去,而是直接执行循环之后的语句。

跳过某次迭代:continue

break 和 continue 的区别

break 是终止整个循环,而 continue 是结束当前迭代,进入下一次迭代,并不会终止循环。

注意点:(当continue结束时,再次循环的时候仍然是continue时候的值,所以需要 i++.

let num = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368];
let i = 0;
​
while (i < num.length) {
  if (num[i]%5 === 0) {
    // 用 continue 跳出符合条件的这一次迭代
    console.log("跳过了第" + (i + 1) + "个数:" + num[i]);
    i++;
    continue;
  }
  const handledNum = num[i] / 5;
  console.log(handledNum);
  i++;
}
​
// 循环之后的语句
console.log("循环之后的语句");

这里要注意一下,因为 while 循环中,i++ 是放在“{}”中执行的,所以在执行 continue 之前要先执行 i++ 哦,不然会陷入死循环的。

24.random随机数

获取随机数 Math.random() [0,1)

下面这句代码中的 Math.random() 就是 js 的内置函数。Math 是一个内置对象,用于执行数学任务。

const num = Math.random();

通过上面这行代码,我们可以获得一个范围在 [0, 1) 之间的随机数。即从0(包括0)往上,但是不包括1(排除1)。

Math.floor(x)

js内置方法,返回小于 x 的最大整数。比如,Math.floor(2.3) 返回 2,Math.floor(4.9) 返回 4。

25.函数的声明/调用

(((声明+++调用)))

1. 用 function 命令声明

2. 用函数表达式声明

函数表达式声明函数的格式如下:

两种声明方式的区别

  1. 结尾的大括号后是否需要加“;”:

  • function 命令声明:结尾的大括号后不需要加“;”

  • 函数表达式:结尾的大括号后需要加“;”

  1. 有无声明提升:(声明与调用能否互换)

  • function 命令声明:有提升;

  • 函数表达式:没有提升;

因为函数表达式是一个表达式,所以要加“;”。总的来说两种声明方式的区别还是比较小的。

注意:以上代码中的符号,比如引号、括号、分号等均为英文状态下的符号。

函数的重复声明

如果同一个函数被多次声明,后面的声明就会覆盖前面的声明。

function print() {
  console.log("JavaScript 真有趣");
}
​
function print() {
  console.log("JavaScript 真有趣...个鬼嘞");
}
​
print();

运行结果:

JavaScript 真有趣...个鬼嘞

前一次声明在任何时候都是无效的,这一点要特别注意。

立即执行函数

当函数只使用一次时,通常使用IIFE (Immediately Invokable Function Expressions):

(function() {
  console.log("这个函数只执行一次");
})();

它会在函数声明后立即调用函数,除这一次调用外因为是匿名函数,所以无从调用。

26.函数的参数

函数可以接受多个参数,多个参数以“,”(英文逗号)分隔:

// 参数 figure(位数) txt(文本) 
function code(figure, txt) {
  const num1 = Math.random() * 0.9 + 0.1;
  const num2 = Math.floor(num1 * Math.pow(10, figure));
  
  console.log(txt + num2);
}
​
code(6, "六位随机数:");

打印结果:

六位随机数:556540

27.Math.pow(x,y)

Math.pow(x,y) 是js内置方法,求取 x 的 y 次幂。比如,Math.pow(10, 4) 的计算结果为 10000。

28.return 返回值

return xxx;

xxx 对应的是需要结果的函数。

// 参数 figure(位数)
function code(figure) {
  const num1 = Math.random() * 0.9 + 0.1;
  const num2 = Math.floor(num1 * Math.pow(10, figure));
​
  // 用“return”把生成的随机数作为函数的结果返回
  return num2;
}
​
let result = code(6);
console.log(result);

注意:在函数中遇到return语句,就直接返回return后面的那个表达式的值,后面即使还有语句,也不会被执行。

29.abs 绝对值

30.数据类型判断

let num = 4;
typeof num; // number
​
let str = "优课达";
typeof str; // string
​
typeof num === 'number' // true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸡腿子-麦麦呀!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值