如何声明一个字符数组或一个字符串?不确定字符数组和字符串之间是否也有区别。
let operators = new String();
或
let operators = '';
答案 0 :(得分:0)
对我来说,我通常会做let operators = '';
来声明和初始化string
变量。
答案 1 :(得分:0)
javascript中没有字符数组,而打字稿中也没有字符数组(这是javascript的超集)。
''
是String
对象。这就是文字形式。
['a', 'b', 's']
是String对象的数组。
因此只需使用''
;
现在''
和,String
之间有什么区别。第一个是原始,第二个是对象。但是,无论与第一个JavaScript一样,它们都会自动包装它并为其构造一个String
对象。这样我们就可以使用字符串对象的所有方法了!
除了与eval()
一起使用时。 原始被视为代码源。并且 String对象被视为字符串。
而且,图元仍将与对象区分开。但是在功能上它们是相同的。
以下显示了与console.log()的区别
从一般的编程角度来看!他们是一样的!区别根本没有关系。在少数情况下!就像eval或console.log一样。引擎的默认处理方式可能不同。但是,无论遇到什么情况,无论遇到什么情况,您都会再次重申。现在一切都清楚了。文档显示了更多,更好的阅读下面的报价。
最好在此处查看文档引用链接:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String
请注意,JavaScript区分String对象和 原始字符串值。 (布尔值和数字也是如此。)
字符串文字(用双引号或单引号引起来)和字符串 在非构造函数上下文中从String调用返回的值(即, 不使用new关键字调用)是原始字符串。 JavaScript自动将原语转换为String对象,因此 可以将String对象方法用于原始字符串。 在要在原始字符串或字符串上调用方法的上下文中 属性查询发生时,JavaScript会自动包装字符串 原语并调用该方法或执行属性查找。
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"
字符串基元和字符串对象在以下情况下也会产生不同的结果 使用eval()。传递给eval的基元被视为源代码; 字符串对象与其他所有对象一样,通过返回 宾语。例如:
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"
由于这些原因,代码在遇到字符串时可能会中断 对象,当它需要原始字符串时,尽管 通常,作者不必担心区别。
始终可以将String对象转换为其原始副本 使用valueOf()方法。
console.log(eval(s2.valueOf())) // returns the number 4