sort()
— это только весы с двумя чашами:a - b
. Например, массив объектов типа [
{name: "Вольдемар", iq: 165},
{name: "Сигизмунд", iq: 178},
{name: "Жоржик", iq: 85},
]
захочется отсортировать по свойству iq
. Тогда функция должна будет возвращать a.iq - b.iq
length
есть не только у строки и массива: например, есть length
и у Function
.function f(a, b, c) {}
f.length // 3 - число аргументов
length
— на этом и заканчиваются общие черты, пожалуй? У строки чтение символа по его позиции через квадратные скобки — скорее просто синтаксический «сахар», более короткая запись метода строки charAt()
let str = 'Hi';
str[0] = 'h'; // ошибка
alert( str[0] ); // не работает
Обратите внимание, что JavaScript различает объекты String и значения строкового примитива (то же самое верно и для объектов Boolean и Number).
Строковые литералы (обозначаемые двойными или одинарными кавычками) и строки, возвращённые вызовом String в неконструкторном контексте (то есть, без использования ключевого слова new) являются строковыми примитивами. JavaScript автоматически преобразует примитивы в объекты String, так что на строковых примитивах возможно использовать методы объекта String. В контекстах, когда на примитивной строке вызывается метод или происходит поиск свойства, JavaScript автоматически оборачивает строковый примитив объектом и вызывает на нём метод или ищет в нём свойство.
так почему же мы можем обр. к свойствам как у массива и тд...?
const r = Array.prototype.map.call('qwerty', (ch) => ch.toUpperCase());
console.log(r);
const myObj = {
done: false,
text: "text"
}
function myFunc() {
const {
done,
text
} = myObj
return done;
}
console.log(myFunc());
setTimeOut(myfunc(),1000)