编程笔记 html5cssjs 069 JavaScrip Undefined数据类型

编程笔记 html5&css&js 069 JavaScrip Undefined数据类型

  • 一、undefined数据类型
  • 二、类型运算
  • 小结

在JavaScript中,undefined 是一种基本数据类型,它表示一个变量已经声明但未定义(即没有赋值)或者一个对象属性不存在。

一、undefined数据类型

在JavaScript中,undefined 是一种基本数据类型,它表示一个变量已经声明但未定义(即没有赋值)或者一个对象属性不存在。

  1. 声明未赋值的变量

    // 声明但未赋值的变量默认为 undefined
    var myVar;
    console.log(myVar); // 输出: undefined
    
  2. 函数参数未传入值

    function greet(name) {console.log(`Hello, ${name}!`);
    }greet(); // 函数调用时缺少参数
    // 输出:Hello, undefined!
    
  3. 访问不存在的对象属性

    var obj = {};
    console.log(obj.nonExistingProp); // 输出: undefined
    
  4. 函数没有返回任何值

    function noReturn() {// 没有return语句
    }var result = noReturn();
    console.log(result); // 输出: undefined
    
  5. 比较操作

    • 使用相等运算符 == 时,undefinednull 相等。
      console.log(undefined == null); // 输出: true
      
    • 然而,使用严格相等运算符 === 时,它们是不相等的。
      console.log(undefined === null); // 输出: false
      
  6. 转换为布尔值

    • undefined 被转换为布尔值时,它会变成 false
      if (undefined) {console.log("This won't be printed"); // 不会执行此行代码
      } else {console.log("undefined is falsy"); // 输出: undefined is falsy
      }
      

总的来说,在JavaScript编程中,遇到 undefined 通常意味着程序需要进一步处理或检查该变量是否已正确初始化或对象属性是否存在。在开发过程中避免变量意外地处于 undefined 状态是非常重要的,可以减少潜在的运行时错误。

二、类型运算

在JavaScript中,undefined 数据类型主要用于标识变量未初始化或对象属性不存在的情况。对于 undefined 类型的值,常见的运算包括:

  1. 比较运算

    • 相等性检查:可以使用相等运算符()和严格相等运算符(=)来检查一个值是否为 undefined
      var x;
      console.log(x == undefined); // true,x未定义或未赋值
      console.log(x === undefined); // true,严格的类型和值检查// null与undefined在非严格相等比较时也是相等的
      console.log(null == undefined); // true
      console.log(null === undefined); // false,因为它们是不同的数据类型
      
  2. 逻辑运算

    • undefined 参与逻辑运算时,它会被转换为布尔值 false
      if (undefined) {// 这个块不会执行
      } else {console.log("undefined is falsy"); // 输出: "undefined is falsy"
      }
      
  3. 条件表达式

    • 在条件表达式或三元运算符中,undefined 作为条件会评估为假。
      var value = undefined;
      var result = value ? 'defined' : 'undefined';
      console.log(result); // 输出: "undefined"
      
  4. typeof 操作符

    • typeof 是一个特殊的运算符,用于确定变量的数据类型。
      var notDefined;
      console.log(typeof notDefined); // 输出: "undefined"
      
  5. 不推荐的做法

    • 尽管可以直接对 undefined 进行算术、位运算或其他非预期的操作,但这些操作通常没有意义或者会导致 NaN(Not-a-Number)的结果。
      console.log(undefined + 10); // 输出: NaN
      console.log(~undefined); // 输出: -1
      

在实际开发中,避免对 undefined 值进行不必要的运算,而应该优先确保变量已正确初始化,并通过条件判断来处理可能的 undefined 状态。

小结

undefined事实上只是一个特定的值,官方非说成是类型我们只能也这么说。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/659503.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「HDLBits题解」Build a circuit from a simulation waveform

本专栏的目的是分享可以通过HDLBits仿真的Verilog代码 以提供参考 各位可同时参考我的代码和官方题解代码 或许会有所收益 题目链接:Sim/circuit1 - HDLBits module top_module (input a,input b,output q );//assign q a & b ; // Fix meendmodule题目链接&a…

软件压力测试:探究其目的与重要性

随着软件应用在各行各业中的广泛应用,确保软件在高负载和极端条件下的稳定性变得至关重要。软件压力测试是一种验证系统在不同负载条件下的性能和稳定性的方法。本文将介绍软件压力测试的目的以及为什么它对软件开发和部署过程至关重要。 验证系统性能的极限&#x…

防火墙双向NAT配置

目录 拓扑需求 配置配置服务器映射配置NAT策略配置访问外网的NAT 配置安全策略 测试 拓扑 需求 分公司内部的客户端可以通过公网地址访问到内部的服务器 主要配置区域 配置 测试之前记得开启服务器的服务 配置服务器映射 配置NAT策略 源地址和目的地址同时转换 配置访问…

C++文件操作(2)

文件操作(2) 1.二进制模式读取文本文件2.使用二进制读写其他类型内容3.fstream类4.文件的随机存取文件指针的获取文件指针的移动 1.二进制模式读取文本文件 用二进制方式打开文本存储的文件时,也可以读取其中的内容,因为文本文件…

【Oracle云】OCI DevOps Services 构建自动化流水线 (2) - 创建 Build Pipeline CI 流水线

