Почему не работает js код?
Потому что 12 / 10 равно 1.2,  а не 1
Деление происходит до тех пор, пока показатель степени не кончится.
То есть у вас число 0.00000000000000000000000000000000000000012,
только нулей больше 300 штук. И оно не равно нулю.
Используйте Math.floor(number), чтобы привести к целому.
var i = 12;
console.log(new String(i).length)
В самом простом случае с целыми числами подойдёт приведение к строке и получение её длины.
Для отрицательных и натуральных чисел также можно найти подобное решение