Is this code safe in all major browsers?
var string = '123'
alert(string[1] == '2') // should alert true
No, it's not safe. Internet Explorer 7 doesn't support accessing strings by index.
You have to use the charAt
method to be compatibale with IE7:
var string = '123';
alert(string.charAt(1) == '2');
Everything in JavaScript is an object; arrays, functions, strings, everything. The piece of code you put up is perfectly valid, although a little confusing - there are much better ways of doing that
var str = '123';
str[1] === '2'; // true, as you've just discovered (if you're not in IE7)
// Better ways:
str.indexOf('2'); // 1
str.charAt(1); // '2'
str.substr(1, 1); // '2'
str.split(''); // ['1', '2', '3']
The better ways make sure anyone else reading your code (either someone else or yourself in 6 months time) don't thing that str
is an array. It makes your code a lot easier to read and maintain
I tested in IE7, IE8, Safari, Chrome, and FF. All worked just fine!
EDIT just for kicks it works in Konqueror also! Js Fiddle example
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With