前向引用的概念
2019-12-12 00:09
239 查看
前向引用的概念很简单,简单的理解就是使用变量前要先声明,如果使用了未声明的变量,就属于前向引用。
以JavaScript写一段代码来做一个简单示例。
console.log(nott); // Uncaught ReferenceError: nott1 is not defined let nott = '我还没被定义呢你就想引用我';
这里,因为nott的定义在console.log之后,所以就会报nott未定义的错误,这就是前向引用。
另外的我们再来看一个例子。
console.log(nott); // undefined var nott = '我还没被定义呢你就想引用我';
这里不会报错,是因为JavaScript非严格语法的特殊性,它使用var关键字会有一个声明提升的特性,即变量/函数的声明会提前到最前面,赋值则保留在原位置。因此打印出来的值是undefined,这也是前向引用导致的问题。
因此我们在使用变量之前必须要检查变量是否已经定义,否则就会因为前向引用而导致非预期的问题。当然了,使用一些强大的IDE会为我们检查出这些问题并给予提示。
事实上,前向引用这个概念可以从变量扩展到函数、类等。在未定义【某个东西】前使用这【某个东西】,就叫做前向引用。我想你那么聪明,一定能依此类推的。
"我们都曾经认为,有许多事情是不可以放手的。"
相关文章推荐
- VBA - Excel编程概念之:【单元格和区域】一、如何引用单元格和区域
- OC学习篇之---数组对象的引用计数问题和自动释放池的概念
- [转]6个重要的.NET概念:栈,堆,值类型,引用类型,装箱,拆箱
- C# WebService 概念,创建及引用调用
- java对象引用概念
- 由java ==和equals区别引出的对象以及对象的引用等相关概念。转载
- java学习记录(三):引用类型的概念
- 基础概念 :形参/实参,值类型/引用类型,值传递/引用传递,==/equals
- JAVA基础——对象与引用概念(转载)
- C/C++几个常见概念分析(指针、引用 、const常量、#define)
- java中的引用类型概念
- 6个重要的.NET概念: - 堆栈,堆,值类型,引用类型,装箱和拆箱
- 网站分析基础概念之会话引用与访问者引用
- .NET中的六个重要概念:栈、堆、值类型、引用类型、装箱和拆箱
- 程序设计基本概念(4) inline, define,指针和引用
- Java_31_面向对象_Java程序运行的内存分析_栈_堆_引用类型的概念_属性_对象的创建和使用
- 深拷贝、浅拷贝、对象引用概念
- 值类型和引用类型是.net里面的一个基本概念
- int的一点事,读《深入C#内存管理来分析值类型&引用类型,装箱&拆箱,堆栈几个概念组合之间的区别》
- C# 函数参数传递(按值和引用)很容易混淆的概念啊