JS中的浏览器加载原理和流程控制

浏览器加载原理

1、浏览器按照从上到下的顺序下载HTML文档,一边下载一边加载到内存,不是全部下载后再全部加载到内存。另外DOM树结构的绘制优先于关联元素 的加载,比如图片
2、通常来说,浏览器执行JavaScript脚本有两大特性:
①载入后马上执行。
②执行时会阻塞页面后续内容(包括页面的渲染、其它资源的下载)载入后马上执行 document.getElementById(“but1”).οnclick=function(){ alert(“DOM树”);

特殊案例:
script
ddd(); //这样的调用方式正常,但是如果将函数定义在其他script标签中,则不能正常调用function ddd(){
alert(“小张说:‘我爱小王!’”);
/script
阻塞后续执行
alert(‘dddd’);如果不点击确认按钮,则后续的代码不执行

3、浏览器加载HTML文档时如果遇到script标签就会停止后面元素的加载, 先对JavaScript脚本文件进行解析和执行

流程控制

流程控制:就是程序代码执行顺序,通过规定的语句让程序代码有条件的按照一定的方式执行

按照结构编程的原理,任何程序都是由顺序结构、选择结构和循环结构三种结构组成

分支选择

if–else if—else

  • var kk=接收一个数据;
    if(kk==3)
    输出一个数据;
    else
    输出另外的数据;
<input id="in1" /><span id="sp1"></span><br />
    <input type="button" onclick="ff()" />
    <script>
        function ff() {
            var kk = document.getElementById("in1").value;
            var ss = "";
            if (kk == '')
                ss = "请输入数据";
            else {
                try {
                    var re = /^\d*$/;
                    if (!re.test(kk))
                        throw new Error("格式错误!");
                    ss = parseInt(kk);
                    ss = "您输入的数据为:" + kk;
                } catch (error) {
                    ss = "请输入合法的整数";
                }
            }
            document.getElementById("sp1").innerHTML = ss;
        }
    </script>

语法结构:
switch(expression){
case condition1:
break;
default:
语句n;
}

swith工作原理:首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用break 来阻止代码自动地向下一个 case 运行

<input id="in2"><span id="sp2"></span>
    <input type="button" onclick="ff2()" />
    <script>
        function ff2() {
            let in2 = document.getElementById("in2").value;
            let kk = Math.round(in2 / 10);
            var ss = "";
            //不考虑具体逻辑
            switch (kk) {
                case 10:
                    ss = "满分";
                    break;
                case 9:
                case 8:
                    ss = "良好";
                    break;
                case 7:
                case 6:
                    ss = "及格";
                    break;
                default:
                    ss = "不及格"
            }
            document.getElementById("sp2").innerHTML = ss;
        }
    </script>

do/while循环

do{

}while(expression);

for循环

for(初始化语句; 条件判断语句; 步长长度值){
}

break和continue

continue用于终止本次循环,接着开始下一次循环。
break用于完全终止循环,开始执行循环后续的代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值