Трюки Javascript
От перестановки мест слагаемых сумма не меняется! Но только не для компьютера!
#trick #javascript
От перестановки мест слагаемых сумма не меняется! Но только не для компьютера!
var a = (0.1 + 0.2) + 0.3;// 0.6000000000000001 != 0.6
var b = 0.1 + (0.2 + 0.3);
if(a == b)
sendMessage("a == b");
else
sendMessage(a + ' != '+ b);
#trick #javascript
Forwarded from Елена Берко
Привет, народ. Я с новой фишкой по приему переменных с сайтов.
Для создания обычных переменных не нужны нижние подчеркивания. При этом они создаются.
https://app.leadteh.ru/w/yFny?password=password
Часть ссылки до "?" берется в каналах. Можно на конкретный сценарий.
https://app.leadteh.ru/w/yFny?__
phone
__=777890000
- заполнит системную переменную {{phone}} (по два нижних подчеркивания ДО и ПОСЛЕ phone)Для создания обычных переменных не нужны нижние подчеркивания. При этом они создаются.
https://app.leadteh.ru/w/yFny?password=password
Часть ссылки до "?" берется в каналах. Можно на конкретный сценарий.
Трюки Javascript
Разбивка строки на слова
Допустим мы получили ответ пользователя бота в переменную "otvet" и хотим разбить это предложение на слова. Используем для этого блок "HTTP запрос", в URL пишем, например, https://site.ru Включаем "Обработать ответ с помощью JavaScript" и копируем туда эту программку:
#trick #javascript
Разбивка строки на слова
Допустим мы получили ответ пользователя бота в переменную "otvet" и хотим разбить это предложение на слова. Используем для этого блок "HTTP запрос", в URL пишем, например, https://site.ru Включаем "Обработать ответ с помощью JavaScript" и копируем туда эту программку:
var otvet = getContactVariable("otvet");;
var ss = otvet.split(' ');
for(var i=0; i<ss.length; i++)
setContactVariable("v"+(i+1), ss[i])
Послеотработки "Http блока" получим несколько переменных: v1, v2... В каждой переменной будет слово, а количество зависит от количества слов в тексте ответа
#trick #javascript
Фильтрация по "пустому полю"
Для метода getListItems API Leadtex используя фильтрацию:
Используя фильтрацию:
Поле "pole" должно иметь текстовый формат!
Для метода getListItems API Leadtex используя фильтрацию:
filters[pole]=LIKE,%получим все строки с "НЕ ПУСТЫМ" полем "pole". Т.е. все строки с заполненным pole.
Используя фильтрацию:
filters[pole]=NOT LIKE,%получим все строки с "ПУСТЫМ" полем "pole". Т.е. все строки с НЕ заполненным pole.
Поле "pole" должно иметь текстовый формат!
Трюки Javascript
Отсечение десятичной части числа
Как Вы думаете, что выдаст данная программка:
Операция X ^ 0, работает как функция Math.floor().
Так происходит потому, что для битовых операций в JavaScript используется целочисленная 32-битная арифметика.
#trick #javascript
Отсечение десятичной части числа
Как Вы думаете, что выдаст данная программка:
var x = 11 / 3;Правильно, в первом случае будет десятичное число: 3.6666666666666665, а во втором: 3
sendMessage(x);
sendMessage(x ^ 0);
Операция X ^ 0, работает как функция Math.floor().
Так происходит потому, что для битовых операций в JavaScript используется целочисленная 32-битная арифметика.
#trick #javascript
Трюки Javascript
Функция-тест на целое число
Использую предыдущий трюк можно написать
функцию определяющую, что ее аргумент целое число или нет:
Функция-тест на целое число
Использую предыдущий трюк можно написать
функцию определяющую, что ее аргумент целое число или нет:
function isInteger(num) {Для:
return (num ^ 0) === num;
}
sendMessage(isInteger(3)); // true#trick #javascript
sendMessage(isInteger(-0.9)); // false
Трюки Javascript
Поиск подстроки
Обычно функцию indexOf() Мы используем так:
#trick #javascript
Поиск подстроки
Обычно функцию indexOf() Мы используем так:
var str = "строка";А можно вот так:
if(str.indexOf("ока") != -1)
sendMessage("найдено!");
var str = "строка";Строку ~str.indexOf() можно читать как: если найдено.
if(~str.indexOf("ока"))
sendMessage("найдено!");
#trick #javascript
Опубликовано видео "Динамические сообщения". Посмотрев это видео Вы сможете создать сообщения, которые выдают информацию постепенно, что интригует читателя.
https://youtu.be/XD5G6TZPZpc
https://youtu.be/XD5G6TZPZpc
Шпаргалка по String функциям
"Leadtex".charAt(4) // "t"
"Leadtex".charCodeAt(0) // 76
"Leadtex".concat(".com") // "Leadtex.com"
"Leadtex".indexOf("e") // 1
"Leadtex".lastIndexOf("e") // 5
"Leadtex".length // 7
//"Leadtex".localeCompare()
"Leadtex".match(/[ae]/g) // ["e","a","e"]
"Leadtex".replace("tex","er")// "Leader"
"Leadtex".search("t") // 4
"Leadtex".slice(0,4) // "Lead"
"Leadtex".split("") // ['L','e','a','d','t','e','x']
"Leadtex".substr(2,2) // "ad"
"Leadtex".substring(2,4) // "ad"
//"Leadtex".toLocaleLowerCase()
//"Leadtex".toLocaleUpperCase()
"Leadtex".toLowerCase() // leadtex
"Leadtex".toUpperCase() // LEADTEX
" Leadtex ".trim() // "Leadtex"
" Leadtex ".trimLeft() // "Leadtex "
" Leadtex ".trimRight() // " Leadtex"
Статический метод объекта String
String.fromCharCode(0x441,0x44d,0x440);
// "сэр"
Шпаргалка по Math функциям и свойствам
Math.E // 2.718281828459045
Math.LN10 // 2.302585092994046
Math.LN2 // 0.6931471805599453
Math.LOG10E // 0.4342944819032518
Math.LOG2E // 1.4426950408889634
Math.PI // 3.141592653589793
Math.SQRT1_2 // 0.7071067811865476
Math.SQRT2 // 1.4142135623730951
Math.abs(-1.5) // 1.5
Math.acos(1) // 0
Math.asin(1) // 1.5707963267948966
Math.atan(1) // 0.7853981633974483
Math.atan2(5,5) // 0.7853981633974483
Math.ceil(1.5) // 2
Math.cos(0) // 1
Math.exp(0) // 1
Math.floor(1.5) // 1
Math.log(2.718281828459045) // 1
Math.max(3,10,-2) // 10
Math.min(3,10,-2) // -2
Math.pow(5,2) // 25
Math.random() // случайное от 0 до 1
Math.round(1.5) // 2
Math.sin(0) // 0
Math.sqrt(25) // 5
Math.tan(0) // 0
Шпаргалка по числовым функциям и свойствам
Number.MAX_VALUE; // 1.7976931348623157e+308
Number.MIN_VALUE; // 5e-324
Number.NaN; // NaN
Number.NEGATIVE_INFINITY; // -Infinity
Number.POSITIVE_INFINITY; // Infinity
isFinite(1/0); // false
isNaN("25"); // false
parseFloat("1.23"); // 1.23
parseInt("12.3"); // 12
(1.5).toExponential(3); // 1.500e+00
(12345.6789).toFixed(1); // 12345.7
(123456.789).toLocaleString(); // 123,456.789
(123456.789).toPrecision(2); // 1.2e+05
(255).toString(16); // "ff"
Шпаргалка по значениям Boolean
Boolean(false); // false
Boolean(undefined); // false
Boolean(null); // false
Boolean(''); // false
Boolean(NaN); // false
Boolean(0); // false
Boolean(-0); // false
Boolean(true); // true
Boolean('hi'); // true
Boolean(1); // true
Boolean([]); // true
Boolean([0]); // true
Boolean([1]); // true
Boolean({}); // true
Boolean({ a: 1 }); // true
Опубликовано новое видео о применении блока "Интерпретатор JavaScript". Рассмотрено применение этого блока на практике. В результате рассмотрено 3 варианта бота "Нумеролог"
https://youtu.be/2FJZ5ly77IM
https://youtu.be/2FJZ5ly77IM
Код программа для блока
"Интерпретатор JavaScript",
вариант 1:
Видео: https://youtu.be/2FJZ5ly77IM
"Интерпретатор JavaScript",
вариант 1:
function calc(s) {
return ('' + s)
.split('')
.reduce(function(acc,val){
acc += +val
return acc
}, 0)
}
var date = getContactVariable("date")
var str = date.replace(/[.]/g, '')
// sendMessage(str)
var num = calc(str)
while(num > 9)
num = calc(num)
// sendMessage(num)
setContactVariable("num", num)
Видео: https://youtu.be/2FJZ5ly77IM
Код программа для блока
"Интерпретатор JavaScript",
вариант 3:
Видео: https://youtu.be/2FJZ5ly77IM
"Интерпретатор JavaScript",
вариант 3:
function calc(s) {
return ('' + s)
.split('')
.reduce(function(acc,val){
acc += +val
return acc
}, 0)
}
var date = getContactVariable("date")
var str = date.replace(/[.]/g, '')
// sendMessage(str)
var num = calc(str)
while(num > 9)
num = calc(num)
// sendMessage(num)
var ed = ['','ЕДИНИЦА','ДВОЙКА','ТРОЙКА','ЧЕТВЕРКА',
'ПЯТЁРКА','ШЕСТЕРКА','СЕМЁРКА','ВОСЬМЁРКА','ДЕВЯТКА']
setContactVariable("num_text", ed[num])
var text = getGlobalVariable("numerology"+num)
setContactVariable("text", text)
Видео: https://youtu.be/2FJZ5ly77IM
Вышло новое видео о подключении чат-бота к программе Искусственного интеллекта GigaChat. Это продукт компании Сбер. Рассмотрен режим текстовой генерации
https://youtu.be/VhZ9a0UDdck
https://youtu.be/VhZ9a0UDdck