第八站: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的官方文档中查阅这些流程控制语句的详细用法。

相关推荐
不买Huracan不改名5 分钟前
安装Codex(需要用npm)
前端·npm·node.js
Dorcas_FE13 分钟前
axios请求缓存与重复拦截:“相同请求未完成时,不发起新请求”
前端·spring·缓存
dreams_dream21 分钟前
vue中axios与fetch比较
前端·javascript·vue.js
梦鱼41 分钟前
Vue 项目图标一把梭:Iconify 自用小记(含 TS/JS 双版本组件)
前端·javascript·vue.js
best66642 分钟前
Flex 与 Grid 的 order 参数:布局界的 "插队神器"
前端
小噔小咚什么东东43 分钟前
看到了很多次WebRTC,但是你真的需要它吗?
前端·webrtc
猫七先生44 分钟前
微信小程序一键登录可行性方案
前端·微信小程序
维他AD钙44 分钟前
前端开发 8 个非常实用小技巧:高效解决日常开发痛点
前端
光影少年1 小时前
webpack和vite优化方案都有哪些
前端·webpack·node.js