JavaScript eval () «синтаксическая ошибка» при разборе строки функции

Хотя манипуляция битами целого числа полезна, часто для сетевых протоколов, которые могут быть указаны до бита, может потребоваться манипуляция более длинными байтовыми последовательностями (которые нелегко преобразовать в одно целое). В этом случае полезно использовать библиотеку bitstring , которая позволяет выполнять побитовые операции с данными - например, можно импортировать строку «ABCDEFGHIJKLMNOPQ» в виде строки или в виде шестнадцатеричного и битового сдвига (или выполнять другие побитовые операции):

>>> import bitstring
>>> bitstring.BitArray(bytes='ABCDEFGHIJKLMNOPQ') << 4
BitArray('0x142434445464748494a4b4c4d4e4f50510')
>>> bitstring.BitArray(hex='0x4142434445464748494a4b4c4d4e4f5051') << 4
BitArray('0x142434445464748494a4b4c4d4e4f50510')

14
задан Kenny Peng 3 May 2010 в 20:20
поделиться

1 ответ

Чтобы сделать то, что вы хотите, оберните вашу строку в круглые скобки:

a = "function(value) { return Math.abs(value);}";
b = eval("("+a+")");
b(-1);
41
ответ дан 1 December 2019 в 06:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: