网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 Javascript类型系统之undefined和null浅析
内容
    这篇文章主要介绍了Javascript类型系统之undefined和null的知识,通过本文还简单给大家介绍了javascript中null和undefined的区别的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    前面的话
    一般的程序语言,表示空的只有null,但javascript的设计者Brendan Eich却设计了一个undefined,这无疑增加了程序复杂度,但这样做也是有一定原因的。本文将详细介绍javascript中的undefined和null
    历史原因
    1995年JavaScript诞生时,最初像Java一样,只设置了null作为表示”无”的值。根据C语言的传统,null被设计成可以自动转为0
    但是,JavaScript的设计者Brendan Eich,觉得这样做还不够,有两个原因。首先,null像在Java里一样,被当成一个对象。但是,JavaScript的值分成原始类型和对象类型两大类,Brendan Eich觉得表示”无”的值最好不是对象。其次,JavaScript的最初版本没有包括错误处理机制,发生数据类型不匹配时,往往是自动转换类型或者默默地失败。Brendan Eich觉得,如果null自动转为0,很不容易发现错误
    因此,Brendan Eich又设计了一个undefined。他是这样区分的:null是一个表示”无”的对象,转为数值时为0;undefined是一个表示”无”的原始值,转为数值时为NaN
    但是,目前null和undefined基本是同义的,都是原始类型,且只有一些细微的差别
    undefined
    Undefined类型只有一个值,就是undefined。当声明的变量未初始化时,该变量的默认值是undefined。所以一般地,undefined表示变量没有初始化
    var test;//undefined
    console.log(test == undefined);//true
    var test = undefined;//undefined
    对于尚未声明过的变量只能执行一项操作,使用typeof操作符检测其数据类型,但严格模式下会导致错误
    typeof(test);//undefined
    【出现场景】
    【1】已声明未赋值的变量
    【2】获取对象不存在的属性
    【3】无返回值的函数的执行结果
    【4】函数的参数没有传入
    【5】void(expression)
    var i;
    console.log(i);//undefined
    var o = {};
    console.log(o.p);//undefined
    function f(){};
    console.log(f());//undefined
    function f(x){return x;}
    console.log(f());//undefined
    console.log(void(0));//undefined
    【类型转换】
    Boolean(undefined):  false
    Number(undefined):  NaN
    String(undefined):  'undefined'
    null
    Null类型只有一个值,就是null。null是javascript语言的关键字,它表示一个特殊值,常用来描述"空值"
    逻辑角度看,null值表示一个空对象指针
    [注意]null是空对象指针,而[]是空数组,{}是空对象,三者不相同
    console.log(typeof null);//'object'
    尽管null和undefined是不同的,但它们都表示"值的空缺",null表示"空值",undefined表示"未定义"。两者往往可以互换。判断相等运算符==认为两者是相等的
    console.log(null == undefined);//true
    实际上,因为undefined和null不是构造器类型,所以它们没有任何的属性和方法,使用.和[]来存取这两个值的成员或方法都会产生一个类型错误
    【类型转换】
    Boolean(null):   false
    Number(null):   0
    String(null):    'null'
    下面给大家介绍javascript中null和undefined的区别
    undefined表示变量声明但未初始化时的值,null表示准备用来保存对象,还没有真正保存对象的值。从逻辑角度看,null值表示一个空对象指针。
    JavaScript(ECMAScript标准)里共有5种基本类型:Undefined, Null, Boolean, Number, String,和一种复杂类型Object。可以看到null和undefined分属不同的类型,未初始化定义的值用typeof检测出来是"undefined"(字符串),而null值用typeof检测出来是"object"(字符串)。
    任何时候都不建议显式的设置一个变量为undefined,但是如果保存对象的变量还没有真正保存对象,应该设置成null。
    实际上,undefined值是派生自null值的,ECMAScript标准规定对二者进行相等性测试要返回true,即
    alert(null==undefined); // true
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/20 2:17:53