先了解下汇编的基本知识,学会使用debug命令,了解数据是如何在计算机中存储并且参与运算的
0000 0000 这个是二进制的标识方法
0 0 这个是十六进制的表示方法
1111 1111
f f 16进制的表示方法
-d 0000:0000
-d ffff:ffff是内存里面的所有数据范围 大概是4G内存,32位系统就是最多支持4G的内存,如果是64位,寻址的能力会更大,160G内存
DEBUG总是用四位十六进制数表示地址。用两位数表示十六进制数据。
-d 查看内存地址中的数据,当前地址里面的数据以数据的形式表示出来
-a 进行汇编
-u 查看汇编程序,当前地址里面的数据以指令的形式表示出来
-t 逐步的执行
-r 查看寄存器中的内容
汇编------>C语言--------->PHP,ruby,python,java等高级语言
最后给同学讲一下JAVASCRIPT渲染页面的执行过程
首先先执行文档的html/css/text/图片的加载(这里优先会执行文字信息,图片和外部的信息会慢慢的一步步的加载)
如果碰到JS,那么停止,执行JS,执行完毕后继续加载文档
如果碰到异步的JS加载的话,那么会继续加载文档,但同时会下载异步的JS文件,等文档结束后,再执行
DOM结束后,开始响应异步的JS事件了
其二:你要知道js执行的过程
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>了解JS的执行过程</title>
<script>
/*alert(1);*/
setTimeout(function(){
alert(1);
},1000);
/*window.onclick = function(){
alert('我被点击了,快跑啊');
}
alert('我被点击了');*/
</script>
<style>
a {
text-decoration:none;
}
</style>
</head>
<body>
<h1>我的网站标题</h1>
<h2>我的网站副标题</h2>
<section>
我的主题内容
<img src="http://a.hiphotos.baidu.com/zhidao/pic/item/d1a20cf431adcbef1e37412fadaf2edda3cc9f93.jpg">
<a href="#">我的链接</a>
<script>
alert(3);
</script>
<table border="1">
<tr>
<td>html4</td>
<td>css5</td>
<td>PHP5</td>
<td>javascript</td>
</tr>
<tr>
<td>首页</td>
<td>公司介绍</td>
<td>公司新闻</td>
<td>联系我们</td>
</tr>
</table>
</section>
</body>
</html>
<script>
alert(2);
</script>
<!--在这个页面当中,页面的执行顺序永远是从头到尾的顺序执行,但是,浏览器
会优先执行html标签和文字信息,将图片、视频、外部引用的资源放在后边执行
-->
<!--JS执行过程当中,浏览器停止HTML.CSS的渲染工作,直到JS代码执行完毕-->
<!--再继续执行HTML.CSS的解析-->
3.要了解一下js的数据类型
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>JS数据类型</title>
</head>
<body>
</body>
</html>
<script>
/*我们的JS代码*/
//number类型
//在JS当中,声明一个变量,需要使用var关键字,var的作用就是为了开辟一块
//存储内容的空间,这个空间的地址以名字方式记录
//具体的格式:var + 变量名
//1.在进行变量命名的时候,尽量的有意义
//2.变量名区分大小写, 尽量采用驼峰式命名 liZhiYuan welcomeToMyHome
//3.变量名用数字、字母、下划线组成,不要跟关键字冲突
var num1 = 10;
/*alert(typeof num1);*/
var num2 = -10;
/*alert(typeof num2);*/
var num3 = 0.1;
/*alert(typeof num3);*/
var num4 = 0.000000000000001;
//十六进制的数字写法
var num5 = 0xff;
/*alert(typeof num5);*/
var num6 = 065;
/*alert(typeof num6);*/
//错误的类型
//var num100 = 50%;
//字符串类型string
var str1 = '我是字符串';
var str2 = "我也是字符串";
//var str3 = <我是字符串>;
//var str4 = {我是字符串};
//var str5 = (我是字符串);
//alert(typeof str5);
//var str6 = [我是字符串];
//alert(typeof str6);
var str7 = "我是字符串'内的字符串'";
var str8 = '我是字符串"内的字符串"';
//alert( str8);
//布尔类型
var bool1 = true;//为真
var bool2 = false;//为假
alert(typeof bool2);
var bool3 = 1;
//alert(typeof bool3);
var bool4 = 0;
//未定义undefined
var a;
//null空的,没有内容的
var b = null;
//对象
var obj = {};
//+ - * / % () ++ -- += -= < > >> << != == === <= >= = ,
// && || ! ? :
//sort() Math.ceil(),Math.floor()
//有一个操作数的叫做一元运算符,两个操作数的二元运算符,三个操作数三元运算符
var num = a+b/c*d >5 !=10;
//括号成员第一
//全体单目二
//乘除余三,加减四
//移位五,关系六
//等于不等于七
//逻辑运算八
//逗号最低
var a = 10;
var b = ++a + ++a;
var c = a++ + a++ + ++a;
//alert(c);
var d = a + 50 / 2 > 100 !== 10;
var e = a > 20 && a < 100;
//如果优先级相同,那么会从左到右
//已经学习数据类型和运算符了,那么,我们就可以组成最基本的表达式了
//表达式是由一到多个操作数和运算符组成的句子
var a = b
a + b
a * b
(a / b + c) / 2
var a,b,c
//加个分号就组成了语句了.
// 所有的语句都是表达式,
// 但是所有的表达式不见得都是语句
//语句是程序的组成部分,那么程序是由多条语句组成的.
</script>
js在流程控制上和其他的语言一样
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>循环语句</title>
</head>
<body>
</body>
</html>
<script>
/* for(){} 计数循环
while(){} 条件循环
do{}while() 条件循环*/
var result = 0;
//for循环里面,首先执行赋值语句,然后再进行条件判断,当条件满足的时候
//那么就执行循环体,最后再自增. 条件判断-->执行语句--->自增 不断循环
//要循环多少次,那么就从0开始,小于你的循环次数就可以了
for(var i=0;i<100;i++){
//当数字累加到50的时候就让循环结束
if(i == 50){
//结束本次循环,下面的代码将不再执行,最后继续循环.
continue;
}
result += i;
}
//alert(result);
/*var i = 0;
while(i < 100){
result += i;
i++;
}*/
/*var i = 1;
//先进行条件判断,再执行循环体
while(1){
alert('我是不会停的');
if(i ==5){
break;
}
i++;
}*/
//最少也会执行一次,然后再进行条件判断
do{
alert('我就被执行了一次');
}while(2>3)
</script>