TypeScript 对象的简单使用和操作包含number对象等

11 篇文章 1 订阅

一、TypeScript 对象

1.对象是包含一组键值对的实例

let oneObj = { 
    key1: "1", 
    key2: "2",  
    key3:["content1", "content2"] 
}

2.TypeScript 类型模板
在js中我们给对象新加值可以oneObj.key4 = [2,3]但是这在ts中是不允许的

类型“{ key1: string; key2: string; key3: string; }”上不存在属性“key4”

当我们改变对象某一个值时可以用oneObj.key3 = 2;但是这在ts中也是会发生编译错误。
即:Typescript 中的对象必须是特定类型的实例
例如:

let oneObj = { 
    key1: "1", 
    key2: "2",
    key3: "",
}
oneObj.key3 = "2";
console.log(oneObj) //{ key1: '1', key2: '2', key3: '2' }

3.鸭子类型
一个对象有效的语义,非继承特定的类或实现特定的接口,而是由"当前方法和属性的集合"决定。
当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”

interface  oneDuck {
    speak:string,
    walk:string,
}
function doDuck(d1:oneDuck,d2:oneDuck):oneDuck { 
    let speak = d1.speak + d2.speak 
    let walk = d1.walk + d2.walk 
    return {speak:speak,walk:walk} 
} 
// 正确
let newDuck = doDuck({speak:"hello",walk:"go"},{speak:"ts",walk:"go"})  
 console.log(newDuck) //{ speak: 'hellots', walk: 'gogo' }
// 错误 
let newDuck2 =doDuck({speak:"hello"},{speak:"ts",walk:"go"})

注: \color{red}{注:} 注: 可以把包含speak和walk的对象叫做一只鸭子,newDuck里面传入了两只鸭子是OK的,但是在newDuck2中传入的第一只鸭子没有walk,说明这是一只假鸭子这就会导致一个运行编译时错误,但是在常规函数中,它是可以接受一个类型为"假鸭子"的对象
例如:

function oneDuck(d1:any,d2:any) { 
    let speak = d1.speak + d2.speak 
    let walk = d1.walk + d2.walk 
    console.log({speak:speak,walk:walk} ) 
} 
oneDuck({speak:"hello"},{speak:"ts",walk:"go"})

二、TypeScript Number对象

1.Number对象包含的属性

属性描述
MAX_VALUE表示最大的数,MAX_VALUE 属性值接近于 1.79E+308。大于 MAX_VALUE 的值代表 “Infinity”
MIN_VALUE表示最小的数,即最接近 0 的正数 (实际上不会变成 0)。最大的负数是 -MIN_VALUE,MIN_VALUE 的值约为 5e-324。小于 MIN_VALUE (“underflow values”) 的值将会转换为 0。
NaN非数字值(Not-A-Number)
NEGATIVE_INFINITY负无穷大,溢出时返回该值。该值小于 MIN_VALUE。
POSITIVE_INFINITY正无穷大,溢出时返回该值。该值大于 MAX_VALUE。
prototypeNumber 对象的静态属性。可向对象添加属性和方法。
constructor返回对创建此对象的 Number 函数的引用。
console.log(oneNum.constructor)
console.log("TypeScript Number 属性: "); 
console.log("最大值为: " + Number.MAX_VALUE); 
console.log("最小值为: " + Number.MIN_VALUE); 
console.log("负无穷大: " + Number.NEGATIVE_INFINITY); 
console.log("正无穷大:" + Number.POSITIVE_INFINITY);
console.log("NaN:" + Number.NaN);
console.log(Number.constructor);
// [Function: Number]
// TypeScript Number 属性: 
// 最大值为: 1.7976931348623157e+308
// 最小值为: 5e-324
// 负无穷大: -Infinity
// 正无穷大:Infinity
// NaN:NaN
// [Function: Function]

对prototype的使用:

function onePeopleFun(this:any,num:number,name:string) { 
    this.num = num 
    this.name = name 
} 
let onePeople = new (onePeopleFun as any)(123,"admin") 
onePeopleFun.prototype.email = "admin@123.com" 
 
console.log(onePeople.num) 
console.log(onePeople.name) 
console.log(onePeople.email) 

2.Number 对象的方法

属性描述
toExponential()把对象的值转换为指数计数法。
toFixed()把数字转换为字符串,并对小数点指定位数。
toLocaleString()把数字转换为字符串,使用本地数字格式顺序。
toPrecision()把数字格式化为指定的长度 表示为字符串。
toString()把数字转换为字符串,使用指定的基数。数字的基数是 2 ~ 36 之间的整数。若省略该参数,则使用基数 10。
valueOf()返回一个 Number 对象的原始数字值。

