javascript的confirm函数怎么用 如何在Javascript中将一个函数延迟一秒后执行
在JavaScript里,confirm函数是个超级常用的小玩意儿,弹出来的对话框里头有个确定和取消两个按钮。它的妙处在于:你点“确定”,它返回true;点“取消”或者直接关闭对话框,它就返回false。比如说,你想确认用户操作,就可以用它,非常简单直观。举个小例子:
if(confirm("你确定要删除吗?")){
alert("你点了确定!");
} else {
alert("你取消了操作!");
}
接下来,咱们聊聊怎么让一个函数延迟执行一秒。这里最方便的就是setTimeout啦!你只要写:
setTimeout(fun, 1000);
就能让fun函数一秒后闪亮登场了。听起来简单,但实际操作的时候,可以用传参的方式让它更灵活,像下面这个小倒计时的例子,打开页面后会每秒刷新倒数数字,倒完提醒“时间到!!”:
- HTML结构是个显示数字的地方,比如
<div id="test"></div> - JavaScript代码:
function fun(n) {
if(n > 0) {
n--;
document.getElementById("test").innerHTML = n;
setTimeout(function(){ fun(n); }, 1000);
} else {
alert("时间到!!");
}
}
fun(3); // 启动倒计时3秒
这样,用setTimeout加一个递归调用,小伙伴们的倒计时就完成了,酷毙了有没有!

JavaScript中Function的call与apply怎么用 js中如何定义和使用function函数的多种方法 JavaScript中构造函数如何使用 以及前端javascript如何实现次方计算
好啦,说完了confirm和延迟执行,我们进入JavaScript函数的进阶玩法。首先是Function祖传大招——call与apply,这两个家伙基本是函数调动this的神器:
-
call是什么鬼?
它能让你手动指定函数里的this指向,还能直接传参数进去,参数是一个一个传的。
例如:func.call(obj, arg1, arg2); -
apply又是干啥的?
和call差不多,不过它的参数是放在数组里的,特别适合参数列表不固定的时候。
比如:func.apply(obj, [arg1, arg2]);
再来说说函数定义的多样方法,主要有:
-
函数声明
直接用function关键字,写起来爽,语义清晰。
js function myFunction() { // 代码写这里 } -
函数表达式
把函数赋值给变量,很灵活,尤其适合匿名函数。
js var myFunction = function() { // 代码写这里 }; -
构造函数
这有点牛逼哄哄,它是用new关键字配合function来创造对象的利器。
举个例子:
js
function Student(name) {
this.name = name;
this.sayHello = function() {
console.log("Hi, I'm " + this.name);
};
}
var stu1 = new Student("小明");
stu1.sayHello(); // Hi, I'm 小明
这里,this就是新对象,构造函数的任务是给新对象打扮得漂漂亮亮,而不像普通函数返回啥。
最后,再说说计算次方的两大流派:
-
Math.pow(base, exponent)
这个老牌子函数你肯定见过,Math.pow(2,3)等于8嗷。 -
指数运算符
**
ES6后,直接用2 ** 3也能直观地算3次方,写起来更顺手。
这两种方法都靠谱,就是看你中意哪种啦!

相关问题解答
-
confirm函数的返回值具体代表啥意思?
哎,这玩意儿的返回值超级简单明了!当你看到true,说明:用户真的按了“确定”那个按钮,表示他点头了;如果是false,那就表示他或是点了“取消”,或者直接关了对话框,搞得你没得选。你完全可以靠这个返回值做判断,譬如说,用户想删东西,先弹个confirm,点“确定”才偷笑着帮他删,点取消就啥事没发生,稳! -
为什么用setTimeout会比直接调用函数有用?
嘿,这个很好理解!setTimeout就是给代码装了个闹钟,让函数延后跑,给你一秒钟喘口气的时间。直接调用嘛,立刻就执行了,没得延迟效果。特别是做动画、倒计时啥的,延迟调用就简直是救星,不然画面直接卡死没新意。哎呀就是这么神奇! -
call和apply有什么秘诀吗?该如何选用?
喔,这两个简直就是“兄弟”啊,主要区别就是参数传递方式。用call就像用筷子一根一根夹参数,数目一般确定;而apply就像拎着一篮子鸡蛋,一次倒进锅里,参数以数组形式传入。
如果你参数固定且少,用call;参数多或者拼接成数组,用apply准没错。别忘了,这俩都能帮你随心所欲地改变this指向,骚操作嗷! -
构造函数跟普通函数有什么本质差别吗?
这个问得好!构造函数和普通函数最大的区别在于调用方式和this指向。构造函数必须用new来调用,这样函数里的this就“变身”成了新对象,你可以往里面添属性和方法,就像给新生儿穿衣服。普通函数则不存在这个魔力,直接调用的话,this可能就是全局对象。其实构造函数是JavaScript实现对象“生成器”的秘密武器,超级方便,帮你写出“同一类”的N个实例,贼爽!
新增评论