Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.06.2020, 12:09
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

Преобразование типов
Задача нужно создать что по нажатию происходило вычисление.
И как бы задача простая но не могу понять как типы правильно преобразовывать.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
body{
	font-family: Verdana, Geneva CY, Helvetica, DejaVu Sans, Arial, sans-serif;
	font-size: .8rem;
	line-height: 160%;
}
.main{
	max-width: 720px;
	margin: 0 auto;
}
.tsifry{
	display: inline-block;
	width: 100px;
	height: 40px;
	margin: 10px 10px 10px 10px;
	border-bottom: 1px solid #000;
	text-align: center;
}
.skidka{
	display: inline-block;
	width: 200px;
	height: 20px;
	padding: 20px 20px 20px 20px;
	border: 10px solid #4E82BE;
	text-align: center;
	cursor: pointer;
}
.skidka:hover{
	border: 10px solid #132E5A;
}
.tekst{
	margin: 20px 0px 20px 0px;
}
    </style>
</head>

<body>
<div class="main">
	<div class="tsifry">900</div>
	<div class="skidka">Получить скидку?</div>
	<div class="tekst">Для вывода текста</div>
</div>
    <script>
let tsifry = document.querySelector(".tsifry");
const skidka = document.querySelector(".skidka");

console.log(tsifry.innerHTML);

tsifry = Number.parseInt(tsifry);
console.log(typeof (tsifry));

function skidkaFun(){
    tsifry = Number.parseInt(tsifry);
    tsifry - 100;
    console.log(tsifry.innerHTML);
}
skidka.addEventListener("click", skidkaFun);
    </script>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 02.06.2020, 12:37
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

var n = 4, k = '2';

alert(
    (n + k) + '\n' +
    (n + parseInt(k) + '\n' +
    (n - k) + '\n' +
    (n * k) + '\n' +
    (n / k))
)


https://developer.mozilla.org/ru/doc...jects/parseInt
Ответить с цитированием
  #3 (permalink)  
Старый 02.06.2020, 12:44
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

Сообщение от laimas Посмотреть сообщение
var n = 4, k = '2';

alert(
    (n + k) + '\n' +
    (n + parseInt(k) + '\n' +
    (n - k) + '\n' +
    (n * k) + '\n' +
    (n / k))
)


https://developer.mozilla.org/ru/doc...jects/parseInt
из строки в число, в это нет сложности, у меня я беру число из дива, преобразую его в число, вычисляю и результат снова в строку нужно.
Ответить с цитированием
  #4 (permalink)  
Старый 02.06.2020, 12:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Сергей Ракипов
преобразую его в число
Не всегда явно это и требуется, js это сделает и сам, а опять в строку - toString(), только зачем.
Ответить с цитированием
  #5 (permalink)  
Старый 02.06.2020, 13:07
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

Сообщение от laimas Посмотреть сообщение
Не всегда явно это и требуется, js это сделает и сам, а опять в строку - toString(), только зачем.
Я сейчас это метом проб понял
Ответить с цитированием
  #6 (permalink)  
Старый 02.06.2020, 13:08
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сергей Ракипов, для чего в строку, чтобы опять вставить в элемент на странице?
Ответить с цитированием
  #7 (permalink)  
Старый 02.06.2020, 13:19
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

Сообщение от laimas Посмотреть сообщение
Сергей Ракипов, для чего в строку, чтобы опять вставить в элемент на странице?
Это моя глупость я не думал что можно сделать без всего этого
Ответить с цитированием
  #8 (permalink)  
Старый 02.06.2020, 13:30
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Создайте простой текстовый файл в котором пропишите 0123456789. Откройте его в онлайн hex-редакторе. В нем можно видеть, что ASCII коды цифр это от 30 до 39 (hex значения). То есть получить бинарное значение цифры, это отнять от строкового представления 30 (hex). Для много разрядных чисел потребуются еще и другие операции. В JS оператор +, это и операция суммирования, и конкатенация строк, поэтому без явного преобразования никак. Еще +"2" также вернет бинарное значение 2 - https://learn.javascript.ru/operators.

А при вставке бинарного значения числа на страницу оно будет преобразовано автоматически в строковое представление.
Ответить с цитированием
  #9 (permalink)  
Старый 02.06.2020, 13:42
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

laimas,
Спасибо почитаю
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по преобразованиям типов!? AlexanderFilatov Общие вопросы Javascript 4 27.04.2019 02:35
Правила преобразования типов AlexanderFilatov Общие вопросы Javascript 1 23.04.2019 14:31
Преобразование типов yemcoder Общие вопросы Javascript 2 09.12.2011 09:38
преобразование типов evgenik Общие вопросы Javascript 3 29.04.2010 09:50