3.Number对象的简单使用

let oneVal:number = 1234.1234;
let oneNumb = new Number(oneVal);
console.log(oneNumb.toExponential())
console.log(oneNumb.toFixed(2))
console.log(oneNumb.toFixed(6))
console.log(oneNumb.toLocaleString())
console.log(oneNumb.toPrecision(5))
console.log(oneNumb.toPrecision(6))
console.log(oneNumb.toString());  // 输出10进制
console.log(oneNumb.toString(2)); // 输出2进制
console.log(oneNumb.toString(8)); // 输出8进制
console.log(oneNumb.valueOf());
let twoNumb = new Number("2");
console.log(twoNumb.valueOf());
// 1.2341234e+3
// 1234.12
// 1234.123400
// 1,234.123
// 1234.1
// 1234.12
// 1234.1234
// 10011010010.00011111100101110010010001110100010100111
// 2322.07713444350516
// 1234.1234
// 2

三、TypeScript String对象

1.String对象包含的属性

属性描述
length返回字符串的长度。
prototypeString 对象的静态属性。可向对象添加属性和方法。
constructor返回对创建此对象的 String 函数的引用。
let oneStr = new String("Hello TypeScript");
console.log(oneStr.constructor)
console.log(oneStr.length)
// [Function: String]
// 16
// prototype使用同上

2.String对象包含的方法

属性描述
charAt()返回在指定位置的字符。
charCodeAt()返回在指定的位置的字符的 Unicode 编码。
concat()连接两个或更多字符串,并返回新的字符串。
indexOf()返回某个指定的字符串值在字符串中首次出现的位置。
lastIndexOf()从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置。
localeCompare()用本地特定的顺序来比较两个字符串。
match()查找找到一个或多个正则表达式的匹配。
replace()替换与正则表达式匹配的子串。
search()检索与正则表达式相匹配的值。
slice()提取字符串的片断,并在新的字符串中返回被提取的部分。
split()把字符串分割为子字符串数组。
substr()从起始索引号提取字符串中指定数目的字符。
substring()提取字符串中两个指定的索引号之间的字符。
toLocaleLowerCase()根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射。
toLocaleUpperCase()根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射。
toLowerCase()把字符串转换为小写。
toString()返回字符串。
toUpperCase()把字符串转换为大写。
valueOf()返回指定字符串对象的原始值。

3.String对象的简单使用

console.log("str.charAt(0) 为:" + oneStr.charAt(0));
console.log("str.charCodeAt(0) 为:" + oneStr.charCodeAt(0));
let str1 = new String("Hello");
let str2 = new String("TypeScript");
let str3 = str1.concat(str2 as string);
console.log("str1 + str2 : " + str3) 
// str.charAt(0) 为:H
// str.charCodeAt(0) 为:72
// str1 + str2 : HelloTypeScript
console.log(oneStr.indexOf( "l" ))
console.log(oneStr.lastIndexOf("l" ))
// 2
// 3
console.log(oneStr.localeCompare("Hello"))
console.log(oneStr.localeCompare("TypeScript"))
console.log(oneStr.localeCompare("Hello TypeScript"))
// 1
// -1
// 0
console.log(oneStr.match(/l/g)) 
console.log(oneStr.search(/a/g)) 
console.log(oneStr.search(/l/g)) 
// [ 'l', 'l' ]
// -1
// 2
console.log(oneStr.slice(2)) // llo TypeScript
console.log(oneStr.split(" ", 1)) // [ 'Hello' ]
console.log(oneStr.split(" ", 2)) // [ 'Hello', 'TypeScript' ]
console.log(oneStr.substring(1,3)) // el
console.log(oneStr.toLocaleLowerCase()) // hello typescript
console.log(oneStr.toLocaleUpperCase()) // HELLO TYPESCRIPT
console.log(oneStr.toLowerCase()) // hello typescript
console.log(oneStr.toUpperCase()) // HELLO TYPESCRIPT
let oneStr2:number = 123;
console.log(oneStr2.toString()) // "123"
let oneStr3 = new String(oneStr2); 
console.log(oneStr3.valueOf( ));// "123"

注: \color{red}{注:} 注: split里面可以传入两个参数,第一个为以什么为目标切割,第二个为控制返回数组的长度,也可以只传一个参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值