Jump to content

rgl

User
  • Posts

    109
  • Joined

  • Last visited

Posts posted by rgl

  1. Добрый день.

    Хочу расположить текст на форе картинки, точно в нужном месте. (номера участков на карте)

    Делаю так:

    <td>
    <div style="height:806px; width:497px; background-image:url(limber_test.png)">
    <span id="m1" style="position:absolute;top:97;left:101">1</span>
    <span id="m2" style="position:absolute;top:115;left:117">2</span>
    <span id="m3" style="position:absolute;top:133;left:133">3</span>
    <span id="m4" style="position:absolute;top:81;left:137">4</span>
    .........................
    </div>
    </td>

    Но положение циферок относительно картинки в разных браузерах отличается. Как это исправить?

    (Да, забыл сказать, все это находится внутри таблицы)

  2. это страница от гугла, поэтому это по его понятиям (или настройкам в услугах паркинга) генерится контент

    Понятно :-(

    Заплатил гуглу за контекстную рекламу, чтобы показывалась по ключевым словам. Вместо этого они показывают непойми где, а кто случайно кликает, сразу уходит.

  3. Не совсем в тему...т.е. не про FireFox, а только про неумение верстать.

    Пользуюсь услугами провайдера sweb.ru, в целом доволен, но сайт у них сверстан с ошибками - иногда при недостаточной ширине экрана прячутся существенные элементы, при этом никакой горизонтальной прокрутки не появляется, и ничего другого, по чему можно было бы догадаться что эти элементы вообще присутствуют.

    А еще у них ошибка в коде кнопки, вот, взгляните:

    http://sweb.ru/company/buttons/

    Там дважды встречается строка "SpaceWeb &8212; профессиональный платный хостинг", очевидно, нужно написать — а не &8212 т.е. между & и цифрами нужна решетка. Неделю назад я им об этом написал, они ответили, мол, спасибо, ваша информация передана разработчикам, но за неделю так ничего и не исправили.

  4. Хочу организовать форум. Посоветуйте хостинг и движок. Опыт и знания на нуле, все, что могу, посмотреть - на каких движках работают форумы, которые мне нравятся. Например phpBB http://www.phpbbguru.net/ или SMF http://www.simplemachines.org/ Какой из них предпочесть и главное, на что нужно обратить внимание при выборе хостинга, чтобы быть уверенным что выбранный движок на нем будет работать.

    Спасибо.

  5. Блин true и false - это булевый тип переменных. Зачем вы их строками сделали?

    function chck(id){
    var a=document.getElementById(id);

    if( a.checked )
    {
    a.checked = false;
    }
    else
    {
    a.checked = true;
    }
    }

    или

    function chck(id)
    {
    var a = document.getElementById(id);

    a.checked = ( a.checked ? false : true );
    }

    А не проще вместо

    a.checked = ( a.checked ? false : true );

    написать

    a.checked = ! a.checked;

  6. Как сортировать таблицу на HTML+JavaScript? Несложно нагуглить объяснения и готовые решения с описаниями. Однако все то, что мне удалось найти, рассматривает задачу как единое целое, и ответ на интересующий вопрос приходится "выкавыривать" из описания и примера. (При этом нет уверенности что эта "выковырянная" информация правильная). На самом деле задачу нужно рассматривать как несколько относительно независимых задач

    1. Событие, по которому надо сортировать таблицу по той или иной колонке.

    2. Применяемый алгоритм сортировки, написанный самостоятельно, или же использовать встроенную функцию

    3. Функция сравнения (простые варианты - сравнивать как числа, сравнивать как строки, но регистронезависимо, но возможны намного более сложные варианты)

    4. Как собственно переставить строки на экране.

    Вот как раз четвертый вопрос меня и интересует.

    Вопрос такой - если я буду переставлять строки таблицы так:

    tmp = tbl.rows[i].innerHTML;
    tbl.rows[i].innerHTML = tbl.rows[j].innerHTML;
    tbl.rows[j].innerHTML = tmp;

    правильно ли так делать? Попробовал - работает, но все-же нет уверенности что будет работать везде, что нет какого-то более правильного метода, ну и т.д.

  7. Да их все знают, просто так что ли люди заморачиваются с кроссбраузерностью в скриптах? Работа с DOM другая, работа с событиями другая, да много всего...

    Опять про DOM... я же говорил про отличия в самом языке.

    Это да. Но без знания методов DOM собственно ничего и сделать то нельзя в яваскрипте... Простейшие document.write или document.getElementById - методы DOM.

    Сделать можно. Напр. может понадобиться реализовать какой-то не очень простой алгоритм, для чего нужен только язык (плюс некоторые способности, навыки) а из DOM в какой-то конкретной задаче может быть достаточно того же document.write или же innerHTML, т.е. начальные знания, которые способный человек при необходимости "подхватит на лету".

    Как насчет сортировки таблицы? Реализовать алгоритм сортировки, либо же воспользоваться готовым, но для этого может понадобиться написать нетривиальную функцию сравнения, где тут DOM?

  8. DOM не является отдельным языком, не является частью JS, это всего лишь объектная модель документа, API доступа к нему и работе с ним.

    А кто языком называл?

    Глупость. Есть разные диалекты ECMAScript, но это не значит, что это одинаковые языки. Вы еще ActionScript с JavaScript сравните...

    о что в JScript есть почти все, что есть в JavaScript - это счастливая случайнойсть для веб-разработчика. Микрософты могли б сделать его совершенно иным. Эти языки похожи, но не одинаковы.

    А конкретные отличия можно назвать? А то получается что-то типа "хоть и одно и то же, но это вовсе не значит, что одно и то же". И никакая не "счастливая случайность", а так задумано. А то, что мизерные отличия наверно найти можно - ничего не значит, так всегда бывает в разных реализациях языка. Разные версии JavaScript друг от друга отличаются больше, но все равно мы говорим что это один язык.

    Хочу вернуться к тому, с чего собственно спор начался - давайте забудем про различия между JScript и JavaScript, изначально вопрос был можно ли знать JavaScript и не знать DOM, ответить могу так - есть стандарт языка, DOM туда не входит. Язык (даже без DOM) примитивным назвать нельзя, большинство тех, кто на нем пишет, всех возможностей не знает или слышал но не умеет пользоваться. Значит, там "есть что знать" даже без DOM

  9. А вот в интернетах пишут, что нифига это не яваскрипт, а JScript и вообще JScript тут используется как контейнер, а по сути это WSH (Windows Script Host) - языко-независимая технология, которая может писаться на любом ActiveX (JScript, VBScript). Получается, что яваскрипт тут не при чем...

    В интернетах пишут разное, как то, что JScript - другой язык, так и то, что язык тот же самый, просто нежелание микрософта использовать то же имя.

    "JScript тут используется как контейнер, а по сути это WSH (Windows Script Host) - языко-независимая технология" - и что, перестает быть языком? Есть операторы и конструкции, позволяющие делать вычисления и управлять последовательностью выполнения программы - значит язык.

    Другой или тот же самый? Да можно тыщу раз придумывать новые имена одному и тому же (или разным реализациям одного и того же), а в чем РЕАЛЬНЫЕ отличия? Даже версии друг другу соответствуют....

    "языко-независимая технология, которая может писаться на любом ActiveX (JScript, VBScript)" - так и в HTML можно тоже встраивать бейсик. Значит не язык а языково-независимая технология?

    Чтобы утверждать, что это другой язык, надо показать достаточное количество отличий (если отличий мало, можно называть разными вариантами языка, ведь отличался же С и Паскаль микрософтовские от борландовских, но все равно это были С и Паскаль). А как раз отличий не просто мало, их похоже вообще нет (если отвлечься от DOM), т.е один и тот же язык.

    А теперь вопрос практический - если человек в совершенстве знает один (например JScript) то имеет ли он право говорить, что знает JavaScript но не знает DOM? По-моему спор как раз из-за этого...

  10. chmod +x и, вуаля, в операционке Linix любые файлы становятся исполняемыми. Это не аргумент, ИМХО.

    Аргумент - то, что JavaScript реально используется для написания программ, не имеющих никакого отношения к интернет-сайтам, и чтобы писать такие программы, нет необходимости что-либо знать про HTML, DOM и т.д.

    Люди, занимающиеся сайтами, не проводят границы между JavaScript и DOM, ничего страшного в этом нет, пока занимаешься только сайтами и обсуждаешь вопросы только из этой области.

    Напр. многие считают, что в ЯЗЫКЕ есть функция setTimeout и нет функции Sleep. Это не совсем так. На самом деле нет ни той ни другой функции, но пока вы программируете сайты, вставляете программы внутри HTML, вы можете использовать функцию setTimeout из DOM. Но если вы пишете для операционки, ситуация меняется на противоположную, нет setTimeout но есть Sleep. Вот вам доказательство, запишите этот код в файл с расширением .js и запустите его.

    WScript.Echo( "Hello!" );
    WScript.Sleep( 5000 );
    WScript.Echo( "Hello again!" );

    У нас JavaScript используется для написания тестов, для взятия исходников из VSS и автоматической сборки проектов, ...

    Удивляться "как можно знать JavaScript и не знать HTML, DOM" это все равно что удивляться "как можно считать себя хорошим водителем и не знать карту Москвы"

  11. Кстати интересно вот из списка который написал s0rr0w как человек может знать "JS на уровне 8 из 10" при этом не владея хотябы "DOM на уровне 8 из 10" и как минимум на среднем уровне css html...

    JavaScript - язык программирования, который используется не только для интернет-страничек. В операционке Windiws файлы с расширением .js являются исполняемыми.

  12. В многочисленных примерах кода часто используется функция getElementById,

    вот например "озебривание" таблицы:

    <table border id="tb">
    <tr><td>1.1<td>1.2<td>1.3</tr>
    <tr><td>2.1<td>2.2<td>2.3</tr>
    <tr><td>3.1<td>3.2<td>3.3</tr>
    <tr><td>4.1<td>4.2<td>4.3</tr>
    <tr><td>5.1<td>5.2<td>5.3</tr>
    <tr><td>6.1<td>6.2<td>6.3</tr>
    <tr><td>7.1<td>7.2<td>7.3</tr>
    <tr><td>8.1<td>8.2<td>8.3</tr>
    <tr><td>9.1<td>9.2<td>9.3</tr>
    </table>

    <script type="text/javascript">
    var tb2 = document.getElementById( "tb" );
    for( var i=0; i<tb2.rows.length; ++i )
    tb2.rows[i].bgColor = i%2 ? "red" : "blue";
    </script>

    Но в старых книжках, которые я читал больше пяти лет назад, учили делать так:

    <script  type="text/javascript">
    for( var i=0; i<tb.rows.length; ++i )
    tb.rows[i].bgColor = i%2 ? "red" : "blue";
    </script>

    и тоже все работает.

    Вопрос - зачем использовать getElementById если и без этого можно? Поиском ничего не нашел, везде объясняют КАК использовать но не "зачем это нужно"

  13. Есть такой вариант.

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html><head><title>Тренировка</title></head>
    <script type='text/javascript'>
    //————————————————————-
    //———————-2-мерный массив————————-
    //————————————————————-


    function display(parametr_func){
    document.write("<table border=1>");
    document.write('<tr><td>Номер</td> <td>Наименование</td>');
    document.write('<td>Номер модели</td> <td>Количество</td></tr>');

    [b]for(var i = 0; i < 3; i++)[/b]{
    document.write('<tr><td>', i+1, '</td>');
    for(var j = 0; j < 3; j++){
    document.write('<td>', parametr_func[i][j], '</td>');
    }
    document.write('</tr>');
    }
    document.write("</table>");
    }

    part1 = ['Машина','BMW','555'];
    part2 = ['Самолёт','TY-134','888'];
    part3 = ['Телефон','Nokia N73','22'];

    display(new Array(part1,part2,part3));

    </script>
    <body></body></html>

    Пару замечаний немножко не в тему:

    1. Если таблица имеет фиксированное количество колонок, это нормально. Но количество строк надо уметь легко поменять. А поэтому я бы не делал цикл от нуля до трех, а до длины массива, т.е. выделенную строку лучше заменить на

    for(var i = 0; i < parametr_func.length; i++){

    2. Сам скрипт находится непонятно где, ни в хеде ни в боди. Я бы либо поместил его внутри тега body либо же разбил на две части - первая - определение функции, вторая - определение массива(-ов) и вызов функции. Вторую часть обязательно в тег body.

    3. parametr_func по моему несколько неудачное название, хочется думать что это ссылка на функцию.

  14. rgl, открою вам страшную тайну, в PHP ассоциативные массивы можно сортировать. По ключу. http://www.php.net/manual/en/function.ksort.php

    Гы.... все то же самое, а именно, нужно сначала четко определиться, что мы понимаем под каким-то термином, а затем уже обсуждать и спорить. То, что я увидел в приведенном в начале странички примере, говорит, что тут оба слова, и "сортировка" и "массив" используются в несколько другом смысле, а конкретно - если у пар (ключ-значение) есть какой-то порядок, который можно поменять (напр. при сортировке), то это нечто большее, чем ассоциативный массив. Каждой такой паре можно естественным образом присвоить номер, а значит к значению можно доступиться по ключу (что собственно и требуется от ассоциативного массива), но можно также и по номеру - а это свойство простого массива. И вот этот простой массив, в котором хранятся пары (ключ-значение) как раз и сортируется. Ассоциативный же массив остается таким, каким и был, т.е. как было у элемента с ключом d значение lemon", а у элемента с ключом a - orange, так они и остались.

    Другими словами, кроме ассоциативного массива есть еще скрытый (?) обычный массив, вот он как раз и сортируется.

  15. Я уж не знаю как в Си, но вот в PHP любой массив - ассоциативный, так что ваше утверждение не совсем верно. Причем PHP - это Си-подобный язык...

    Мое утверждение не совсем верно - наверно это так. Давайте подумаем что такое сортировка. Есть некоторое множество полей, ячеек, элементов, не важно как называть. У них есть названия (имена, номера), и в них могут храниться значения.

    Иногда (но не всегда) у ячеек есть какой-то естественный, самоочевидный порядок, напр. если это числа, то по возрастанию. Так вот, сортировка - перестановка ЗНАЧЕНИЙ так, чтобы в результате порядок НАЗВЕНИЙ и порядок ЗНАЧЕНИЙ совпадал. У массива (обычного) есть естественный порядок ячеек - порядок целых чисел. Поэтому понятно что значит сортировка. Для ассоциативных массивов это не так, но придумать что-нибудь можно :-)

    Теперь о подобии - когда начинал осваивать JavaScript, тоже слышал везде, что по подобию С. Но различий так много, что сейчас это утверждение считаю неверным.

    О массивах (обычных). Никто не станет спорить что в С массивы есть, и никто не назовет их неполноценными. Тем не менее нет добавления элементов в начало и в конец, нет обращения, соединения. Да, кажется, вообще ничего нет :-) хотя кое-что из этого списка можно легко реализовать самому.

    Все что я хочу сказать - наличие сортировки, обращения, добавления в начало - возможности, наличие или отсутствие которых не должно быть критерием в вопросе - является ли нечто ассоциативным массивом или нет.

    То что приведено в Википедии под видом хеша называется JSON.

    Про хэш вообще ничего не говорил. Привел ссылку на статью в википедии про ассоциативные массивы.

    "Под видом" ничего не приведено, просто при инициализации объекта использован этот самый JSON, можно было обойтись и без него, присвоив начальные значения с помощью точки или квадратных скобок. Суть от этого бы не поменялась.

  16. Про хеши:

    определения я давать не собираюсь - как назвали так назвали. По мне это тоже глупость, я б называл вещи своими именами - это просто свойства объекта.

    Но я оперирую теми понятиями, которые приняты среди JavaScript программистов. Если вы скажете любому из них про хеш, он поймет вас правильно (ему не придут в голову алгоритмы шифрования типа MD5).

    А я попытаюсь дать определение (сам, никуда не заглядывая). Хэш-функция - это функция, значение которой непредсказуемо, и как бы случайно зависит он аргумента. Т.е поменяли в исходном значении что-то незначительно (один битик в целом числе, одну букву в строке) и значение функции поменялось, причем поменялось сильно, независимо от того, как мало поменялось исходное данное. Понятно, что в криптографии требование к "как бы случайно" намного выше.Хэш-таблица - структура данных и метод поиска в нем (а также добавления), основанный на использовании свойст хэш-функции. Просто хеш - некорректное использование слова, что нередко встречается, когда, например, марганцовку называют марганцем, а нашатырный спирт - нашатырем.

    Теперь о свойствах объекта. В языке С есть структуры, у которых есть поля. Последнее время их стало модным называть не полями а свойствами, но суть не меняется. Главное, что если у структуры s есть поля a,b и c, то мы можем доступиться до них написав s.a s.b s.c, так должно быть написано в программе, и нет никакого способа указать к какому из полей мы хотим доступиться используя переменную.В JavaScript все не так, там можно доступиться, s[ x ] где x - переменная, содержащая текстовую строку, сообщающую к какому именно полю мы хотим доступиться. Все, этого уже достаточно чтобы называть это ассоциативным массивом.

    Есть операция добавления, доступа, удаления.

    Повторюсь еще раз это не полноценные ассоциативные массивы. Вы не сможете провести над ними таких операций, которые вы сможете провести над обычным массивом, я имею в виду сортировку, добавление элементов в начало и конец массива, обращение массива, соединение двух массивов и т.п. Вы просто ничего этого сделать не сможете.

    Тоже повторюсь - ассоциативные массивы и (просто) массивы - два разных понятия, а не одно - разновидность другого. У ассоциативного массива нет и не может быть сортировки, обращения, нет начала и конца, просто по определению.

    Если следовать вашей логике то в том же PHP существуют два ассоциативных массива что ли?

    Первый - когда я создаю массив вот так:

    $arr = array('key' => value);

    а второй когда я создаю публичные свойства класса...

    Но это же бред...

    Я к сожалению не знаю PHP поэтому тут ничего сказать не могу.

    Ссылки:

    1. Ассоциативный массив в википедии. Приводятся конкретные примеры в т.ч. и объекты JavaScript

    http://ru.wikipedia.org/wiki/%D0%90%D1%81%...%81%D0%B8%D0%B2

    2. Сайт javascript.ru на этом форуме считается авторитетным источником. Вот что там написано:

    Объект в javascript представляет собой обычный ассоциативный массив или, иначе говоря, "хэш". Он хранит любые соответствия "ключ => значение" и имеет несколько стандартных методов.
    Длинна массива не зависит от наличия данных у элементов. Вы можете создать массив длинной в 5 элементов, и не заполнять ни одну ячейку.
    Именно то, что я и утверждаю, максимальный целочисленный индекс плюс один. И больше ничего.

    Если написать:

    var a = new Array();

    a[10] = 0;

    то "длина" будет 11, a[15] не существует, но равным образом не существует и a[5]

    Вы ошибаетесь, думая, что JS работает с памятью или есть какие-то ограничения. Длинна массива может быть декларативной, а может быть реальной. Пустые элементы могут не занимать вообще память, а могут занимать, все зависит от реализации интерпретатора.
    Я как раз не ошибаюсь. Я точно знаю, что массив в других языках программирования - это расположене элементов в памяти последовательно, т.е. если есть первый элемент и есть десятый, то будет и второй, третий, и т.д. (или по крайней мере будет память где он должен находиться, с конкретным адресом). В JavaScript такого нет, занимают память только существующие элементы, и это потому что массивов в JavaScript нет, есть только эмуляция массивов с помощью ассоциативных_массивов.
    Пустые элементы могут не занимать вообще память, а могут занимать, все зависит от реализации интерпретатора.
    Нет, не так. Пустые элементы в JavaScript не будут занимать память ни в какой реализации интерпретатора.

    Еще раз:

    1. массив и ассоциативный массив - два разных понятия, а не одно - разновидность другого. У ассоциативного массива нет и не может быть сортировки, обращения.

    2. Хэш-таблица - метод поиска, с помощью которого можно реализовать ассоциативный массив. Но это есть и должно быть скрыто, и если вместо хэш-таблицы использовать какое-нибудь из многочисленных деревьев, ничего не поменяется. Так же как "быстрая сортировка" - название метода (алгоритма) сортировки, но когда вы вызываете функцию сортировки, вам не важно знать что она делает внутри, и действительно ли там быстрая сортировка или heap-сортировка, или еще какая-то.

  17. А первый alert вы типа не заметили?

    1,,,,,,2

    Так устроен alert, а что тут удивительного?

    По простому массиву циклом ходить можно всегда.

    Циклом от нуля и до (но не включая) длину можно ходить, если заранее известно, что все элементы внутри диапазона есть, почти всегда надеяться действительно можно. Либо же можно проверять элемент на существование.

    неправда, остальные элементы будут пустые

    var a = new Array();
    a[1000000000] = "test";
    alert(a[1000000000]);
    alert(a.length);

    Где берется столько памяти для пустых элементов?

    Вот вам несколько цитат из статьи (если мне не верите и читать лень):

    Для начала надо бы определиться с терминами. Еще раз, кто такие "хеши" не знаю, вот в цитате написано про хеш-таблицы, есть хэш-функции, а просто "хэши" - нет такого. А главное, прежде чем спорить "ассоциативный массив или нет" надо дать ЧЕТКОЕ определение этому термину.

    Тоже приведу цитату (про ассоциативные массивы)

    Наиболее популярны реализации, основанные на различных деревьях поиска. Так, например, в стандартной библиотеке STL языка С++ контейнер map реализован на основе красно-чёрного дерева. В языках Ruby, Tcl, Python используется один из вариантов хэш-таблицы. Есть и другие реализации.

    Т.е. хэш-таблица - способ реализации.

    А "не верю" я потому что достаточно хорошо знаю предмет (имеется ввиду JavaScript, если рассматривать его отдельно от объектной модели браузера. Ведь это язык, который применяется не только для создания интернетных страничек). Вот только спорить письменно тяжело.

    P.S.

    Еще по поводу вот этой фразы:

    Взято отсюда

    У каждого массива есть свойство length, которое автоматом меняется при каждом обновлении массива. Длина массива - это не количество элементов, а максимальный целый ключ + 1

    http://javascript.ru/basic/array#avto-dlina-length

    По вашей же ссылке - в JavaScript имеется loose поддержка ассоциативных массивов (слово loose перевел бы как "слабая", "ограниченная", но все же имеется ведь. А чем же она ограничена? Нет удобного конструктора - это та. Нельзя проходить как в STL в порядке возрастания ключей, перейти к следующему, предыдущему (но чтобы это было возможно, надо для начала задать этот самый порядок ключей. Для целых чисел он самоочевиден, а для значений произвольного типа, где могут быть вперемешку дробные числа, строки, ... - как? В STL при создании map можно задать функцию сравнения ключей, да, возможностей больше, но это как раз те возможности, которые выходят за рамки понятия "ассоциативный массив"

  18. Да нет в яваскрипте ассоциативных массивов! Запустите и убедитесь:

    var arr = new Array();

    arr['a'] = 1;
    arr['b'] = 2;
    arr['c'] = 3;
    arr['d'] = 4;
    alert(arr.length);
    alert(arr);

    arr.push(1);
    arr.push(2);
    arr.push(3);
    arr.push(4);
    alert(arr.length);
    alert(arr);

    Если ему свойств назадавать, как вы по нему циклом то ходить будете? А сортировку как сделаете?

    И в чем я должен убедиться?

    Сортировка для ассоциативного массива - понятие не определенное. Еще раз: если в термине "ассоциативный массив" есть слово "массив" это вовсе не значит, что ассоциативный массив - разновидность массива. Это совершенно другое понятие.

    Ходить циклом можно используя for( i in ...), кстати, а вот по простому массиву в JavaScript ходить циклом можно не всегда, запросто можно создать массив, в котором десятый элемент есть (и "длина" будет одинадцать), а первого-второго-третьего нет.

    Это не ассоциативные массивы, это больше хэши.

    Понятия "большие хэши" не знаю. Слово "хэш" знаю в двух смыслах, 1. способ организации поиска, который описан в теории, но на практике наверно уже не применяется, всякие там деревья лучше. Но в любом случае это был бы СПОСОБ РЕАЛИЗАЦИИ ассоциативного массива. 2) Криптографический хэш - к обсуждаемой теме очевидно никакого отношения не имеет.

    А это тогда как понимать?

    var arr = [];
    arr[0] = 1;
    arr[7] = 2;

    alert(arr);
    alert(arr.length);

    Понимать так, что length возвращает НЕ размер массива (количество элементов), а максимальный целочисленный номер.

  19. Если вы не заметили, я говорил про ассоциативные массивы в PHP. Там ассоциативный массив и объект (класс) - это совершенно разные вещи. Такого плана массивов в JavaScript нет.

    Даже в яваскрипте Объекты - это не ассоциативные массивы. Вы не сможете работать со свойствами объекта так же как с массивом (я имею в виду такие методы как push(), join(), shift(), slice() и т.п.).

    Не вводите человека в заблуждение.

    Я совершенно ничего не знаю про PHP поэтому, возможно, не понял вашего утверждения, что конкретно вы имели ввиду. Я только знаю общепринятое значение слов "ассоциативный массив" - это (если можно так сказать) массив, в котором индексов может быть не число, а (скажем) произвольная строка. В этом смысле объекты в JavaScript - это ассоциативные массивы. Другой пример ассоциативного массива - map в STL

    Если я не могу использовать методы push(), shift() - это вовсе не говорит что что-то - не ассоциативный массив. Это говорит скорее что не массив с целочисленным индексом. Просто не надо считать понятие "ассоциативный массив" разновидностью просто массива, это два разных понятия, хоть и в названии есть общее слово. Так вот, правильнее сказать было бы, что в JavaScript нет "просто массива" а сделана его эмуляция и помощью ассоциативного массива, или, что то же самое, объекта.

    В простом массиве, в известных языках программирования, элементы располагаются в памяти подряд, и невозможно сделать массив, в котором бы был и первый и сотый элемент, но не было бы двадцатого и тридцатого (хотя можно в то место, где эти элементы должны быть, записать значение "пусто", но память все равно будет выделена.

    В JavaScript все не так, память выделяется только для тех элементов, которые есть, и располагаются они в памяти не "в порядке номеров".

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy