关于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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当出现错误提示"TypeError: Cannot read property 'push' of undefined"时,通常意味着你正在尝试对一个未定义的属性进行操作。具体到你的问题中,报错的信息是"Cannot read property 'push' of undefined",这意味着你正在尝试对一个未定义的对象进行push操作。 该错误通常发生在以下几种情况下: 1. 你可能没有正确初始化该对象或数组。在使用push方法之前,需要确保该对象或数组已经被正确定义和初始化。 2. 该对象可能是一个null或undefined值。在对一个没有被赋值的变量进行push操作时,会出现该错误。需要确保该对象有有效的值或参考。 解决这个问题的方法包括: 1. 在使用push方法之前,确保你已经正确初始化了该对象或数组。可以使用字面量、构造函数或赋值语句来初始化对象或数组。 2. 在进行push操作之前,检查该对象是否为null或undefined。可以使用if语句或条件运算符来判断并处理这种情况。 需要注意的是,具体解决方法可能因你的代码和上下文而异。希望以上信息能帮助你找到问题并解决它。如果你需要更多帮助,请提供更多的代码或上下文信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Cannot read property ‘push‘ of undefined 错误解释并解决 通用](https://blog.csdn.net/weixin_46547740/article/details/117018172)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [获得多个复选框 checkbox 选中的值(jquery)+ 解决 Uncaught TypeError: Cannot read property ‘push‘ ...](https://blog.csdn.net/u011314442/article/details/87796126)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Vue打包Cannot read property 'tapPromise' of undefined报错处理.docx](https://download.csdn.net/download/rongbo91/77070400)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值