Javascript 与 ActionScript 中 null、NaN和undefined的区别

2023-11-09

AS中:

其实Null、NaN和undefined都是变量的默认初始值。变量类型不同,系统给与的初始值就不同:
int,uint - 0
Boolean - false
Number - NaN
String,Array,Object - null
未指定变量类型 - undefined

 

JS中:

1.类型分析:

 

js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型。
var a1;
var a2 = true;
var a3 = 1;
var a4 = "Hello";
var a5 = new Object();
var a6 = null;
var a7 = NaN;
var a8 = undefined;

alert(typeof a);   //显示"undefined"
alert(typeof a1); //显示"undefined"
alert(typeof a2); //显示"boolean"
alert(typeof a3); //显示"number"
alert(typeof a4); //显示"string"
alert(typeof a5); //显示"object"
alert(typeof a6); //显示"object"
alert(typeof a7); //显示"number"
alert(typeof a8); //显示"undefined"

从上面的代码中可以看出未定义的值和定义未赋值的为undefined,null是一种特殊的object,NaN是一种特殊的number。

2.比较运算

var a1;        //a1的值为undefined
var a2 = null;
var a3 = NaN;

alert(a1 == a2); //显示"true"
alert(a1 != a2); //显示"false"

alert(a1 == a3); //显示"false"
alert(a1 != a3); //显示"true"

alert(a2 == a3); //显示"false"
alert(a2 != a3); //显示"true"

alert(a3 == a3); //显示"false"
alert(a3 != a3); //显示"true"

从上面的代码可以得出结论:(1)undefined与null是相等;(2)NaN与任何值都不相等,与自己也不相等。

 

JavaScript undefined 属性

定义和用法

undefined 属性用于存放 JavaScript 的 undefined 值。

语法

undefined

说明

无法使用 for/in 循环来枚举 undefined 属性,也不能用 delete 运算符来删除它。

undefined 不是常量,可以把它设置为其他值。

当尝试读取不存在的对象属性时也会返回 undefined。

提示和注释

< 值等价于 undefined 运算符认为 运算来测试某个值是否是未定义的,因为="=" ="==">

< 表示无值,而>

实例

在本例中,我们将检测两个变量中未定义的一个:

<script type="text/javascript">

var t1=""
var t2

if (t1===undefined) {document.write("t1 is undefined")}
if (t2===undefined) {document.write("t2 is undefined")}

</script>

输出:

t2 is undefined
 
   
[补充]
Null 数据类型 
在 Jscript 中数据类型 null 只有一个值:null。关键字 null 不能用作函数或变量的名称。

包含 null 的变量包含“无值”或“无对象”。换句话说,该变量没有保存有效的数、字符串、boolean、数组或对象。可以通过给一个变量赋 null 值来清除变量的内容。

请注意,在 Jscript 中,null 与 0 不相等(与在 C 和 C++ 中不同)。同时应该指出的是,Jscript中 typeof 运算符将报告 null 值为 Object 类型,而非类型 null。这点潜在的混淆是为了向下兼容。

Undefined 数据类型
如下情况使返回 undefined 值:

对象属性不存在,
声明了变量但从未赋值。
注意不能通过与 undefined 做比较来测试一个变量是否存在,虽然可以检查它的类型是否为“undefined”。在以下的代码范例中,假设程序员想测试是否已经声明变量 x :

// 这种方法不起作用
if (x == undefined)
    // 作某些操作
// 这个方法同样不起作用- 必须检查
// 字符串 "undefined"
if (typeof(x) == undefined)
    // 作某些操作
// 这个方法有效
if (typeof(x) == "undefined")
    // 作某些操作
考虑将 undefined 值与null做比较。

someObject.prop == null;
如下情况时,比较的结果为 true,

如果属性 someObject.prop 包含 null 值,
如果属性 someObject.prop 不存在。
要检查一个对象属性是否存在,可以使用新的 in 运算符:
if ("prop" in someObject)
// someObject 有属性 'prop'

在JavaScript中,null与undefined一度使人迷惑。下面的分析,有利于你更清晰的认知它(或者让你更迷惑):

- null是关键字;undefined是Global对象的一个属性

- null是对象(空对象, 没有任何属性和方法);undefined是undefined类型的值。试试下面的代码:

       document.writeln(typeof null); //return object
       document.writeln(typeof undefined); //return undefined

- 对象模型中,所有的对象都是Object或其子类的实例,但null对象例外:
       document.writeln(null instanceof Object); //return false

- null“等值(==)”于undefined,但不“全等值(===)”于undefined:
       document.writeln(null == undefined); //return true
       document.writeln(null === undefined); //return false

- 运算时null与undefined都可以被类型转换为false,但不等值于false:
       document.writeln(!null, !undefined); //return true,true
       document.writeln(null==false); //return false
       document.writeln(undefined==false); //return false

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

Javascript 与 ActionScript 中 null、NaN和undefined的区别 的相关文章

