编程笔记 html5cssjs 070 JavaScript Null数据类型

2024-02-04 09:44

本文主要是介绍编程笔记 html5cssjs 070 JavaScript Null数据类型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

编程笔记 html5&css&js 070 JavaScript Null数据类型

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

在JavaScript中,Null 是一种基本数据类型,它是JavaScript七种原始数据类型(包括:BooleanNumberStringNullUndefinedSymbol(ES6新增)和 BigInt(ES10新增))之一。尽管它在技术上是原始类型,但在使用 typeof 运算符检测时会返回 "object",这是JavaScript语言设计上的一个历史遗留问题,而不是因为它真的是对象。

一、Null数据类型

在JavaScript中,Null 是一种基本数据类型,它是JavaScript七种原始数据类型(包括:BooleanNumberStringNullUndefinedSymbol(ES6新增)和 BigInt(ES10新增))之一。尽管它在技术上是原始类型,但在使用 typeof 运算符检测时会返回 "object",这是JavaScript语言设计上的一个历史遗留问题,而不是因为它真的是对象。

  1. 定义与概念:

    • Null 类型仅有一个值,就是 null
    • null 值表示“无”或“空”,它通常用来表示变量尚未指向任何有效的对象或者有意清空一个变量的引用。
  2. 用途:

    • 当一个变量应该被赋予对象值但当前为空或未定义时,可以设置为 null
    • 在API调用中,返回 null 可以明确地指示没有有效结果或者资源不存在。
    • 作为函数参数,传递 null 可能意味着不需要提供对象或值。
  3. 示例:

// 定义一个变量并赋值为 null
let myVariable = null;// 使用 typeof 检测该变量的类型
console.log(typeof myVariable); // 输出 "object" (注意此处是语言特性的表现)// 检查变量是否为 null
if (myVariable === null) {console.log('myVariable is null');
} else {console.log('myVariable is not null');
}// 示例:清空对象引用
let myObject = { name: 'Alice' };
myObject = null; // 此时 myObject 不再引用任何对象// 示例:从函数返回 null
function findUser(id) {// 假设执行查找逻辑...if (!userExists(id)) {return null;}return getUserById(id);
}let user = findUser(12345);
if (user === null) {console.log('User with id 12345 does not exist');
}

需要注意的是,在实际开发中,undefinednull 都常用来表示某种形式的“无”,但它们有微妙的区别:

二、 类型运算

在JavaScript中,Null 类型的值只有 null 这一个特定的实例。虽然它是一个单独的数据类型,但因为它只有一个值,因此直接针对 null 的运算相对有限。以下是一些与 null 值相关的常见运算:

  1. 相等性检查:

    • 使用 ===== 检查变量是否为 null
      let value = null;
      if (value === null) {console.log('Value is indeed null');
      }
      
  2. 逻辑运算:

    • 在逻辑表达式中,null 被视为 false,因此可以用在条件语句中:
      if (!value) {console.log('Value is falsy, which includes being null');
      }
      
  3. 类型检查:

    • 使用 typeof 运算符检测变量类型时,尽管 null 是一种特殊的原始类型,但它会返回 "object"
      console.log(typeof null); // 输出 "object"
      
  4. 比较运算:

    • null 与自身或其他原始类型的比较结果是明确的:
      console.log(null == undefined); // 输出 true (抽象相等比较)
      console.log(null === undefined); // 输出 false (严格相等比较)
      console.log(null > 0); // 输出 false
      console.log(null < 0); // 输出 false
      
  5. 赋值和销毁引用:

    • null 赋给一个变量可以清除该变量对任何对象的引用:
      let obj = { name: 'Alice' };
      obj = null; // 现在 obj 不再指向任何对象
      
  6. JSON.stringify():

    • 当使用 JSON.stringify() 方法序列化数据时,null 值会被保留:
      let data = { user: null };
      let json = JSON.stringify(data);
      console.log(json); // 输出 '{"user":null}'
      

总之,对于 null 数据类型的直接运算并不多,主要是用于比较、类型判断和清空引用,以及与其他数据类型交互时的行为表现。

小结

  • undefined 表示变量声明了但还没有赋值,或者访问的对象属性不存在。
  • null 则是开发者显式地设定变量为“无”值状态,强调是有意为之。

这篇关于编程笔记 html5cssjs 070 JavaScript Null数据类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/677059

相关文章

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

Python标准库datetime模块日期和时间数据类型解读

《Python标准库datetime模块日期和时间数据类型解读》文章介绍Python中datetime模块的date、time、datetime类,用于处理日期、时间及日期时间结合体,通过属性获取时间... 目录Datetime常用类日期date类型使用时间 time 类型使用日期和时间的结合体–日期时间(

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.