第八站: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...switchforwhiledo...while,它们与Java中的控制语句几乎完全相同。你可以在W3School的官方文档中查阅这些流程控制语句的详细用法。

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

相关推荐
gaolei_eit1 小时前
Vue3项目ES6转ES5,兼容低版本的硬件设备,React也
javascript·react.js·es6
一位搞嵌入式的 genius1 小时前
从 ES6 到 ESNext:JavaScript 现代语法全解析(含编译工具与实战)
前端·javascript·ecmascript·es6
linweidong3 小时前
C++ 模块化编程(Modules)在大规模系统中的实践难点?
linux·前端·c++
leobertlan6 小时前
2025年终总结
前端·后端·程序员
子兮曰7 小时前
OpenClaw架构揭秘:178k stars的个人AI助手如何用Gateway模式统一控制12+通讯频道
前端·javascript·github
百锦再7 小时前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
莲华君7 小时前
React快速上手:从零到项目实战
前端·reactjs教程
百锦再7 小时前
React编程高级主题:测试代码
android·前端·javascript·react.js·前端框架·reactjs
易安说AI8 小时前
Ralph Loop 让Claude无止尽干活的牛马...
前端·后端
颜酱9 小时前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法