var Stack = (function(){ var items = new WeakMap(); //先入后出,后入先出 class Stack{ constructor(){ items.set(this,[]); } push(ele){ //入栈 var ls = items.get(this); ls.push(ele); } pop(){ //出栈 var ls = items.get(this); return ls.pop(); } size(){ //获取栈的长度 var ls = items.get(this); return ls.length; } print(){ //打印栈 var ls = items.get(this); return ls.toString(); } } return Stack; })(); function devide(num){ if(typeof num != "number" || num < 0){ throw new Error("参数必须要数字且大于0"); } num = Math.floor(num); var stack = new Stack(); var res = ''; var rem; while(num > 0){ rem = num % 2; stack.push(rem); num = Math.floor(num/2); } while(stack.size() > 0){ res += stack.pop().toString(); } return res; } console.log(devide(5))