x = 'foo'
x // "foo"
x.length // 3
x === 'foo' // true
x = new String('foo')
x // String { "foo" }
x.length // 3
x === 'foo' // false
x = new String('foo')
x === 'foo' // false
x.substring(0, 3) // 'foo'
x.substring(0, 3) === 'foo' // true
a,b
- операция "запятая", её результат равен последнему операнду, то есть b.a>b
и a<b
. Поскольку в b строка, а операции дают true или false, то, соответственно, сравнения не проходят и отрабатывает ветка default.