Number.prototype.add = function (value) {
let number = parseFloat(value);
if (typeof number !== 'number' || Number.isNaN(number)) {
thrownewError('请输入数字或者数字字符串~');
};
returnthis + number;
};
Number.prototype.minus = function (value) {
let number = parseFloat(value);
if (typeof number !== 'number' || Number.isNaN(number)) {
thrownewError('请输入数字或者数字字符串~');
}
returnthis - number;
};
console.log((5).add(3).minus(2));
3. 作用域
var a = 1;
(functiona () {
a = 2;
console.log(window.a);
})();
// 1var a = 1;
(functionx () {
a = 2;
console.log(a);
})();
// 2var a=10functionaaa(a){
console.log(a);//10var 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)
}