博客列表 >JavaScript的数据类型和判断与循环

JavaScript的数据类型和判断与循环

Pharaoh
Pharaoh原创
2022年07月21日 11:51:37477浏览

数据类型

JavaScript 的数据类型,可以大致分为以下几种:

  • 数值(number):整数和小数(比如1和3.14)
  • 字符串(string):文本(比如Hello World)
  • 布尔值(boolean):表示真伪的两个特殊值,即true(真)和false(假)
  • undefined:表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值
  • null:表示空值,即此处的值为空
  • 对象(object):各种值组成的集合

原始类型

数值,字符串,布尔值,undefined,null都是原始类型,即它们是最基本的数据类型,不能再细分了,它们有以下两个特点:

  1. 单值let a = 1;
  2. 动态,即它们的数据类型由值的类型确定
    1. let a = 1;
    2. console.log(typeof a);
    3. a = "str";
    4. console.log(typeof a);

引用类型/合成类型

函数,数组,对象,因为一个它们往往是多个原始类型的值的合成,可以看作是一个存放各种值的容器

  1. const myArrey = ["我会在哪里呢", "你能猜到吗", true];
  2. console.log(myArrey);
  3. // 单独显示数组里的元素要使用索引/下标
  4. console.log(myArrey[0]);
  5. const myCar = { name: "benz", model: "E300L" };
  6. console.log(myCar);
  7. console.log(myCar["name"]);
  8. console.log(myCar.model);

如果变量的值是原始数据let a = 1;,那么在a内存中保存的就是变量名a和数据1
如果变量的值是引用类型函数,数组或对象const userInfo = {name:"Pharaoh", age:"30", skill:"吹牛"},那么userInfo内存中保存的是对象的地址值,地址指向了内存中保存{name:"Pharaoh", age:"30", skill:"吹牛"}的位置:

条件判断

使用if和switch,都可以完成条件判断,只有满足预设的条件,才会执行相应的语句

if

  1. // 单分支
  2. if (逻辑判断)
  3. 操作;
  4. // 双分支
  5. if (逻辑判断) {
  6. 满足条件时,执行的操作;
  7. }
  8. else {
  9. 不满足条件时,执行的操作;
  10. }
  11. // 多分支
  12. if (逻辑判断) {
  13. 满足条件时,执行的操作;
  14. }
  15. else if (逻辑判断){
  16. 满足条件时,执行的操作;
  17. }
  18. else if (逻辑判断){
  19. 满足条件时,执行的操作;
  20. }
  21. else {
  22. 不满足条件时,执行的操作;
  23. }

实例

  1. // 单分支
  2. let x = 1;
  3. if (x === 1) {
  4. console.log("X等于:" + x);
  5. }
  6. // 双分支
  7. if (x === 2) {
  8. console.log("X等于:" + x);
  9. } else {
  10. console.log("X不等于:" + 2);
  11. }
  12. // 多分支
  13. let car = "凯迪拉克";
  14. if (car === "凯迪拉克") {
  15. console.log(car + "不拉客,只拉美女和模特");
  16. } else if (car === "奥迪") {
  17. console.log("EA888谁修谁发家");
  18. } else if (car === "大众") {
  19. console.log("EA888谁修谁发家");
  20. } else {
  21. console.log("抱歉本会所暂不接待您的品牌");
  22. }

switch

多个if else if一起使用的的时候可以使用更方便的switch

  1. switch (true) {
  2. case 逻辑判断:
  3. 满足条件时,执行的操作;
  4. break;
  5. case 逻辑判断:
  6. 满足条件时,执行的操作;
  7. break;
  8. default:
  9. 以上逻辑都不满足条件时,执行的操作;
  10. }

实例

  1. let myLuckyNum = 8;
  2. switch (true) {
  3. case myLuckyNum === 8:
  4. console.log("恭喜你答对了");
  5. break;
  6. case myLuckyNum > 8:
  7. console.log("太大了");
  8. break;
  9. case myLuckyNum < 8:
  10. console.log("太小了");
  11. break;
  12. default:
  13. console.log("我的意大利炮呢?");
  14. }
  15. // 单值
  16. myLuckyNum = "8";
  17. switch (myLuckyNum) {
  18. case 8:
  19. console.log("恭喜你答对了");
  20. break;
  21. default:
  22. console.log("别乱输入");
  23. }

条件判断拓展:三元运算符

三元运算符可以理解为if…else的简写形式
(条件) ? 表达式1 : 表达式2
let x = (x === n) ? "X和N相等" : "X和N不相等"
如果“条件”为true,返回“表达式1”的值,否则返回“表达式2”的值

break和continue

break语句和continue语句都具有跳转作用,可以让代码不按既有的顺序执行

  • break语句用于跳出代码块或循环
    1. let i = 0;
    2. while (i < 100){
    3. i++;
    4. if (i === 5)
    5. break;
    6. console.log('i 当前为:' + i);
    7. }
  • continue语句用于立即终止本轮循环,返回循环结构的头部,开始下一轮循环
    1. let i = 0;
    2. while (i < 100){
    3. i++;
    4. if (i === 6)
    5. continue;
    6. console.log('i 当前为:' + i);
    7. }

循环

循环可以重复执行操作,有while和for两种

while循环

while循环需要一个条件,如果条件为真(true),就会重复执行代码区块里的操作

  1. while (条件) {
  2. 操作;
  3. }

实例

  1. // while
  2. let userNum = 1;
  3. while (userNum <= 8) {
  4. console.log(userNum);
  5. userNum++;
  6. }

do while循环

do while循环与while循环类似,唯一的区别就是先运行一次循环体,然后判断循环条件

  1. do {
  2. 操作;
  3. } while (条件);

实例

  1. // do while
  2. userNum = 0;
  3. do {
  4. userNum++;
  5. console.log("当前用户为: " + userNum);
  6. } while (userNum < 3);

for循环

for循环需要指定循环的起点(计数器),条件和递增操作

  1. for (起点(计数器); 条件; 递增操作) {
  2. 操作;
  3. }

实例

  1. // for
  2. let wishList = [
  3. { hat: "northface", color: "black" },
  4. { shose: "dunk", color: "black" },
  5. { shirt: "jack", color: "black" },
  6. ];
  7. let wishNum = wishList.length;
  8. for (i = 0; i < wishNum; i++) {
  9. console.log(wishList[i]);
  10. }

for of 和for in

  • for in遍历的是对象的属性的索引/下标

    1. let wishList = [
    2. { hat: "northface", color: "black" },
    3. { shose: "dunk", color: "black" },
    4. { shirt: "jack", color: "black" },
    5. ];
    6. for (let n in wishList) {
    7. console.log(n);
    8. }

    1. // 可以使用数组的索引得到元素
    2. for (let n in wishList) {
    3. console.log(wishList[n]);
  • for of遍历的是对象的属性所对应的元素

    1. for (let n of wishList) {
    2. console.log(n);
    3. }

    1. // 可以用内置的方法获得键(key)和索引
    2. for (let n of wishList.keys()) {
    3. console.log(n);
    4. }
    5. // 可以用内置的方法获得键(key)和值(values)
    6. for (let n of wishList.entries()) {
    7. console.log(n);
    8. }
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议