`
ilovejsj
  • 浏览: 205570 次
  • 性别: 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是字面量同时也是语言中的关键字,用来表示无法识别的对象值。换句话说,这用来表示“无值(no value)”。虽然相似,undefined实际上代表了不存在的值(non-existence of a value)。都是完全...

    typescript官方一手教程

    2. 字符串字面量类型:定义字符串字面量类型。 3. 数字字面量类型:定义数字字面量类型。 4. 布尔字面量类型:定义布尔字面量类型。 类 1. 枚举:定义枚举类型。 2. 数字枚举:定义数字枚举。 3. 字符串枚举:定义...

    你必须知道的Javascript知识点之&quot;字面量和对应类型&quot;说明介绍

    当定义一个字面量时,JavaScript会自动根据其类型和值来创建相应的对象。根据给定的文件内容,我们可以提炼以下知识点: 1. JavaScript中的字面量和类型: - JavaScript中存在两种主要的数据类型:值类型和引用...

    JavaScript对象字面量和构造函数原理与用法详解

    JavaScript是一种动态类型的面向对象编程语言,它提供了多种创建对象的方式,其中对象字面量和构造函数是最常见的两种。本文将深入讲解这两种创建对象的方法及其原理。 **对象字面量** 对象字面量是JavaScript中...

    javascript的数据类型、字面量、变量介绍

    JavaScript是一种广泛用于网页和网络应用的脚本语言,它的核心概念包括数据类型、字面量和变量。理解这些基础知识对于学习JavaScript至关重要。 首先,我们来详细探讨数据类型。JavaScript有七种基本数据类型,其中...

    前端大厂最新面试题-data_type.docx

    * Object:对象类型,可以使用对象字面量创建对象。 * Array:数组类型,可以使用数组字面量创建数组。 * Function:函数类型,可以使用函数声明创建函数。 在JavaScript中,基本类型的值是存储在栈中的,而复杂...

    javascript 中null和undefined区分和比较

    当你比较`message`与`undefined`字面量时,它们是相等的。然而,通常情况下,我们并不需要显式地将一个变量设为`undefined`,因为未初始化的变量默认就是这个值。 `undefined`的主要用途在于比较,特别是在判断变量...

    Typescript语法手册

    接着是类型章节,详细解释了各种类型,包括任意类型、基本类型(Number、Boolean、String、Void、Null和Undefined)、枚举类型、字符串字面量类型、对象类型、命名类型引用、数组类型、匿名类型、类型参数、具名类型...

    TypeScript Language Specification

    4. 类型系统:TypeScript支持丰富的类型系统,包括Any类型、原始类型(如Number、Boolean、String)、Void类型、Null和Undefined类型、枚举类型(Enum Types)、字符串字面量类型(String Literal Types)以及对象...

    TypeScript语法手册

    - **3.2.8 字符串字面量类型**:允许将字符串字面量作为类型。 **3.3 对象类型** - **3.3.1 命名类型引用**:可以直接引用其他已定义的类型名称。 - **3.3.2 数组类型**:用于表示同类型元素的集合。 - **3.3.3 ...

    区分JS中的undefined,null,&quot;&quot;,0和false

    `null`在JavaScript中是一个字面量,表示一个空对象指针,尽管其类型是`object`,但它并不包含任何属性和方法。而`undefined`通常表示一个未被赋值的变量。在进行类型检查时,使用`typeof`运算符,`typeof(null)`会...

    1901_姓名_01JavaScript数据类型.docx

    - **字面量**是指在代码中直接表示的值,如数字`5`、字符串`'Hello'`或布尔值`true`。 - **变量**是存储值的容器,使用`var`、`let`或`const`关键字声明,例如`var name = 'John';` - **标识符**是用于变量、函数...

    JavaScript高级教程-引用类型.pptx

    基本数据类型包括Undefined、Null、Boolean、Number、String以及ES6新增的Symbol。这些类型在JavaScript中被视为原始数据类型,它们的值是不可变的,即一旦创建,就不能修改。例如,尝试修改一个字符串的某个字符...

    个人学习TS的基本知识点

    4. 字面量类型与类型缩小:字面量类型用于指定特定的值,类型缩小是在类型系统中减少不确定性,提高类型精度。 五、函数类型 1. 函数的类型和函数签名:函数签名定义了函数的输入和输出类型,确保函数调用时传入...

    1902_陈良鑫_01JavaScript数据类型.docx

    根据提供的文档信息,我们可以深入探讨其中提及的关键知识点,特别是关于JavaScript的数据类型及其转换方式。 ### 1. 字面量、变量、标识符 #### 字面量(Literals) 字面量是指在JavaScript中直接写出的数据值,...

    浅谈JavaScript中null和undefined

    null在JavaScript中是一个字面量,用来表示空值或无值的状态。它有自己的数据类型——Null类型,与其他任何类型的值都不相同。在JavaScript中,使用typeof运算符对null进行检查时,会返回"object"。这一点经常让人...

    js null,undefined,字符串小结

    它是JavaScript中的一个基本类型,它的值是字面量null。关于null和栈内存的关系,描述中提到null实际上存放在stack栈中,这与其他引用类型不同,因为其他引用类型的数据默认是存放在heap堆内存中的。这种特殊性来源...

Global site tag (gtag.js) - Google Analytics