2022-12-03 19:27

TypeScript入门(6) — 变量命名、定义及作用域

王姐姐

WEB前端

(654)

(0)

收藏

1.1. 变量命名规则

1、变量名称可以包含数字和字母。

2、除了下划线 _ 和美元 $ 符号外,不能包含其他特殊字符,包括空格。

3、变量名不能以数字开头。

以下为四种声明变量的方式

//var [变量名] : [类型] = 值; 声明变量的类型及初始值
var name:string = "wanma";
//var [变量名] : [类型]; 声明变量的类型,但没有初始值,变量值会设置为undefined
var name:string;
//var [变量名] = 值; 声明变量并初始值,但不设置类型,该变量可以是任意类型
var name = "wanma";
//var [变量名]; 声明变量没有设置类型和初始值,类型是任意类型,初始值为undefined
var uname;

总结:声明时,没有类型,类型就是any;没有初始值,初始值就是undefined

1.2. 强类型

TypeScript 遵循强类型,如果将不同的类型赋值给变量会编译错误,而JavaScript则不会,因为她是弱类型语言,如下实例:


var num:number = "wanma"     // 编译错误
//对应的js
var num = 100
num = "wanma"     // 编译不报错


1.3. 类型推断

当类型没有给出时,TypeScript 编译器利用类型推断来推断类型。如果由于缺乏声明而不能推断出类型,那么它的类型被视作默认的动态 any 类型。


var num = 100;    // 类型推断为 number
num = "wanma";      // 编译错误,相当于上例 var num:number = "wanma"


1.4. 变量作用域

TypeScript 有以下几种作用域:

全局作用域 − 全局变量定义在程序结构的外部,它可以在你代码的任何位置使用。

类作用域 − 这个变量也可以称为 字段。类变量声明在一个类里头,但在类的方法外面。 该变量可以通过类的对象来访问。类变量也可以是静态的,静态的变量可以通过类名直接访问。

局部作用域 − 局部变量,局部变量只能在声明它的一个代码块(如:方法)中使用。

var global_num = 10          // 全局变量
class Person {
   age = 18;                 // 实例变量
   static score = 100;       // 静态变量
   eat():void {
      var food = 'apple';    // 局部变量
   }
}
console.log("全局变量为: " + global_num)  
console.log(Person.score)    // 静态变量,直接通过类名访问
var person = new Person();
console.log("实例变量: " + person.age)


0条评论

点击登录参与评论