代码:

<script>
//1----语句式的匿名函数创建以及调用
(function(name,age){
alert("name:"+name+",age:"+age);
document.write("name:"+name+",age:"+age+"<br/>");
alert("111");
alert("222");
})("lisi","44");
//------------------------------------------- //3---第三种函数的创建
var f2=new Function("name","age",'alert("name:"+name+",age:"+age);');
f2("zhaijiahao","22");
</script>

浏览器测试现象:访问test.html文件之后的现象

点击完确定之后紧接着

点击完确定之后紧接着

点击完确定之后紧接着,特别注意页面中的并没有出现name:lisi,age:44这句话

最后所有的调用的函数中的alert()运行完之后,就会显示name:lisi,age:44这句话

具体的原因分析:

关于document.write()和alert()执行顺序的问题

为什么先写document.write()输出,却要等到后边的alert执行完成后才显示document.write()的内容?

解答:

有人认为:alert弹窗会阻塞代码 要点击确认才执行下面的代码,

问题复述:问题是把alert()写到document.write()之后也是先出弹窗,这是什么原因呢?

更合理的解答:alert会阻塞线程。实际上.write已经执行,只是浏览器还没渲染,这种情况下,有办法先让write执行结果显示。方式:

想实现“先document.write,再alert”。这里提供下思路:1>主线程跑document.write() ,然后利用setTimeOut() 定时0。5秒后执行alert();这个方法是线程不可控的 2>利用promise强制执行document.write()完之后,再在then 方法内执行 alert

对于javaScript中的alert和document.write()的执行顺序的记录的更多相关文章

  1. Javascript中页面加载完成后优先执行顺序

    Javascript中页面加载完成后优先执行顺序 document优先于windowwindow优先于element //document加载完成执行方法体 document.addEventList ...

  2. javascript 中的location.href 并不是立即执行的,是在所在function 执行完之后执行的。

    javascript 中的location.href 并不是立即执行的,是在所在function 执行完之后执行的. 1 function getUrl(tp) { if (tp == 'd') { ...

  3. 【Java基础】继承中的代码块和构造方法的执行顺序探索

    本文讲述有关一个类的静态代码块,构造代码块,构造方法的执行流程问题.首先来看一个例子 /** * Created by lili on 15/10/19. */ class Person{ stati ...

  4. python中 try、except、finally 的执行顺序

        def test1(): try: print('to do stuff') raise Exception('hehe') print('to return in try') return ...

  5. python中 try、except、finally 的执行顺序(转)

    def test1(): try: print('to do stuff') raise Exception('hehe') print('to return in try') return 'try ...

  6. JavaScript中的alert、confirm、prompt

    alert: var a=alert('Alert');//界面只有一個確定alert(a);   //返回值為undefined confirm: var c= confirm('Confirm') ...

  7. JavaScript中的alert()与console.log()的区别

    1.alert() [1.1]有阻塞作用,不点击确定,后续代码无法继续执行 [1.2]alert()只能输出string,如果alert输出的是对象会自动调用toString()方法 e.g. ale ...

  8. jqMobile中pageinit,pagecreate,pageshow等函数的执行顺序

    常见的共有5个page函数,刚开始有点迷糊的是到底谁先谁后执行. 实验告诉我们结果: var temp = ''; $('body').live('pagechange', function () { ...

  9. oracle中简单查询语句的格式及执行顺序分析

    一条简单的查询sql格式如下: SELECT ... FROM .... [WHERE ...] --过滤单行 [GROUP BY ...   [HAVING ...]]--GROUP BY对前面wh ...

随机推荐

  1. C#对config.ini文件进行读取和修改

    C#对config.ini文件进行读取和修改: public partial class Patrolcar : Form之后可以加入如下类: #region public class IniFile ...

  2. python中一行字符串太多写不下时怎么写

    ‘123456789‘ 见此博客    https://www.cnblogs.com/wanderingzj/p/5244451.html str1=('123 '455' '789') 这样的话, ...

  3. Idea全部快捷键+自行修改快捷键

    Idea常用快捷键 Tab,代码标签输入完成后,按 Tab,生成代码 Ctrl+E,最近的文件 Ctrl+X,删除行 Ctrl+D,复制行 Alt+1,快速打开或隐藏工程面板 ctrl+alt+t 快 ...

  4. JS高级---函数作为参数使用

    函数作为参数使用 var arr = [1, 100, 20, 200, 40, 50, 120, 10]; //排序 arr.sort(); console.log(arr); 排序---函数作为参 ...

  5. telnet不起作用

    1.出现 'telnet' 不是内部或外部命令,也不是可运行的程序或批处理文件. 原因:因为本机的Telnet客户端默认是关闭的,所以我们要手动打开 解决方案:打开控制面板–>程序–>打开 ...

  6. 基于Docker的Mysql Cluster集群

    参考 mysql-cluster镜像 https://medium.com/@ahmedamedy/mysql-clustering-with-docker-611dc28b8db7 使用Docker ...

  7. python下matplotlib、numpy、pandas联合作图逐步深入分析

    1.代码1: from pandas import Series,DataFrame from numpy.random import randn import numpy as np import ...

  8. [USACO08JAN]Haybale Guessing(LuoguP2898)

    The cows, who always have an inferiority complex about their intelligence, have a new guessing game ...

  9. windows系统 安装 mysql.fx

    windows系统 安装 mqtt.fx 软件官网:http://mqttfx.jfx4ee.org/ 软件下载:http://www.jensd.de/apps/mqttfx/1.1.0/

  10. pudn免费下载账号 codeforge积分账号 pudn共享账号 codeforge下载账号

    www.pudn.com和www.codeforge.cn网站下载代码很好,没有积分怎么办?那么多好的matlab代码,matlab程序,C,JAVA等等,都要充值啊!!! 下面的账号积分都用完了,大 ...