Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 01/31/2016 in all areas

  1. Можно так сделать https://jsfiddle.net/fainz777/4xkmuppk/3/
    4 points
  2. new Calculator({actions: '2 + 2 * 2'})не понятно, зачем указывать объект {actions: '2 + 2 * 2'}который содержит строку, которая должна быть разбита пробелами, чтобы потом разбирать эту строку по пробелам, вместо того, чтобы просто указать {new Calculator([2, '+', 2, '*', 2]) throw new Error("Должно быть число или операция, а не: "+val);на английском static getOperations() { return { '+': {priority: 1,func: (a, => a + b}, '-': {priority: 2,func: (a, => a - b}, '*': {priority: 3,func: (a, => a * b}, '/': {priority: 4,func: (a, => a / b} }; }каждый раз создаешь и возвращаешь объект. Зачем? static checkOperation(val) { return Calculator.getOperations()[val] !== undefined; }не так проверяется наличие/отсутствие в объекте ключадолжно проверяться либо hasOwnProperty либо key in object (в зависимости от ситуации) из-за того, что используешь parseFloat, твой калькулятор позволяет писать '2_ololo + 1' // 3мне кажется это не то поведение, которое ожидается от калькуляторапохоже на хард код if(isOperation && Calculator.checkOperation(actions[actions.length-1])) { // Если последнее и новое действие это операция то заменяем старое новым actions[actions.length-1] = val; } else if (!isOperation || (isOperation && actions.length > 0)) { if(!isOperation && Calculator.checkNumber(actions[actions.length-1])) { actions.push('+'); // (!) ТУТ } actions.push(val); } }Сделай еще проще:1. на входе проверяешь регулярками 2. чтобы получить результат, делаешь так var fn = new Function('return 2 + 2 * 2;');console.log(fn());
    3 points
  3. мучайся дальше, лучший опыт который сам пережил )))
    1 point
  4. 1 point
  5. Копался в файликах с полезными решениями, которые я для себя сохраняю и наткнулся на интересную разработку (почти что собственного приготовления) Довольно часто, при верстке "резиновой" странички, возникает необходимость выровнять список со ссылками (допустим меню) по ширине. Казалось бы без таблиц тут никак не обойтись... Однако, около месяца назад (когда кто-то на форуме озадачился этой проблемой) я придумал довольно простое кроссбраузерное решение без использования таблиц. Без лишних слов привожу код: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Test</title> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <style type="text/css"> * { margin: 0; padding: 0; font: 11px "Trebuchet MS", Verdana, Tahoma, sans-serif; } ul { list-style: none; text-align: justify; text-justify: newspaper; line-height: 0; } li { display: -moz-inline-box; display: inline-block; vertical-align:top; text-align: center; background: red; } li.helper { width: 100%; background: none; } </style> <!--[if lte IE 7]> <style type="text/css"> ul { width: 99.9%; text-align-last: justify; } li { display: inline; } li.helper { display: none; } </style> <![endif]--> </head> <body> <ul> <li>home</li> <li>about us</li> <li>contacts</li> <li>some other link</li> <li class="helper"></li> </ul> </body> </html> Проверял в браузерах: Internet Explorer 6 Internet Explorer 7 Internet Explorer 8 Opera 10.10 Mozilla Firefox 3.6.3 Google Chrome 4.1.249 Apple Safari 4.0.5 Предложения, замечания, критика и грубая лесть приветствуются
    1 point
This leaderboard is set to Kiev/GMT+02:00
×
×
  • 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