JSFiddle - React, Tailwind, and code Playground

HTML

смари в консоль

JavaScript

function bigint(string){
	string = string.toString() || '0';
	if(
		  	(string.indexOf('.') === -1)
		&&	(string.indexOf('e') === -1)
		&&	Number(string) <= Number.MAX_SAFE_INTEGER
	){
		return Number(string);
	}
	else if(
		  	(string.indexOf('e') !== -1)
		||	(string.indexOf('.') !== -1)	//(1e-3).toString() = "0.001"
	){
		if(string.indexOf('e+') !== -1){
			return ( eval(string.split('e+')[0]+'n' ) * (10n ** eval(string.split('e+')[1]+'n')) );
		}
		else if(
			  	(string.indexOf('e-') !== -1)
			||	(string.indexOf('.') !== -1)
		){
			return string;
		}
	}else{
		return eval(string+'n');
	}
}

console.log(1, bigint(1).toString());
console.log(Number.MAX_SAFE_INTEGER, bigint(Number.MAX_SAFE_INTEGER).toString()); //9007199254740991
console.log(9007199254740992, bigint(9007199254740992).toString());
console.log('fail here', 9007199254740993, bigint(9007199254740993).toString());	//input -> 9007199254740992
console.log('9007199254740993', bigint('9007199254740993').toString());
console.log('10000000000000000000000000000000000000000', bigint('10000000000000000000000000000000000000000').toString());
console.log(1e+40, bigint(1e+40).toString());
console.log('1e+40', bigint('1e+40').toString());
console.log(1e-5, bigint(1e-5).toString());
console.log('1e-5', bigint('1e-5').toString());
console.log(1e-40, bigint(1e-40).toString());
console.log('1e-40', bigint('1e-40').toString());
console.log('123456789123456789123456789123456789123456789123456789123456789', bigint('123456789123456789123456789123456789123456789123456789123456789').toString());
console.log('0.000000000000000000000000000000000001', bigint('0.000000000000000000000000000000000001').toString());
console.log('0.12345678912345679123456791234567912345679', bigint('0.12345678912345679123456791234567912345679').toString());