JavaScript访问字符串字符作为数组

Fra*_*isc 46 javascript

可以这样做:

var myString="Hello!";
alert(myString[0]); // shows "H" in an alert window
Run Code Online (Sandbox Code Playgroud)

或者应该使用charAt(0)还是substr(0,1)?通过"它没问题"我的意思是它适用于大多数浏览器,是否有最佳实践建议,否则等等.

谢谢.

Tim*_*own 47

在ECMAScript 5之前,将字符作为字符串的数字属性进行访问是非标准的,并且在所有浏览器中都不起作用(例如,它在IE 6或7中不起作用).myString.charAt(0)当您的代码必须在非ECMAScript 5环境中工作时,您应该使用.或者,如果您要访问字符串中的大量字符,则可以使用其split()方法将字符串转换为字符数组:

var myString = "Hello!";
var strChars = myString.split("");
alert(strChars[0]);
Run Code Online (Sandbox Code Playgroud)

  • 只是为非标准注释添加链接/引用,请参阅(在字符访问下):https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String (2认同)

Sau*_*aul 43

使用charAt可能是最好的主意,因为它最准确地传达了代码的意图.调用substr单个字符绝对是矫枉过正.

alert(myString.charAt(0));
Run Code Online (Sandbox Code Playgroud)

  • 如果字符串中的第一个字符由多个 UTF8 代码点(表情符号、组合字符等)表示,则此方法会失败。 (2认同)

Jam*_*mes 10

2018回答:是的,可以访问像数组这样的字符串.

语法清晰简洁.IE6和IE7早已不复存在.我认为没有理由不使用它.


Eri*_*ard 7

在 ES6 中,我们可以使用解构,因为字符串可以被视为数组:

const [...rest] = 'Hello!';

console.log(rest)
> Array ["H", "e", "l", "l", "o", "!"]

console.log(rest[0])
> "H"
Run Code Online (Sandbox Code Playgroud)