第一节:数据类型——null,undefined和布尔值

2023-11-17

JavaScript 的数据类型,共有六种。(ES6 又新增了第七种 Symbol 类型的值)

  • 数值(number):整数和小数(比如1和3.14)。
  • 字符串(string):文本(比如Hello World)。
  • 布尔值(boolean):表示真伪的两个特殊值,即true(真)和false(假)。
  • undefined:表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值。
  • null:表示空值,即此处的值为空。
  • 对象(object):各种值组成的集合

数值、字符串、布尔值这三种类型,合称为原始类型

对象是最复杂的数据类型,又可以分成三个子类型。

  • 狭义的对象(object)
  • 数组(array)
  • 函数(function)

扩展:
1、js是一种动态语言,随时可修改一个值,但大部分改的是值的引用关系(基础类型均不可修改,修改的为此值的引用关系)
1、查看数据类型使用 typeof,typeof所有返回值均为字符串,返回值有6中,分别为:Undefined、Number、String、Boolean、Object、Function;null返回Object

typeof null;  //'object'
typeof undefined; //'undefined'
typeof 123; //'number'
typeof '123'; //'string'
typeof true; //'boolean'
typeof function a(){}; //'function'
typeof {a:1,b:2}; //'object'
//建议typeof后面加括号,看下例
var a = true; 
var b= true;
alert(typeof a==b); //false 运算原则:typeof a //boolean,boolean == true //false
alert(typeof (a==b)); //boolean

1、null和undefined

相同点:

  • 都只有一个值
  • 参与判断都返回false
  • null和undefined都没有方法

不同点:

  • null为关键字;undefined不是关键字
  • null的typeof类型为对象’object’;undefined不是对象,只是一种类型(也可以说是window对象的一个属性)
  • null已初始化;undefined未初始化
  • typeof查看类型,null的类型为object,undefined的类型为undefined
  • null转化为数字为0;undefined转化我数字为NaN
 null == undefined; //true
 null === undefined; //false

几种返回undefined的场景:

// 变量声明了,但没有赋值
var i;
i // undefined

// 调用函数时,应该提供的参数没有提供,该参数等于 undefined
function f(x) {
  return x;
}
f() // undefined

// 对象没有赋值的属性
var  o = new Object();
o.p // undefined

// 函数没有返回值时,默认返回 undefined
function f() {}
f() // undefined

备注(实际开发具体使用原则):
1、声明变量可以不赋值,必须赋值时,建议赋值为null
2、检测否一个值是否存在时,使用 ===(全等) undefined
3、使用全等检测某一个值是否为空时,使用null
4、一般开发中做判断,使用二个等号 (==null),关于此种使用的不好的地方后期来讲解

2、布尔值

布尔值只有两个:true 和 false (真和假)
以下6个值会被转化为false,其他都视为true

  • null
  • undefined
  • 0
  • -0
  • NaN
  • “” 或 ‘’(空字符串)

注意:
1、空数组和空对象也为true
2、!! 两个感叹号可以快速转为布尔值

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第一节:数据类型——null,undefined和布尔值 的相关文章

