javascript - 我们可以说 String 是 Javascript 中的对象吗?

标签 javascript ecmascript-6

当我听说字符串是 JS 中的原语时,我总是感到困惑,因为每个人都知道字符串有不同的方法,如:length、indexOf、search 等。

let string = "Please locate where 'locate' occurs!";
let pos = str.lastIndexOf("locate");
let position = str.search("locate");

最佳答案

的确,JavaScript 中的一切都像对象一样,因为我们可以在其上调用方法。当我们对字符串使用 new 关键字时,它变成一个对象,否则它是原始类型。

console.log(typeof new String('str')); //object
console.log(typeof 'str'); //string

现在,每当我们尝试访问字符串的任何属性时,它都会使用 new String()

将原始值装箱
'str'.indexOf('s')

相当于

(new String(str)).indexOf('s').

上述过程称为“装箱”。 “装箱”是将对象包装在原始值周围。

关于javascript - 我们可以说 String 是 Javascript 中的对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57873685/

相关文章:

javascript - 有没有办法从单个字符中获取 charCode?

javascript - 如何动态地以自定义形式(即圆圈)将文本包装在 div 中

javascript - 如何避免对每种类型调用数据库?

javascript - 在 Underscore.js 中使用 JavaScript-Iterables

JavaScript 字符串数组自定义排序

javascript - 使用Apollo+Vue : What parameters are given to the "update" callback?

javascript - es6 使用 var、let 或 const 迭代对象?

javascript - 有什么方法可以进行同步 PageMethods 调用?

php - Greasemonkey 脚本将 JavaScript 变量与另一个页面的内容进行比较?

javascript - mustache 模板命名空间冲突/范围界定