淘先锋技术网

首页 1 2 3 4 5 6 7

在我们平时编写javascript代码时,有多少人曾思考过我们编写的代码是如何在计算机中被执行的呢?

当我们开发完成一份javascript代码后,浏览器将其编译(解析)为机器码,才能被计算机实际执行。所谓机器码,是cpu能直接解析和执行的代码。比如下面这段简单的javascript代码:

var a = 3;
var b = 4;
alert(a+b);

经过编译,cpu最终执行的就是一些列的机器码指令,大致如下:

1. 加载寄存器1,存储3
2. 加载寄存器2,存储4
3. 把寄存器1和寄存器2的值相加
4. 在屏幕上显示结果
5. 停止

我们可以看出,通过编译生成的机器码是由一系列cpu指令组成的,这些指令告诉cpu要执行什么操作。

javascript代码所生成的机器码,其实是cpu的指令集的一种表现形式。这也就是说,对于不同的cpu,其指令集也各有不同。因此,javascript代码在不同的平台上所生成的机器码也各有不同。

另外,由于javascript的特性,我们经常需要在代码运行时才决定要执行的具体操作。比如下面这段代码:

var a = 5;
var b = parseInt(prompt("请输入一个整数:"));
if(b >a) {
alert("你输入的数大于" + a);
} else {
alert("你输入的数小于或等于" + a);
}

这段代码中,用户输入的数b是在代码运行时被动态获取的。因此,在执行时,cpu需要根据b的具体值来判断要执行哪一段代码。这时,机器码中对应的指令就不是静态的了,而是动态变化的。

总之,在javascript代码被编译成机器码时,cpu会根据代码中的逻辑和语法规则,将其转换为一系列能被cpu所识别的指令。通过这些指令,cpu最终完成了我们要求的具体操作。