第八站:JavaScript的数据类型、运算符、流程控制语句

第八站:JavaScript的数据类型、运算符、流程控制语句

🚀欢迎来到第八站《JavaScript的数据类型、运算符、流程控制语句》!在这一站,我们将深入探索JavaScript中的核心概念,为你揭示这个语言的奇妙之处。准备好继续冒险了吗?让我们开始吧!

文章目录

一、数据类型

虽然JavaScript在声明变量时不需要指定类型,但它确实有数据类型的概念。在JavaScript中,数据类型可以分为原始类型和引用类型两类。

引用类型主要指的是JavaScript中的对象,而原始类型类似于Java语言中的基本数据类型,包括以下五种:

  • number:数字(整数、小数、NaN(Not a Number))
  • string:字符串,可以使用单引号或双引号表示
  • boolean:布尔值,true或false
  • null:表示对象为空
  • undefined:当声明的变量未初始化时,默认值为undefined

我们知道JavaScript是一门弱类型的语言,那么如何判断变量的类型呢?JavaScript提供了typeof运算符,通过它我们可以获取某个变量的数据类型。

javascript 复制代码
var a = 20;
alert(typeof a); // 输出"number"

接下来,我们将演示五种原始数据类型的使用:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数据类型</title>
</head>
<body>
    <script>
        // 原始数据类型演示
        alert(typeof 3); // 输出"number"
        alert(typeof 3.14); // 输出"number"

        alert(typeof "A"); // 输出"string"
        alert(typeof 'Hello'); // 输出"string"

        alert(typeof true); // 输出"boolean"
        alert(typeof false); // 输出"boolean"

        alert(typeof null); // 输出"object",这是一个历史遗留问题
        var a;
        alert(typeof a); // 输出"undefined",这是一个未初始化的变量
    </script>
</body>
</html>

二、运算符

JavaScript中的运算符几乎与Java中的运算符完全相同,只有一个运算符===是JavaScript独有的,也被称为全等运算符。全等运算符与双等号运算符的区别在于:

  • ==会进行类型转换,而===不会进行类型转换。

    当使用==运算符比较两个值时,JavaScript会首先比较它们的类型,然后根据需要进行类型转换,并最终比较它们的值是否相等。而使用===运算符进行比较时,不会进行类型转换,直接判断两个值是否完全相等。

全等运算符只有在类型和值都相同的情况下才会返回true。

javascript 复制代码
var a = 10;
alert(a == "10"); // 输出true
alert(a === "10"); // 输出false
alert(a === 10); // 输出true

三、类型转换

JavaScript中常见的类型转换包括:

  • 字符串转为数字:将字符串字面值转为数字,如果字面值不是数字,则转为NaN(Not a Number)。
  • 其他类型转为布尔类型:Number类型中的0和NaN转为false,其他数字转为true;String类型中的空字符串转为false,其他转为true;null和undefined均转为false。

以下是类型转换的示例:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-运算符</title>
</head>
<body>
    <script>
        var age = 20;
        var _age = "20";
        var $age = 20;

        alert(age == _age); // 输出true
        alert(age === _age); // 输出false
        alert(age === $age); // 输出true

        // 字符串转换为数字
        alert(parseInt("12")); // 输出12
        alert(parseInt("12A45")); // 输出12,遇到非数字字符停止转换
        alert(parseInt("A45")); // 输出NaN,没有数字可转换

        // 其他类型转换为布尔类型
        if (0) {
            alert("0 转换为false");
        }
        if (NaN) {
            alert("NaN 转换为false");
        }
        if (-1) {
            alert("除0和NaN的其他数字都转换为true"); // 这一行将输出,if表达式为true时执行括号内的内容
        }
        if (!"") {
            alert("空字符串转换为false,其他转换为true");
        }
        if (!null) {
            alert("null 转换为false");
        }
        if (!undefined) {
            alert("undefined 转换为false");
        }
    </script>
</body>
</html>

四、流程控制语句

JavaScript中常见的流程控制语句包括if...else if...else...、switch、for、while和do...while,它们与Java中的控制语句几乎完全相同。你可以在W3School的官方文档中查阅这些流程控制语句的详细用法。

t中常见的流程控制语句包括if...else if...else...、switch、for、while和do...while,它们与Java中的控制语句几乎完全相同。你可以在W3School的官方文档中查阅这些流程控制语句的详细用法。

相关推荐
半个落月8 小时前
LangSmith 全链路观测(下):用 Dataset 与 LLM Judge 量化评估 RA
javascript·langchain
半个落月8 小时前
LangSmith 全链路观测(上):用 LangGraph 与 Milvus 构建可追踪的 RAG 客服
javascript·langchain
Java后端的Ai之路9 小时前
06-React-Props
前端·react.js·前端框架
半个落月9 小时前
LangChain.js Agent 中间件实战:生命周期、动态工具与文件权限
javascript·langchain
Flynt9 小时前
开源"间谍卫星"说数据全是真的,我把它的免key数据源挨个试了一遍
前端·开源·数据可视化
Csvn10 小时前
渲染管线
前端
程序员大阳10 小时前
副队长CSS教程(33)–圆角与透明
前端·css·透明·圆角
志尊宝10 小时前
Vue3 零基础每日笔记(082):文件上传实战——el-upload 校验、自定义上传、头像预览
前端·javascript·vue.js·笔记·#javascript·#vue.js
鬼手点金11 小时前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
柳杉11 小时前
借助 Codex 和可视化工作流,从调研到完整实现,3D 大屏竟然可以这么简单
前端·ai编程·数据可视化