TypeScript 对象的简单使用和操作包含number对象等
admin
2024-04-26 21:08:41
0

TypeScript 对象

  • 一、TypeScript 对象
  • 二、TypeScript Number对象
  • 三、TypeScript String对象

一、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里面可以传入两个参数,第一个为以什么为目标切割,第二个为控制返回数组的长度,也可以只传一个参数

相关内容

热门资讯

利率变化对黄金行情影响如何分析... 利率作为经济领域的关键变量,其变化对金融市场的各个方面都有着深远影响,其中黄金市场也不例外。分析利率...
独家|原材料价格攀升,盛弘股份... 图源:视觉中国 蓝鲸新闻7月11日讯(记者 翟智超)一家横跨新能源与AI基础设施的龙头企业官宣全面提...
马斯克承认对手更强!但仍要求员... 快科技7月11日消息,据报道,特斯拉CEO埃隆·马斯克在一份备忘录中表示,鉴于Grok 4.5的To...
美亿万富豪:美国被掏空了,苹果... 据《财富》杂志网站7月8日报道,美国防务科技企业安杜里尔公司(Anduril)创始人、亿万富豪帕尔默...
泡泡玛特跌跌不休,段永平继续补... 在举牌泡泡玛特之后,段永平还在持续买入。 港交所最新数据显示,段永平再度增持泡泡玛特,持股数量由91...
基金合同为何重要运作机制更关键... 在基金投资领域,基金合同和运作机制是两个极其重要的元素,它们在基金的整个生命周期中扮演着关键角色。 ...
原创 外... 长征十号乙的一级箭体 7月10日中午,长征十号乙从海南商业航天发射场升空。火箭将卫星送入预定轨道后,...
期货交易中如何判断主力合约即将... 在期货交易里,准确把握主力合约换月时机对投资者至关重要,它直接影响到交易策略的制定与执行。以下是一些...
陈杰George Chan,安... 问AI· 陈杰的审计背景将如何影响IPO审核流程? 香港交易所全资附属公司香港联合交易所有限公司 ...
三环集团在香港联合交易所主板上... 转自:潮州发布 7月9日,三环集团在香港联合交易所主板成功上市,股票代码6951,成为潮州首家"A...
百亿资金持续加仓!段永平:泡泡... 继续买买买!段永平对泡泡玛特的持续加仓,再次引发市场关注。 7月10日,港交所最新权益披露信息显示,...
蚌埠港上半年集装箱吞吐量突破8... 初夏时节,蚌埠港新港作业区码头一片繁忙,岸桥有序起落,满载货物的集装箱船舶往来穿梭。2026年上半年...
AI“小登股”集体洗牌,是泡沫... 科技板块从“无差别抱团”走向分化,业绩能否超预期将成为关键分水岭。 超七成“小登股”回撤20%以上 ...
夏季达沃斯:万亿AI投资后的世... 今年夏季达沃斯,AI成为当之无愧的焦点。十余场分论坛讨论AI议题,三十余场涉及AI在制造、能源、医疗...
风险等级如何影响申赎安排更合理... 在基金投资中,风险等级是一个关键的考量因素,它对申购赎回安排有着重要的影响,合理的安排能够帮助投资者...
马斯克再出狂言:目标让Spac... 7 月 11 日消息,SpaceX CEO 埃隆 · 马斯克多年来一直靠向投资者描绘科幻式未来,为自...
一边抱紧AI、一边提防伊朗惊雷... 智通财经获悉,本周,华尔街走出了极度割裂的极端行情。伊朗局势传出新动向,一度引发原油、美债收益率和外...
原创 千... 原创首发 | 金角财经(ID: F-Jinjiao) 作者 | 周松 一年新增14000多家门店后...
西安银行[600928]日常公... 本版导读 2026-07-11 2026-07-11 2026-07-11 2026...
菏泽正规的优化网站制作哪家好 引言 在当今数字化时代,拥有一个高质量的网站对于企业和个人都至关重要。菏泽作为一个快速发展的城市,网...