随机推荐

  • antd 4.x, 实现Table 可编辑 , Table 结合Form.List,实现单独校验Form.List、Form.Item校验

    背景 需要实现一个这种表格 思路 1 编辑表格 antd 有案例 2 Form List 嵌套Table 实现 关键点 单行校验怎么传参 单行如何获取值 单行如何重置 注意 我的form 是从外层传进来的 这个没有影响 正常在 Form L
  • gdb调试工具的基本用法

    一 基本命令 gcc g test c o test 编译时生成debug有关的程序信 gdb test 启动调试 help 查看命令帮助 具体命令查询在gdb中输入help 命令 简写h run 重新开始运行文件 run text 加载文
  • Android 解析json数据

    花了两天的时间完成了一个简单的小程序 服务器端从数据库封装json 数据 客户端解析json数据后用listview 显示 现在做一个简单的梳理 一 服务器端从数据库中获取数据后封装成json数据 服务器端编程 连接数据库的过程就不上代码了
  • 给女朋友道歉的java代码_我用开源工具给女朋友写道歉信!

    一 又是一个可乐配赘婿的晚上 我和女朋友舒服的窝在沙发里 一边看爽剧一边傻笑 其实 我并不太喜欢看这种剧 但是为了陪女朋友 我还是乐此不疲 可能因为长期996 我的脑子已经坏掉了 就在女朋友一边大笑一边大喊好甜啊磕到啦 我用地图老爷爷看手机
  • 解决邮件附件乱码问题

    参考这个博客 https blog csdn net daiqinge article details 89970382或者https blog csdn net z69183787 article details 79238735 1 如
  • 神奇的python(六)之python的串口操作(pyserial)

    简介 最近项目突然要使用python串口操作 这不 查资料 翻文档 是时候写一份串口操作的简要用法 以后有时间可以使用pyqt再写个界面 弄个串口调试终端 1 安装pyserial库 pip install pyserial 2 pyser
  • 巅峰战舰服务器维护,怎么又维护 ?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 儿子马上就要过15岁生日了 爸爸问他生日礼物想要什么 儿子想了想说 男孩子想要的东西我都有了 唯一能想到的 就是一只用塑料做的鹦鹉玩具 爸爸很纳闷 塑料做的鹦鹉 真的就只要这个玩意 儿子点头 恩
  • SSM框架-小区物业管理系统(附源码和运行视频)

    文章目录 系列文章目录 前言 一 开发框架与业务需求 1 开发框架 2 开发环境 3 整体业务 二 项目结构以及页面展示 1 注册 登录页展示 2 首页 小区管理 3 房产 业主信息管理 4 停车位 服务管理 三 ssm框架配置以及代码包级
  • c 显示ftp服务器上的图像,ftp服务器上的图片怎样预览

    ftp服务器上的图片怎样预览 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具 将文件上传到云服务器 例如QQ exe 在本地主机和Windows云服务器上分别安装数据传输工具 将文件上传到云服务器 例
  • $route和$router的区别

    1 router是用来操作路由 route是用来获取路由信息 2 router是VueRouter的一个实例 他包含了所有的路由 包括路由的跳转方法 钩子函数等 也包含一些子对象 例如history 3 route是一个跳转的路由对象 路由
  • React中的事件处理

    原生中点击事件时onclick 在React中点击事件是onClick C是大写 1 所以事件都是被React封装了一次React封装一次 是为了更好的兼容性 2 React中的事件是通过事件委托方式处理的 委托给组件最外层的元素 例子 下
  • file not found: /usr/lib/libstdc++.dylib

    git clone https github com devdawei libstdc 进入到对应文件夹 sudo sh nstall Xcode 12 sh
  • YOLO——基于回归的目标检测算法

    YOLO You Only Look Once Unified Real Time Object Detection 这篇论文的内容并不多 核心思想也比较简单 下面相当于是对论文的翻译 YOLO是一个可以一次性预测多个Box位置和类别的卷积
  • 解决Ubuntu报错 E: Unable to locate package yum

    开门见山 Ubuntu的包管理工具是apt get 所以不必再安装yum 如果要安装其他包需要使用apt get命令 这里以locate命令为例 sudo apt get install mlocate 下文就是问题解决的全过程了 1 报错
  • uni-app:标签中对数据进行判断,看数据前中后是否含有需要的字符startsWith(),endsWith(),includes()

    效果图 核心代码 判断数据是否存在并且此数据是否以 开头
  • TCP/IP编程实现远程文件传输

    TCP IP编程实现远程文件传输 在TCP IP网络结构中 为了保证网络安全 网络人员往往需要在路由器上添加防火墙 禁止非法用户用ftp等安全危害较大的TCP IP协议访问主机 而有时系统维护人员需要用ftp将一些文件从中心机房主机传到前端
  • 【数据竞赛】Kaggle知识点:比赛类型介绍

    在Kaggle平台上 经常有好多个比赛可供选择 如下图所示 为正在进行比赛的截图 那么对于入门同学 从没参加过一次Kaggle比赛 如何选择一场适合的比赛呢 本文将对Kaggle平台上的比赛按照类型进行划分 并对每种类型的比赛进行介绍 总有
  • 1.1c/c++开源库清单

    以下我是从 资源网站 获取到的数据 关于 C 框架 库和资源的一些汇总列表 由 fffaraz 发起和维护 内容包括 标准库 Web应用框架 人工智能 数据库 图片处理 机器学习 日志 代码分析等 标准库 C 标准库 包括了STL容器 算法
  • “放弃 GitHub ,时机已到”,软件自由保护协会怒批!

    整理 彭慧中 责编 屠敏 出品 CSDN ID CSDNnews 诞生 14 年来 凭借完整协议支持 Git格式的版本库托管等优势 GitHub成为了最受开发者欢迎的代码托管平台 不过 近几年来 随着GitHub的一些转变 引发了行业内一些
  • 第一节:数据类型——null,undefined和布尔值

    JavaScript 的数据类型 共有六种 ES6 又新增了第七种 Symbol 类型的值 数值 number 整数和小数 比如1和3 14 字符串 string 文本 比如Hello World 布尔值 boolean 表示真伪的两个特殊