【发布时间】:2011-05-02 08:54:31
【问题描述】:
这样可以吗:
var myString="Hello!";
alert(myString[0]); // shows "H" in an alert window
还是应该使用 charAt(0) 或 substr(0,1) 来完成? “可以吗”我的意思是它可以在大多数浏览器上运行,是否有最佳实践建议,否则等等。
谢谢。
【问题讨论】:
标签: javascript
这样可以吗:
var myString="Hello!";
alert(myString[0]); // shows "H" in an alert window
还是应该使用 charAt(0) 或 substr(0,1) 来完成? “可以吗”我的意思是它可以在大多数浏览器上运行,是否有最佳实践建议,否则等等。
谢谢。
【问题讨论】:
标签: javascript
在 ES6 中,我们可以使用解构,因为字符串可以被视为数组:
const [...rest] = 'Hello!';
console.log(rest)
> Array ["H", "e", "l", "l", "o", "!"]
console.log(rest[0])
> "H"
【讨论】:
2018 年回答:是的,可以访问像数组这样的字符串。
语法简洁明了。 IE6 和 IE7 早已不复存在。我认为没有理由不使用它。
【讨论】:
reverse 和 pop。
将字符作为字符串的数字属性访问是non-standard prior to ECMAScript 5 and doesn't work in all browsers(例如,它在 IE 6 或 7 中不起作用)。当您的代码必须在非 ECMAScript 5 环境中工作时,您应该使用 myString.charAt(0)。或者,如果您要访问字符串中的大量字符,则可以使用其split() 方法将字符串转换为字符数组:
var myString = "Hello!";
var strChars = myString.split("");
alert(strChars[0]);
【讨论】:
使用charAt 可能是最好的主意,因为它最准确地传达了代码的意图。为单个字符调用substr 绝对是一种矫枉过正。
alert(myString.charAt(0));
【讨论】: