Javascript变量声明的知识点
上星期四午饭后,领导给我们发了一个Javascript问题。我们有前端的团队,有后台和移动网络,所以每个人对这个话题的理解都是不同的。然后,我们讨论了它在QQ讨论组,虽然这个发现是非常基本的,它是通过大量的共享讨论。当然,在与开发经验的开发人员的角度看,这些都是学习Javascript最基本的东西。因为jQuery或第三js组件通常使用Javascript,所以基本的学习不够重视。问题是:这2个报警输出的结果是什么复制代码代码如下所示:
<脚本
类型
var a=1;
VaR;
警报(种类);
(函数(){())
B =-----;
VaR B;
});
警报(类型B);
我的回答是:1.undefined 2.undefined.then领袖让我们思考这个问题的答案。我的主题分析:
1。声明一个其值为1,然后重新声明,但在这个时候没有作业,和变量的默认值是未定义的。
2。B变量是函数中的局部变量和全局变量,b是输出警报,因此undefiend。
我在Chrome中运行自己的代码,该代码正确的结果是1.number 2.undefined.here是Javascript的变量声明在时间概念。
我们正在看另一个例子,如下所示:
复制代码代码如下所示:
测试();
函数测试(){
警报(你好世界)!;
}
这个程序不会出错,但结果是:你好,世界!原理:计算机在开始执行语句之前首先搜索所有函数定义,然后存储相关函数。
第一个问题:
var a=1;
VaR;
第二行声明变量的一个相当于宣布在顶部,并首先声明,然后分配一个值1。所以种类数
第二题:
=;
VaR B;
第二个问题:-----,B =分析程序将首先查找是否存在一个语境变量B的声明,如果有的话,直接分配的-----'。但警报(类型B);功能外,对全局变量B的输出,所有的定义。
注意:变量赋值不在时间前面。
然后看看下面的代码部分:
复制代码代码如下所示:
name =AAA;
函数测试(){
警报(类型名);
varBBB;
警报(类型名);
}
测试();
请写出结果。
分析可以写成以下代码部分:
复制代码代码如下所示:
name =AAA;
函数测试(){
警报(类型名); / /里面的功能查找上下文是否声明,声明的名字。但赋值操作不能先进,所以类型定义
var
警报(类型名); / /串
}
测试();
下面的代码部分运行的结果是什么
复制代码代码如下所示:
警报(类型名);
varHello World;
警报(类型名);
程序的运行结果是:字符串,字符串。这里是头晕,我不知道如何分析和解释。我想,我想我明白变量声明的时间提前,但运用该方法分析了上面的一段代码,我将得到错误的结果。当时的变量的赋值是外部函数关系(全局变量)或内部(局部变量)的函数