广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >TypeScript里string和String的区别
  • 645
分享到

TypeScript里string和String的区别

2024-04-02 19:04:59 645人浏览 八月长安
摘要

目录背景1、原生string2、对象String3、代码对比4、为什么需要String对象4、两者区别总结 摘要:通常来说,string表示原生类型,而String表示对象

摘要:通常来说,string表示原生类型,而String表示对象。

背景

javascript语言不同的是,typescript使用的是静态类型,比如说它指定了变量可以保存的数据类型。如下图所示,如果在js中,指定变量可以保存的数据类型,会报错:“类型注释只可以在TS文件中被使用”:

TypeScript是JavaScript的超集(superset),TypeScript需要编译(语法转换)生成JavaScript才能被浏览器执行,它也区分了string和String这两个数据类型。通常来说,string表示原生类型,而String表示对象。

1、原生string

JavaScriptes6标准里支持6种原生类型(number),string是其中之一。

原生的string是不包含属性的值(即没有properties),包括字面上没有定义类型、字面上定义了string、字面上定义了String和一些从string函数调用返回的strings也都可以被归为原生类型:

以上三个变量的类型(typeof())是string

2、对象String

对象是不同属性的累积,一个对象可以调用许多相应的方法。

let msg3: String = new String('Hello world!');

这个变量msg3的类型就是object:

console.log(typeof(msg3)); // object

String对象支持的方法:

3、代码对比

我们对下面4个变量进行类型的探索与比较:

let msg: string = 'Hello world!';
let msg2: String = 'Hello world!';
let msg22 = 'Hello world!';  //字面上没有定义类型
let msg3: String = new String('Hello world!');

console.log(typeof(msg));  //string
console.log(typeof(msg2));  //string
console.log(typeof(msg22));  //string
console.log(typeof(msg3));  //object
console.log(msg === msg2);  //true
console.log(msg === msg3);  //false
console.log(msg2 === msg3);  //false

4、为什么需要String对象

首先,当我们使用关键字new新建一个String对象的时候,TS会创建一个新的对象;即我们用new新建了两个String对象,即使内容相同,它们也是指向不同的内存。

举下面两个栗子:

1.当用a1,b1代表相同值的两个变量的时候,它们是相同的;而当用new新建两个对象的时候,即使值相同,它们也是不同的(下图会输出false, true):

2.eval()函数的作用:用来计算表达式的值。如果我们把eval()直接赋给string,而string里面是计算式的字符串,那么它会返回计算后的值;而如果我们把eval()赋给String,因为它不是原生类型,它只会返回String这个对象(下图会输出27, :"8 + 20", 28):

其次,因为String对象可以有属性。我们可以用String对象在属性里保留一个额外的值。即使这个用法并不常见,但是仍然是TS的一个特性:

var prim = 'hello HW';
var obj = new String('hello HW Cloud');

prim.property = 'PaaS'; // Invalid
obj.property = 'PaaS';  // Valid
console.log(obj.property); //输出为PaaS

4、两者区别总结 

到此这篇关于TypeScript里string和String的区别的文章就介绍到这了,更多相关TypeScript里string和String内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: TypeScript里string和String的区别

