JS=>javascript:基于浏览器的脚本语言
Day1:变量,数据类型
Day2:语句,循环
Day3:函数
Day4-day6:案例
JS:javascript
HTML和CSS:标记语言
Javascript:编程语言
变量:variable 英 [ˈveəriəbl] 美 [ˈveriəbl]
语法:var 变量名=值(数据);
变量:用来保存东西(数据)
变量名:name=”假冰冰”,[冰冰=>bb=>2b]
变量名注意:
1) 变量名不能和系统内部关键字相同
2) 变量名不能以数字开头
3) 变量名里面,只能包括数字,字母,下划线
4) 建议:大家用比较有意义的名字
5) 建议:把var加上,为了让JS代码标准
变量名:
1) abc_acb
2) __abc
3) ______(不建议使用)
4) 123abc(错误)
5) Abc123
Alert:弹出窗口(警告,测试)
1) 警告显示
2) 测试
JS里面的语法注意:
1) 在JS里面,所有的符号都必须是英文状态下的符号
2) JS里面,区分大小写
3) 建议,在每一行的后面,都加上分号
4) 建议,写js代码,每行表达每行的意思即可
5) 在JS里面,
Firebug的应用:
1) 打开firebug
2) 控制台
数据类型:
1) 数字(number),数字类型,通常表示数字,可以相运算
2) 字符串(string),字符串类型,通常表示字母或者汉字,写字符串的时候,必须加上引号,那么在JS中,单引号和双引号都可以
3) 布尔类型(Boolean,bool) 只有两个值,true(真),false(假)
4) 空类型(null)表示没有值,空的
5) 未定义类型(undefined)表示没有定义
6) 复合数据类(arr,object)表示很多数据的集合
课堂练习:
要求大家,把上面的数据类型,都创建并且弹出查看
注释:
两种注释的方法:
1)//单行注释,在符号”//”后面所有的内容都是注释的内容
2)“/*内容*/“,在符号”/**/”里面所写的内容都是注释内容
就是在代码上表明一些所写的代码,但是不会再浏览器上显示
用注释表明每一段所写的内容
运算符:
1) 赋值运算符“=“
赋值运算符,表达的意思就是:把符号”=”右边的数据赋值给左边的
2) 算数运算符”+,-,*(乘号),/(除号),%(取余),++,--”;
%取余:得到两个数相除得到的余数
++代表的意思就是:自加1
--代表的意思就是:自减1
以上两个运算,如果参与到赋值运算里面的时候,那么这个时候有所改变
++的情况,如果说,var i=1;var j=i++,先把i赋值给j再运算i++;
如果说:var i=1;var j=++i,先自加,再赋值给j
--的情况,和++的情况相同,如果是i--,那么就是先赋值,再自减
如果是--i,那么就是先自减,再赋值
3) 逻辑运算符:符号”&&,||,!”
&&叫做逻辑与
两个情况都满足的情况
||叫做逻辑或
两种情况满足一种情况
!非
取反的意思
4) 比较运算:符号(>(大于),<(小于),>=(大于等于),<=(小于等于),==(等于),!=(不等于),===(全等于),!==(不全等于))
5) 复合赋值运算符
+=,-=,*=,/=
Var i=2;i+=2;i=i+2
Var j=2;j-=2;j=j-2
Var n=2;n*=2;n=n*2
Var m=2;m/=2;m=m/2
字符串运算符:符号“+“
意思就是把左边和右边的数据,相连接起来
什么时候会用到字符串运算符,当“+”左右两边(有一边就可以)有字符串的时候,就会用到字符串连接
6) 位运算符:符号很多
十进制 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
二进制 |
1 |
10 |
11 |
100 |
101 |
110 |
111 |
1000 |
1001 |
1010 |
1011 |
1100 |
<<:按位左移:把数字的二进制同时向左移动,空出来的位置补0即可
var i=9;
var j = i<<2;应该是36;
9的二进制 |
0 |
0 |
0 |
0 |
1 1*2的3次方(8) |
0 0*2的2次方(0) |
0 0*2的1次方(0) |
1 1*2的0次方(1) |
左移两位 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
结果 |
2的5次方(32) |
0 |
0 |
2的2次方(4) |
0 |
0 |
1026=》1*10的3次方【得到的是千位数字】
0*10的2次方【得到的是百位数字】
2*10的1次方【得到的是十位数字】
6*10的0次方【得到的是个位数字】
&:按位与运算:把两个数(表达式)的二进制相比较,如果相同位数上的数都为1,那么为1否则,为0
Var i=9;
Var j=8;
Var m = i&j;
9的二进制 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
8的二进制 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
结果 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
alert();和document.write();
alert();弹出框,在弹出之后,点击就看不到,属于浏览器级别
document.write(),在页面输出内容,属于网页级别的
运算符的优先级:
1) 如果说,一旦涉及到运算符比较多的情况,那么必须有个概念(运算符有优先级)
2) 括号最优先。赋值最后
求一元二次方程的根
b*b-4ac>=0才有根
如果说大于0那么有两个根(不相同)
如果说等于0那么就有1个根
传值:
1) 赋值传值:把值赋值一份,给新的变量,两份数据,数据
a) 简单数据,都是赋值传值
b) Number,string
2) 引用传值:是表示的是同一份数据,地址
a) 复杂数据,都是引用传值
b) Object
语句:
1) 流程控制之if语句
格式:if(条件){//语句块}
如果条件(小括号里面的)满足true。那么才会执行大括号里面的代码,如果条件不满足(false),那么不执行,注意:有可能代码不会执行
if(今天下雨){
document.write(“带雨伞”);
}
2) 流程控制之if,else语句
格式:if(条件){//语句}else{//语句}
如果条件满足,就执行语句,如果不满足,就执行else语句注意:这个语句必定会被执行
3) 流程控制之if,else if语句
格式:if(条件1){//语句}else if(条件2){//语句}
如果条件满足,就执行语句,如果不满足,就不会执行,注意:有可能不会执行
4) 流程控制之混合形式
格式:if(条件){//语句}else if(条件){//语句}else{//语句}
如果条件满足,就执行语句,如果不满足,就直说else的语句注意:必定会有语句被执行
5) 流程控制之switch语句
格式:Switch(n//变量或者表达式){
Case 值1:
Document.write(“a”);//语句
Break;
Case 值2
Document.write(“b”);
Break;
Case 值3::
Document.write(“c”);
Break;
Default:
Document.write(“f”);
}
如果说值和变量n相同,那么就会执行对应值的后边的语句,break就是跳出语句的意思
6) 流程控制之while循环
1. 循环变量的初始化
2. 循环变量的改变
3. 循环条件的判断
格式:
Var i=1; 【循环变量的初始化】
While(//表达式【循环条件的判断】){
//循环体alert,documet.write,i++
i++;【循环变量的改变】
}
如果表达式成立,那么就会执行循环体[大括号里面的代码]
当表达式成立,就执行循环体,执行循环体之后,又会回到表达式判断的地方,继续判断表达式是否成立,如果成立,继续执行循环体,如果不成立,跳出循环【不执行循环】
7) 流程控制之do,while循环
Var i=1;【循环变量的初始化】
Do{//循环体
i++;【循环变量的改变】
}while(【循环条件的判断】)
先执行一次do里面的循环体,改变循环变量,判断条件是否成立,如果成立,那么继续执行do里面循环体
8) 流程控制之for循环
格式:
for(var i=1【循环变量的初始化】;i<=100【循环条件的判断】;i++【循环变量的改变】){
//循环体
}
注意:3个必要条件之间都是分号“;”
执行过程:
循环变量初始化=》循环条件的判断(true)=》循环体=>循环变量的改变=》循环条件的判断(true)=》循环体=》循环变量的改变=》循环条件的判断(false)跳出循环
函数:为了完成某个功能而定义的代码的集体
语法:
定义语法: function 函数名(形式参数1,形式参数2……){
//代码,这些代码叫做函数体
Renturn 某值;
}
调用语法: 函数名(实际参数1,实际参数2……);
注意:
1)形式参数和实际参数必须是一 一对应
2)函数调用的时候和定义的时候必须是相同的名字
3)return的时候,只能是值
4)形式参数和实际参数可以有很多个
Return详解
1)return返回某个值
2)return可以返回true和fasle,值
3)return就是返回的意思【return可以让函数停止不执行】
函数名:
1) 不能和系统关键字相同
2) 让函数名有意义
作用域:
1) 全局变量:所有地方都能用的变量函数外部申明的变量
2) 局部变量:在函数内部申明的变量就是局部变量
注意:我们只关注局部变量
Firebug的调试:
查看函数的执行:
1) 打开网页
2) 刷新,点击到脚本
3) 随意点击位置可以出现 断点
4) 刷新(代表的意思是要执行这行代码,但是还没有执行)
5) 执行相应的操作
函数注意:
1) 函数在写好之后不会立即执行,只有在调用的情况下才会执行
2) 函数可以放到任意位置,可以吧函数写在调用之前,也可以写在调用之后
系统内部函数:
NaN:Not a number,表示不是数字 isNaN:是一个非数字 true isfinite:测试一个数是否是无穷大
parseInt();转化为整数
parseFloat();转化为浮点数
parseInt(12.3);//12
parseInt(9.9);//9
parseInt(6.2);//6
递归函数:函数本身调用函数本身的这种形式,必须有个能够让函数停止继续调用的条件
Function f1(){
f1();
}
f1();
数组:若干数据的集合
数组的属性:
var len=arr.length
如果保存到变量里面,这个时候变量里面保存的是数字,如果说直接把arr.length写到循环里面,循环的时候会在去arr.length找长度(个数)
格式:var arr=[10,20,30]; 数据:【10,20,30】
=》下标:【0,1,2】
数据 |
10 |
20 |
30 |
下标 |
0 |
1 |
2 |
var chengji=arr[0];//取值
arr[0]=100;
var chengji=10;
数据 |
96 |
86 |
88 |
99 |
87 |
66 |
下标 |
0 |
1 |
2 |
3 |
4 |
5 |
案例:求平均数
特别注意:
Return是函数内部的
Break是语句的