Typescript/Javascript-使用新字符串()和s=''声明变量

Typescript/Javascript-使用新字符串()和s=''声明变量,javascript,typescript,Javascript,Typescript,如何声明字符数组或字符串?不确定字符数组和字符串之间是否存在差异 let operators = new String(); 或 对我来说,我通常让操作符=;声明和初始化字符串变量。javascript中没有字符数组,typescript中也没有字符数组,typescript是javascript的超集 是一个字符串对象。这叫做文字形式 ['a','b','s']是字符串对象的数组 所以只要使用 现在,和之间的区别是什么,字符串。第一个是基元,第二个是对象。但是不管它们与第一个JavaScri

如何声明字符数组或字符串?不确定字符数组和字符串之间是否存在差异

let operators = new String();


对我来说,我通常让操作符=;声明和初始化字符串变量。

javascript中没有字符数组,typescript中也没有字符数组,typescript是javascript的超集

是一个字符串对象。这叫做文字形式

['a','b','s']是字符串对象的数组

所以只要使用

现在,和之间的区别是什么,字符串。第一个是基元,第二个是对象。但是不管它们与第一个JavaScript的相同之处是什么,它都会自动包装它并为它构造一个String对象。所以我们可以使用字符串对象的所有方法! 除非它与eval一起使用。原语被视为代码源。字符串对象被视为字符串。 而基本体仍将与对象区分开来。但就功能而言,它们是相同的

这里展示了console.log的不同之处

从一般编程的角度来看!他们是一样的!这两者之间的区别根本不重要。在少数情况下!与eval或console.log一样。发动机的默认处理方式可能不同。但不管你在这些案子上得到什么。现在一切都清楚了。该文件显示更多,更好地阅读下面的报价

最好在此处查看文档参考链接:

引述: 请注意,JavaScript区分字符串对象和 基本字符串值。布尔和数字也是如此

由双引号或单引号和字符串表示的字符串文本 从非构造函数上下文中的字符串调用返回, 未使用new关键字调用的是基本字符串。 JavaScript自动将原语转换为字符串对象,因此 可以对基本字符串使用字符串对象方法。 在要对基元字符串或 如果发生属性查找,JavaScript将自动包装字符串 原语并调用该方法或执行属性查找

字符串原语和字符串对象在以下情况下也会给出不同的结果: 使用eval。传递给eval的原语被视为源代码; 通过返回 对象例如:

由于这些原因,代码在遇到字符串时可能会中断 对象,但 一般来说,作者不必担心这种区别

字符串对象始终可以转换为其原始对应对象 具有方法的价值


字符串是对象,而字符串是基本数据类型。它们通常可以互换使用,但并不总是如此。坚持使用原语并避免使用字符串,除非您需要它。您还可以使用字符串而不是新字符串来获取原语。有关更多信息,请参阅。JavaScript也没有字符,只有字符串。因此foo.charAt0返回字符串f。对字符串使用字符数组没有多大意义:表示单个字符串的字符串数组是额外的麻烦,没有任何好处。坚持到底。
let operators = '';
let s_prim = 'foo'
let s_obj = new String(s_prim)

console.log(typeof s_prim) // Logs "string"
console.log(typeof s_obj)  // Logs "object"
let s1 = '2 + 2'              // creates a string primitive
let s2 = new String('2 + 2')  // creates a String object
console.log(eval(s1))         // returns the number 4
console.log(eval(s2))         // returns the string "2 + 2"
console.log(eval(s2.valueOf()))  // returns the number 4