本文链接: https://www.lsjlt.com/news/144491.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • TypeScript里string和String的区别
    目录背景1、原生string2、对象String3、代码对比4、为什么需要String对象4、两者区别总结 摘要:通常来说,string表示原生类型,而String表示对象...
    99+
    2022-11-13
  • C#的String和StringBuilder的区别
    这篇文章主要介绍“C#的String和StringBuilder的区别”,在日常操作中,相信很多人在C#的String和StringBuilder的区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#的St...
    99+
    2023-06-20
  • java中string和char区别
    1、类型不同char是字符类型, String是字符串类型。 (推荐学习:java课程)2、包含String字符串是用来包含字符串的, char是用来包含单字符的。例如:char a...
    99+
    2018-11-26
    java教程 java
  • 浅谈String、StringBuffer和StringBuilder的区别
    在Java开发面试经常会被问到String,StringBuider,StringBuffer区别,很多人回答得不够全面和深入,那么它们到底都有什么区别呢!三者都是用来对字符串进行操作,String通常用来定义一个变量,而StringBui...
    99+
    2019-10-22
    java入门 java String StringBuffer StringBuilder
  • Java String 和StringBuffer的详解及区别
    Java String 和StringBuffer的详解及区别Java平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。String类表示内容不可改变的字符串。而StringBuf...
    99+
    2023-05-31
    java string stringbuffer
  • string与stringbuilder两者的区别
    String是不可变的,即一旦创建就无法改变其内容,每次对String进行修改操作(如拼接、替换、删除等),都会创建一个新的Stri...
    99+
    2023-08-14
    string
  • Java之String、StringBuffer和StringBuilder的区别和原理
    首先我们先来谈谈String:String对象一旦创建,其值是不能修改的,如果要修改,会重新开辟内存空间来存储修改之后的对象,即修改了String的引用。 因为 String 的底层是用数组来存值的,数组长度不可改变这一特性导致了上述问题。...
    99+
    2015-11-11
    java教程 Java
  • string类和stringbuffer类的区别是什么
    String类和StringBuffer类的主要区别是可变性和线程安全性。1. 可变性:String类是不可变的,即一旦创建就不能被...
    99+
    2023-09-14
    string
  • C# 中StringBuilder和String的区别是什么
    今天就跟大家聊聊有关C# 中StringBuilder和String的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C# StringBuilder和String区别Str...
    99+
    2023-06-17
  • Java String类和StringBuffer类的区别介绍
     关于java的字符串处理我们一般使用String类和StringBuffer类 那么String类和StringBuffer类的区别在什么地方呢 1、String是不可变...
    99+
    2022-11-13
  • typescript和javascript区别
    1、类型系统 typescript:Typescript 是一种强类型化面向对象的编译语言。它是由微软开发的。 javascript:JavaScript是一种轻量级的解释型语言。它是由Netscape推出的。 TypeS...
    99+
    2023-10-29
    区别 typescript javascript
  • Mysql中NULL和Empty String的区别是什么
    这期内容当中小编将会给大家带来有关Mysql中NULL和Empty String的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。create tabl...
    99+
    2022-10-18
  • query string、formData和request payload的区别是什么
    这篇文章主要讲解了“query string、formData和request payload的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“qu...
    99+
    2022-10-19
  • 在xpath中text()和string(.)的区别有哪些
    这篇文章将为大家详细讲解有关在xpath中text()和string(.)的区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。  我们在进行爬虫时候,经常会遇到如下这样的页面:  你好,北京  在日...
    99+
    2023-06-02
  • java中String StringBuffer和StringBuilder的区别是什么
    这篇文章主要介绍“java中String StringBuffer和StringBuilder的区别是什么”,在日常操作中,相信很多人在java中String StringBuffer和StringBuilder的区别是...
    99+
    2023-06-28
  • Java中String、StringBuffer和StringBuilder的区别是什么
    这篇文章主要讲解了“Java中String、StringBuffer和StringBuilder的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中String、String...
    99+
    2023-06-27
  • java中 String和StringBuffer的区别实例详解
    java中 String和StringBuffer的区别实例详解String:           是对象不是原始类型.  &nb...
    99+
    2023-05-31
    string stringbuffer buf
  • c语言string和char的区别是什么
    C语言中,`char`和`string`是两种不同的数据类型。- `char`是C语言中用来表示单个字符的数据类型,它占用一个字节的...
    99+
    2023-08-18
    c语言 string char
  • java中String、StringBuffer与StringBuilder的区别
    String String类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。 这个是String类的解释,之前小咸儿看到...
    99+
    2022-11-12
  • string与stringbuilder的区别是什么
    string是不可变的字符串,而stringbuilder是可变的字符串。在使用string时,每次对字符串的修改都会创建一个新的字...
    99+
    2023-08-15
    string stringbuilder
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作