`
ilovejsj
  • 浏览: 203558 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

关于Undefined类型字面量undefined的小小研究(2)

阅读更多
<html>
<head>
<title>JS</title>
<script type="text/javascript">
function test1()
{
	//接着上一讲继续
	//请大家猜测一下下面的结果是什么?

	alert(typeof(typeof a));

	/*
	答案是string,你猜对了吗?你是不是认为结果是undefined
	typeof a的结果是undefined,是Undefined类型的字面量。
	所以我们可以得出个结论Undefined类型的字面量undefined是一个string类型的字符串,这个说法对吗?
	现在看来可能对,但是我要告诉你这是不对的。
	之所以结果是string是因为typeof函数的返回值是string类型的而不是上面所说的那个结论。	
	*/
}

function test2()
{
	alert(typeof undefined);
	/*
	这是上一讲中的第一个,现在我们来思考一下下面的问题:
	其中的undefined是Undefined类型的字面量还是只是一个名为undefined的变量?
	我们到底能不能直接使用Undefined类型的字面量?
	*/
}

/*
现在大家不会晕了吧,呵呵。
在开始推翻上面错误结论,解释为什么之前咱们先来搞清楚JavaScript的
一个基础知识点。看test3(),test4();
*/

function test3()
{	
	alert(a=="123");
	//alert(a+1);
}

function test4()
{
	var a;
	alert(a>="123");
	alert(a+1);
}
/*
test3()的结果是报错:变量a没有定义
test4()的结果是false;
通过比较上面两个函数的结果可以得出:
若一个变量没有声明直接使用,我这里说的使用是指对他进行加减乘除或和别的量
进行比较时就会报错。如果声明了就不会报错。
*/

/*
好,记住这个结论,我们利用这个结论来解释我们前面的疑问。
*/

/*
typeof undefined中的undefined是Undefined类型的字面量还是只是一个名为undefined的变量?
*/
function test5()
{	
	alert(undefined==a);
	alert(a==undefined);
/*
运行结果是报错,上面两个报的错相同都是"a"没有定义。
这就说明了其中的undefined是Undefined类型的字面量,是可以直接拿来使用的。
*/
}

/*
错误结论:
Undefined类型的字面量undefined是一个string类型的字符串
*/
function test6()
{	
	alert(undefined=="undefined");
/*
上面的结果为false
证明了上述结论是错误的,undefined就是Undefined类型,而不是字符串类型。
*/
}

function test7()
{
	alert(undefined==undefineD);
	alert(undefineD==undefined);
/*
两个都是报错说undefineD未定义
用这个例子我想说明的是只有undefined是Undefined类型的字面量,其他类似的都是
普通的变量。
*/
}

</script>
</head>
<body>
<input type="button" onclick="test7()" value="Click">
</body>
</html>
0
0
分享到:
评论
2 楼 ilovejsj 2009-09-19  
szcjlssx 写道
undefined?
undefined 是一个全局变量
window.undefined,其值为undefined 

呵呵,谢谢提醒。从无到有,慢慢探索。
undefined 属性是 Global 对象的一个成员,该属性在脚本引擎初始化后可用。如果已声明了一个变量但还没有初始化,那么该变量的值就是 undefined。
1 楼 szcjlssx 2009-09-19  
undefined?
undefined 是一个全局变量
window.undefined,其值为undefined

相关推荐

    javascript 中null和undefined区分和比较

    javascript 中null和undefined区分和比较 Undefined类型 ...比较这个变量与 undefined 字面量,结果表明它们是相等的。这个例子与下面的例子是等价的: var message = undefined; alert(message == und

    详解javascript中原始数据类型Null和Undefined

    在JavaScript中,null是字面量同时也是语言中的关键字,用来表示无法识别的对象值。换句话说,这用来表示“无值(no value)”。虽然相似,undefined实际上代表了不存在的值(non-existence of a value)。都是完全...

    1902易海滔01JavaScript数据类型.docx

    字面量、变量、标识符 JavaScript的6种数据类型: 基本数据类型:String 字符串类型 Number数值类型 Boolean 布尔类型 Null 空值类型 Undefined 未定义类型 引用数据类型:Object 对象类型 JavaScript数据...

    跟我学习javascript的undefined与null

    在JavaScript中,null是字面量同时也是语言中的关键字,用来表示无法识别的对象值。换句话说,这用来表示“无值(no value)”,但你可以决定什么时候得到期望值。 虽然相似,undefined实际上代表了不存在的值(non-...

    type-name:只是一个合理的`typeof`

    描述输入结果空文字null 'null' 未定义的值undefined 'undefined' 字符串字面量'foo' 'string' 数字文字5 'number' 布尔文字false 'boolean' regexp文字(Android 4.1+) /^not/ 'RegExp' 数组文字['foo', 4] '...

    Web前端开发技术-数组基本操作.pptx

    使用“[ ]”字面量来创建数组 // 使用new Array()创建数组 var arr1 = new Array(); // 使用字面量来创建数组 var arr1 = []; 数组基本操作 访问数组元素 使用索引来访问数组中的元素,索引是一个数字,从0开始。 ...

    JS数组方法

    一.概念: 数组是一个数据的集合,也就是我们把一些数据放在一个盒子里面,按照顺序排好,这个盒子就是一个数组,存储着一些数据的...2.使用字面量创建数组 四.数组的常规方法—–API 1.puah()—–后增 (1).功能:是用

    JavaScript学习笔记(二) js对象

    1.简单类型 javascript的简单类型包括 数字(Number)、字符串(String)、布尔值(Boolean)、...对象的定义方法 (1)用字面量定义。例如: var obj = {“name”:”Jim”,”age”:16}; (2)new关键字定义。例如: var ob

    在JavaScript并非所有的一切都是对象

    虽然很多语言宣称:“一切皆是对象”,但是 javascript 中,并不是所有的值都是对象。 原始值 vs 对象javascript 中的值可以被划分为两大类:原始值...2.用字面量创建的对象。 下面的字面量产生对象,也可以通过构造函

    JavaScript对象、包装类的个人笔记

    对象、包装类上期答疑一、定义一个对象二、构造函数的内部原理三、包装类四、使用(特别注意)五、练习题 ...plainObject 对象字面量/对象直接量 var obj = { name : 'jimo', age : 18, sex : 'male'

    JavaScript内置对象之Array的使用小结

    1.字面量: 放置一个数值时,就是一个数据。 var arr = [6]; 2.构造函数: 放置一个数据时,表示长度或数据的个数,空表示undefined。 var arr = new Array(6); 建议:Array作为构造函数,行为很不一致。因此,...

    简单总结JavaScript中的String字符串类型

    字符字面量/转义序列: \n 换行 \t 制表 \r 回车 \b 空格 \f 换页符 \\ 斜杠 \' 单引号 \ 双引号 \xnn \unnn 字符串转换:两个方法 1.toString():只有null和undefined没有这个方法。 每个字符串也都有一个toString...

    JavaScript数组特性与实践应用深入详解

    数组字面量是在一对方括号中包围零个或多个用逗号分隔的值的表达式: var empty = []; var numbers = [ 'zero', 'one', 'two', 'three' ]; console.log(empty[1]);//undefined console.log(numbers[1]);//one ...

    01 基础.html

    变量:字面意思:可以变化的量 书面意思:用于存储数据的容器 声明方法:var 能直接赋值的直接赋值,不能直接赋值的就先赋一个初始值, 而初始值的内容是将来赋值的数据类型的基础值(数字的基础是为0)...

    JavaScript对象原型链原理解析

    这篇文章主要介绍了JavaScript对象原型链原理解析,文中通过示例...一、使用字面量直接创建。 二、基于原型链创建。 分析上图,要点如下: 1.可以new运算符新建对象,foo为自定义函数,即是对象。 2.可以设置foo.prot

    JavaScript中对象介绍

    对象可以通过字面量来直接声明,也可以通过new操作符来新建。与Java语言不同,JavaScript对象中的property是可以动态添加或者删除的;同时,对象中的property还可以是空字符串: 代码如下: //properties in object...

    浅析lastIndex对正则表达式结果的影响

    //undefined reg.test(1) //true reg.test(1) //false lastIndex  lastIndex在权威指南中是如下解释:它是一个可读/写的整数。如果匹配模式带有g修饰符,这个属性存储在整个字符串中下次索引的开始位置,这个属性会...

    深入理解ES6之数据解构的用法

    对象解构语法在赋值语句的左侧使用了对象字面量 let node = { type: true, name: false } //既声明又赋值 let { type, name } = node; //或者先声明再赋值 let type, name ({type,name} = node); console.log...

    set-js-object:通过给定一个键和一个值创建一个 JS 对象

    通过给定一个键和一个值创建一个 JS 对象(对象字面量) 应用程序接口 var setObject = require('set-js-object') setObject(键:字符串,值) 返回 一个js对象 undefined如果键未定义 用法 var setObject = ...

Global site tag (gtag.js) - Google Analytics