Number.prototype.add = function (value) { let number = parseFloat(value); if (typeof number !== 'number' || Number.isNaN(number)) { throw new Error('请输入数字或者数字字符串~'); }; return this + number; }; Number.prototype.minus = function (value) { let number = parseFloat(value); if (typeof number !== 'number' || Number.isNaN(number)) { throw new Error('请输入数字或者数字字符串~'); } return this - number; }; console.log((5).add(3).minus(2));复制代码
3. 作用域
var a = 1;(function a () { a = 2; console.log(window.a);})();// 1var a = 1;(function x () { a = 2; console.log(a);})();// 2var a=10function aaa(a){ console.log(a);//10 var a=20; //因为 a 是形参,优先级高于 var a; 所以 局部变量a的声明其实被忽略了。}aaa(a);复制代码
4.Sleep()休眠
// 方法一 function sleep(time) { return new Promise((resolve, reject) => { setTimeout(() => { resolve(time) }, time) }) } sleep(5000).then((time) => { console.log(`你睡了${time / 1000}s,然后做你的事情`) }) // 方法二 async function sleep2(time) { await sleep(time) // then do you thing console.log(`你睡了${time / 1000}s,然后做你的事情`) // async 函数返回的是一个promise对象 } // 方法三 // 通过generator 还是返回一个promise,这个不知道具体的意义,这和返回一个普通的promise有区别么 function* sleep3(time) { yield new Promise(resolve => { setTimeout(resolve, time) }) } sleep3(5000).next().value.then(() => { console.log("睡了一会儿,然后做你做的事情") }) // 方法四 // 通过传统的setTimeout去做 function sleep4(func, time) { setTimeout(func, time) }复制代码