TypeScript的入门学习笔记

ts是一种面向对象的语言,面向对象最重要的概念是类和对象。

对象:是类的实例,有状态和方法。

类:是描述类的行为和状态

举个例子:人分为两类 :class(男,女),而具体的每个人则是具体的object(小美,胡图图)

用ts定义一个类:

class dogs{
    voice():void{
        console.log('汪汪')
    }
}
var dog = new dogs()
dog.voice()

编译后可以看js的代码,更容易理解:

var Dogs = /** @class */ (function () {
    function Dogs() {
    }
    Dogs.prototype.voice = function () {
        console.log('汪汪');
    };
    return Dogs;
}());
var obj = new Dogs();
obj.voice();

运行结果:

ts中的数据类型:

        any,number,boolean,数组(元素类型加【】,或者使用数组泛型Arry<number>),

enum(定义数值集合),元组,void,null(空对象),undefined(没有值的变量),never。

        元组:如果某个属性的值是表达式,那它的后一个成员就必须初始化值。否则会报错。

        这里着重解释一下never,因为阅读文档过程中比较不好理解。

        概念:never是其他类型的子类型,(可以类比空集是其他集合的子集)。

        用法:一般用于定义一个无限循环的函数返回值类型,可以是抛出异常函数的返回值类型。

ts的变量声明:

TypeScript 变量的命名规则:

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

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

  • 变量名不能以数字开头。

        声明变量:var [变量名] : [类型] = 值;

例如:

var unane:string = '胡图图';

如果不设置类型,则变量为任意类型。

如果不初始化,则默认值为undefined。

对了,就是变量不能用name命名,因为会与DOM中全局对象window中的name重名,报错。

函数实现重复。

这个问题的原因是,在vscode中,它把同一文件下的函数名相同的报错了。

解决方法:在同目录下创建一个名为tsconfig.json的文件即可。

类型断言

很好理解,就是将某个值从一种类型转化为另一种类型。

规则:当 S 类型是 T 类型的子集,或者 T 类型是 S 类型的子集时,S 能被成功断言成 T。

例子:

var uname = '12345'
var uname1 = <number><any>uname
console.log(uname1)

输出结果为:12345 类型是number

12345

变量作用域

变量作用域指定了变量定义的位置。

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

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

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

算术运算符

自增:a++和++a的问题。都是自增,但前者是先取值再自增,后者是自增再取值。

短路运算符(&& 与 ||)

注意有一个很妙的用法,短路,就是当一个条件符合时,另一个条件可以不运行。

类型运算符

typeof 运算符

typeof 是一元运算符,返回操作数的数据类型。

ts 的Number对象

Number对象是对原始值的包装对象。

注意,当你new出来一个Number对象时,需要传一个你控制的数,注意一定是一个数字,否则就会返回NaN。

下面是用法和一些例子:

var num = new Number(1.2345)
//一些静态变量的输出
//可以把这个Number对象,理解为一个类,然后直接用类名进行调用的变量叫做静态变量
console.log("TypeScript Number 属性: "); 
console.log("最大值为: " + Number.MAX_VALUE); 
console.log("最小值为: " + Number.MIN_VALUE); 
console.log("负无穷大: " + Number.NEGATIVE_INFINITY); 
console.log("正无穷大:" + Number.POSITIVE_INFINITY);


//Number对象的方法

//toExponential(),把对象的值转化为指数计数法 
var num1 = 1225.30 
var val = num1.toExponential(); 
console.log(val) // 输出: 1.2253e+3

//tofixed(),把数字转化为字符串,然后定位小数点后有几位。
var num3 = 177.234 
console.log("num3.toFixed() 为 "+num3.toFixed())    // 输出:177
console.log("num3.toFixed(2) 为 "+num3.toFixed(2))  // 输出:177.23
console.log("num3.toFixed(6) 为 "+num3.toFixed(6))  // 输出:177.234000

//	toLocaleString()
//  把数字转换为字符串,使用本地数字格式顺序。
var num = new Number(177.1234); 
console.log( num.toLocaleString());  // 输出:177.1234
//	toPrecision()
//把数字格式化为指定的长度。
var num = new Number(7.123456); 
console.log(num.toPrecision());  // 输出:7.123456 
console.log(num.toPrecision(1)); // 输出:7
console.log(num.toPrecision(2)); // 输出:7.1
//toString()
//把数字转换为字符串,使用指定的基数。数字的基数是 2 ~ 36 之间的整数。若省略该参数,则使用基数 10。
var num = new Number(10); 
console.log(num.toString());  // 输出10进制:10
console.log(num.toString(2)); // 输出2进制:1010
console.log(num.toString(8)); // 输出8进制:12
//valueOf()
//返回一个 Number 对象的原始数字值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值