在软件开发的生命周期中,持续集成(Continuous Integration, CI)是确保团队协作、代码质量和交付效率的关键环节。 OCI DevOps Services 作为 Oracle 云原生 CI/CD 服务,为开发者提供了标准的CI/CD平台,支持构建自动化的…

Vue学习总结

声明:本文来源于黑马程序员PDF讲义 双向绑定: 修改表单项标签,发现vue对象data中的数据也发生了变化 双向绑定的作用:可以获取表单的数据的值,然后提交给服务器 事件绑定 v-on: 用来给html标签绑定事件的。需要注意…

【算法题】86. 分隔链表

题目 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 示例 1: 输入:head [1,4,3,2,5,2], x 3 …

Zookeeper分布式队列实战

目录 Zookeeper分布式队列 普通方式实现 设计思路 具体实现 使用Curator实现 具体实现 注意事项 Zookeeper分布式队列 常见的消息队列有:RabbitMQ,RocketMQ,Kafka等。Zookeeper作为一个分布式的小文件管理系统,同样能实现简单的队列功…

PCB过孔过电流能力计算

PCB(印刷电路板)过孔的过电流能力计算通常基于以下几个关键参数: 过孔直径(D):过孔的直径决定了其有效导电截面积,进而影响载流能力。 铜厚度(t):内层或外层…

ImportError: You must install pydot (`pip install pydot`) and install graphviz

1、安装pydot pip install pydot2、安装cudnn 官方下载页面 下载解压后,复制bin、lib、include的三个文件夹到到cuda安装路径中,这是我的cuda路径: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5直接复制粘贴这三个文件夹&a…

从零学习Linux操作系统 第二十三部分 系统中火墙的管理及优化

1 、实验环境设定 第一台主机需要两个网卡 另一台主机一个网卡桥接到VMnet0上 第一台主机保证能够和windows保持连接 设定第一块儿网卡能够与Windows连接 设定第二台主机能够与第一台主机连接 二、火墙中的基本名词及知识 火墙就相当于是一个表格,这个表格里写…

svn 安装路径

SVN客户端安装(超详细) 一、SVN客户端安装 1、下载安装包地址:https://tortoisesvn.net/downloads.html 此安装包是英文版的,还可以下载一个语言包,在同界面的下方 一直点击下一步,直到弹出选择红框 然…

QuertWrapper and 和or 用法

1.使用 MyBatis Plus 实现上述 SQL 查询条件可以按照以下步骤进行&#xff1a; 创建一个 QueryWrapper 对象&#xff1a;QueryWrapper<Entity> queryWrapper new QueryWrapper<>();使用 eq 方法添加等于条件和 and 条件&#xff1a;queryWrapper.eq("age&qu…

jsonwebtoken使用HS256生成token失败

项目场景&#xff1a; 用户登入将token返回给用户 问题描述 在koa中使用jsonwebtoken库生成token失败&#xff0c;找了很多原因。 const jwt require("jsonwebtoken"); const { PRIVATE_KEY } require("../config/screct");class LoginController {as…

3. Mybatis的XML配置文件(重点)

目录 1 Mybatis的XML配置文件 1.1 XML配置文件规范 1.2 XML配置文件实现 1.3 MybatisX的使用 2. Mybatis动态SQL 2.1 什么是动态SQL 2.2 动态SQL-if 2.2.1 条件查询 2.2.2更新 2.3 动态SQL-foreach 2.4 动态SQL-sql&include 1.mybatis入门 2.mybatis基本操作 1…

AI智能分析+明厨亮灶智慧管理平台助力“舌尖上的安全”

春节是中国最重要的传统节日之一&#xff0c;在春节期间&#xff0c;人们聚餐需求激增&#xff0c;餐饮业也迎来了高峰期。在这个时期&#xff0c;餐饮企业需要更加注重食品安全和卫生质量&#xff0c;以保证消费者的健康和权益&#xff0c;明厨亮灶智慧管理成为了餐饮业中备受…

记一次复杂左连接的优化之路

慢执行分析 create table t3 as select t_1.lon as lon, t_1.lat as lat, t_1.label as label, t_1.is_core as is_core, t_2.grid_id as grid_id, t_2.mid_jd as mid_jd, t_2.mid_wd as mid_wd, t_2.zs_jd as zs_jd, t_2.zs_wd as zs_wd, t_2.yx_jd as yx_jd, t_2.yx_wd as y…

基于单片机温度控制系统的研究

摘 要&#xff1a;笔者基于单片机的温度控制系统&#xff0c;从单片机选择、传感器选择、系统框架设计等方面概述了单片机的温度控制系统内涵&#xff0c;分析了其运行原理&#xff0c;列举了单片机温度控制系统设计的实操方法&#xff0c;从硬件系统、软件系统、温度检测方法…

windows 11安装跳过联网,使用本地账户登陆

windows 11安装跳过联网&#xff0c;使用本地账户登陆 第一步 断开网络&#xff0c;拔网线 第二步 安装windows11 第三步 shiftF10调出命令行 第四步 输入命令&#xff1a; OOBE\BYPASSNRO回车自动重启&#xff0c;随后继续安装选择我没有网络&#xff0c;即可跳过win…

springboot144基于mvc的高校办公室行政事务管理系统设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…