对于以前很多混淆不清的知识,有必要再梳理一下:就从最基础的变量开始说起。 1.。变量variable a.全局变量Global Variable 和 局部变量 Private Variable 加var和不加var是有区别的 –》如果不用关键字var,声明一个变量,那么这个是全局变量,任何子函数都可以访问,就算是跳出花括号的地方,亦可被访问; –》如果使用关键字var,则从所在的“花括号{}”起,全体函数都可以访问该变量,如: function foo(){ i=8 //Global Variable
在JavaScript编程语言中,变量是存储数据的基本单元。在学习YUI.Ext的旅程中,理解变量的使用至关重要,因为这是构建任何程序的基础。本文将深入探讨JavaScript中的变量、数据类型以及对象类型的相关知识。
我们要区分全局变量和局部变量。全局变量是在函数外部声明的,可以在整个代码范围内访问,即使在函数内部。如果不使用`var`关键字声明变量,那么它默认成为全局变量,例如:
```javascript
i = 8; // 全局变量
function foo() {
alert(i); // 可以访问全局变量i
}
foo();
```
而局部变量只在其所在的函数作用域内有效,使用`var`关键字声明。例如:
```javascript
function foo2() {
var i = 88; // 局部变量,在foo2函数内可访问
function child() {
alert(i); // 在child函数内部仍然可以访问
}
child();
}
foo2();
alert(i); // 报错,因为在全局作用域中没有声明i
```
关于变量的命名,全局变量通常以下划线`_`开头,以示区别。并且,应谨慎使用全局变量,因为它们可能在代码的任何地方被意外修改,导致难以追踪的错误。
接下来,我们来看JavaScript的主要数据类型。主要有三种基本类型:字符串、数值和布尔,以及两种复合类型(引用类型):对象和数组,以及两种特殊类型:Null和Undefined。
- **基本数据类型**:字符串(String)、数值(Number)、布尔(Boolean)
- **复合数据类型**:对象(Object)、数组(Array)
- **特殊数据类型**:Null、Undefined
在JavaScript中,可以使用`typeof`运算符来检查变量的数据类型,它会返回一个表示类型的字符串。例如,`typeof "hello"`会返回`"string"`。同时,`instanceof`运算符用于判断一个对象是否是特定类的实例,例如`var arr = []; arr instanceof Array`会返回`true`。
另外,`constructor`属性用于访问对象的构造函数,可以帮助确定对象的类型。例如,`x = new String("Hi"); x.constructor === String`会返回`true`,表明`x`是一个字符串对象。
在JavaScript中,`var i = {}`声明了一个空对象,它的类型是`object`。`Object`是所有对象的基类,它具有`prototype`和`constructor`两个属性,以及`toString()`和`valueOf()`两个方法。创建自定义对象,如`var obj = new MyObject()`,可以通过访问这些属性和方法来获取对象的信息或进行操作。
理解JavaScript中的变量声明、数据类型和对象类型是编写高效、可维护代码的关键。在学习YUI.Ext的过程中,扎实的JavaScript基础知识能帮助你更好地理解和应用这个强大的库。