随机推荐

  • java毕业设计开题报告javaweb敬老院管理系统的设计和实现

    文末获取联系 一 项目介绍 javaweb基于Java的敬老院管理系统的设计和实现 该项目采用技术jsp servlet jdbc tomcat服务器 mysql数据库 项目含有源码 论文 配套开发软件 软件安装教程 项目发布教程 一 选题
  • Vue插槽

    Vue插槽 Vue的组件如何接受模板内容呢 在某些场景中 我们可能想要为子组件传递一些模板片段 让子组件在它们的组件中渲染这些片段 这时我们可以使用vue提供的插槽来实现 例子 父元素提供了一个模板
  • USB基本知识

    USB协议版本有USB1 0 USB1 1 USB2 0 USB3 0等 目前用的比较多的是USB2 0和USB3 0 1 USB2 0总线 USB2 0总线采用4芯的屏蔽线 一对差分线 D D 传输信号 另一对 VBUS 电源线 传输 5
  • Spring全家桶知识概括

    Spring全家桶知识概括 Springmvc与JS 拦截器与过滤器的区别 spring容器 spring MVC容器 web容器的区别 Filter与Servlet路径映射问题 Spring与JUnit SpringBoot测试与Mock
  • QCefView + QWebChannel + Vue 项目开发

    看到标题 你大概能猜到这篇我想讲述的是什么了 对的 将要同大家分享的是一种目前PC软件常见的开发方案 前言 1 桌面应用为什么要使用Vue等框架开发 而不再是Qt UI开发 界面开发我们使用java语言 通过Vue框架快速开发 好处不言而喻
  • 使用html2canvas实现HTML页面的echarts图表转成长图片

    import html2canvas from html2canvas downLoad url var oA document createElement a oA download 设置下载的文件名 默认是 下载 oA href url
  • 字符和字符串(4)——C# 截取字符串:简单易懂,小白教程

    几个经常用到的字符串的截取 string str 123abc456 int i 3 取字符串的前i个字符 str str Substring 0 i or str str Remove i str Length i 去掉字符串的前i个字符
  • web3.js

    安装 别按照官网上面 npm install web3 下载 我已经吃过一次亏了 npm init npm install ethereum web3 js save 指令 web3 isConnected 检查结点的连接是否存在 web3
  • 知识蒸馏研究综述

    知识蒸馏研究综述 论文来源于 知识蒸馏研究综述 文章目录 知识蒸馏研究综述 知识蒸馏的提出 知识蒸馏的作用机制 蒸馏的知识形式 输出特征知识 中间特征知识 知识蒸馏的方法 知识合并 多教师学习 教师助理 跨模态蒸馏 相互蒸馏 终身蒸馏 自蒸
  • XSS闯关——第三关:level3

    第三关 level3 看页面和第二关类似 先用第二关的输入测试 gt 可惜没有成功 毕竟是第三关 在第二关上肯定有所升级 查看当前网页的源代码分析 可以发现我们的输入被后台改成了如下内容 输入的 gt lt 被做了转义处理 变成了 quot
  • 安卓开发课程设计报告

    湖南科技大学计算机科学与工程学院 综合实践能力创新实训 安卓开发课程设计报告 题 目 新 闻 客 户 端 学 号 17050103XX 姓 名 白马 完成时间 2019年12月15日 安卓开发 新闻客户端 1 设计要求 1 1 技术平台要求
  • 宝藏级的开源小程序(APP)商城-CRMEBPC版前台和手机版实测

    公司最近想新上一个项目 用APP对线下门店地推做产品推广 开始我们想找个研发APP公司来做一个简易APP来的 结果打了十来通电话 基本上报价都是在三万到五万之间 而公司又恰恰在起步阶段 所以就考虑放弃了自己开发 目光转向到了微信商城 可看完
  • Python 类内直接定义属性与self.属性名的区别

    class A test value1 value1 self test value3 value3 报错 无法定义 因为self代表的是类对象 def int self self test value2 value2 if name ma
  • GT--记录android app消耗的cpu/内存/流量 /电量

    腾讯GT简介 此apk是一款可以对APP进行测试的软件 可以在任何情况下快速测试手机app的CPU 内存 流量 电量 帧率 流畅度等性能测试 有安卓版本和ios版本 分别下载 1 下载腾讯GT http gt tencent com dow
  • torch 中的detach、numel、retain_graph、repeat、repeat_interleave等参数的用法

    detach 官网解释 实验结论 import torch x torch arange 4 0 x requires grad True 等价于 x torch arange 4 0 requires grad True y x x de
  • Unity EasySave3封装管理类

    20230804 新增 加密处理接口
  • python读取数据库PostgreSQL导出excel表格

    1 现有数据和目标成果 1 1现有数据 源数据保存在数据库中 使用的数据库管理软件是PostgreSQL 本质上来说 数据存储在数据库中是以记录存储在表上实现的 在excel表格中也是以记录的形式存在 所以数据库中表的列 字段 可以与exc
  • MinMaxScaler中的scale_属性和min_属性

    class sklearn preprocessing MinMaxScaler feature range 0 1 copy True 首先可以使用 数据归一化 scaler MinMaxScaler feature range 0 1
  • [激光原理与应用-43]:《光电检测技术-10》- 激光测距原理、方案与案例分析:TOF VL53L0X模块

    目录 第1章 激光测距概述 1 1 什么是激光测距 1 2 激光测距的特点 1 3 激光测距仪的形态 1 4 测距的类型 1 5 常见品牌 1 6 应用 第2章 测量原理 2 1 测量方法 2 2 测量方法分类 第3章 案例分析1 科扬光电
  • Javascript 与 ActionScript 中 null、NaN和undefined的区别

    AS中 其实Null NaN和undefined都是变量的默认初始值 变量类型不同 系统给与的初始值就不同 int uint 0Boolean falseNumber NaNString Array Object null未指定变量类型 u