Js基础知识
1、变量定义
var 变量名=变量值;
2、变量不能以数字开头
var ____=23;(是对的,不规范)
3、查看数据的类型
alert(typeof(变量名));
4、数据类型
数字类型:number
字符类型:string 空字符也是字符类型
空类型:null
未定义类型:Undefined 表示没有定义
布尔类型: bool(boolean) true false
复合数据类型:复杂类型 array数组 object对象
var abcd=null;
alert(typeof(abcd)); //object
注意:空类型与空字符串没有半毛钱关系
5、alert(): 弹出一个窗口(会停止程序的运行)
6、firebug调试
注意:不要太相信firebug,认真就会输
火狐可以直接安装附加组件firebug
控制台->全部->F5->找错
7、运算符
1、赋值运算符 =
2、算数运算符 + - * / %(取余) ++(递增1) --(递减1)
i++:先自增再使用
++i:先使用再自增
8、比较运算符
> < >= <= ==(等于) !=(不等于) ===(全等于) !==(不全等于)
==:判断2个值是否相同(仅仅是判断值)
===:判断2个值是否相等(判断值和数据类型)
例: var i=24; var j="24";
alert(typeof(i==j)); //true
alert(typeof(i===j)); //false
9、逻辑运算符
!(非) &&(逻辑与:两个条件同时满足为true;如果有任一个为false,结果就为false) ||(逻辑或:两个条件满足任意一个为true,都不满足为true)
10、复合赋值运算符
+= -= *= /=
11、字符串运算符 +(连接+两边的内容)
当+两边任意一边有字符串,就会执行字符串+
12、js的语法规则与注释
区分大小写;所有的符号都必须是英文状态下的
每行表达出想要表示的意思;每行最后必须加上分号(英文状态)
注释:单行注释 // 多行注释 /* ... */
13、位运算符
二进制: 0 1
十进制: 0 1 2 3 4 5 6 7 8 9
十六进制: 0 1 2 3 4 5 6 7 8 9 10 A B C D E
14、运算符的优先级
1、小括号最优先
2、逻辑与 大于 逻辑或
3、赋值运算符最后进行
4、当有多个运算符参与运算的时候,脑子里必须有意识知道运算符是有优先级的。
15、alert("
你好
")与documentwrite(
你好
")的区别
documentwrite()是在body里的,能识别标签
alert()是浏览器里的,不能识别html标签,将原样输出。
16、switch扩展
var x = 44;
switch(true){
case x>40:
document.write('大于40');
break;
case x<=40:
document.write('小于等于40');
break;
17、传值:把一个变量传递给另外一个变量
赋值传值:两份数据,两份数据之间不会影响
引用传值:一份数据,任意一个改动值另外一个都会受到影响
注意:在简单数据的传值中,都是赋值传值;而复杂数据都是引用传值
数组定义: var n={name:"张三",age:27};
var m=n; alert(m.name);//张三
18、流程控制值if语句
1、if语句
if(条件){语句块}
2、if else 语句
if(条件){语句块1}else{语句块2}
3、if,elseif,elseif语句
if(条件){语句块1}else if(条件){语句块2}else if(条件){语句块3}......
4、if,elseif,elseif..else语句
if(条件){语句块1}else if(条件){语句块2}else if(条件){语句块3}......else{不满足之前任意一个就执行此处语句块}
19、switch语句
switch(条件){case 值1:语句块;break;case 值2:语句块;break;case 值3:语句块;break;default:语句块;break;} //最后的berak可以不加
20、switch扩展
var n=97; switch(true){case n>80:document.write("优秀");break;
case n>70:document.write("良好");break; }
21、while循环
循环3要素:循环变量的初始化;循环条件的判断;循环变量的改变。
var i=1; while(i<=100){循环体; //循环变量的改变 i+=5;}
22、dowhile循环
var i=1; do{循环体 i++;}while(i<=100)
最少执行一次
7、for循环
for(循环变量的初始化;循环条件的判断;循环变量的改变){循环体}
for(var i=1;i<7;i++){
alert("h"+i);
document.write("
H"+i+"");}
23、练习:九九乘法表
24、星星金字塔代码:
25、函数:一段能够自动完成某些功能的代码
语法: function 函数名(形参1,形参2...形参n){函数体}
调用:函数名(实参1,实参2...实参n) function area(r)
注意:1、函数执行过后会回到调用它的位置
2、函数写好之后自己是不会执行的,需要调用它才能执行
26、var c=Math.pow(he,0.5); //开平方
27、函数名:不要和系统函数以及关键词相同,要起的有意义
28、firebug:
点到firebug脚本;点击某个位置添加断点;刷新;点击单步进入
29、平时只会关注局部变量;只要在函数内部定义变量就必须有意识的知道,存在作用域的问题
30、返回值 return
return: 跳出函数,不再执行
return 值: 跳出函数,同时把值返回到调用函数的位置
注意: 如果有返回值,必须接收返回值
31、函数的位置:可以先定义,后调用;也可以先调用,再定义
32、数组 arr.length;数组的长度
var arr=[22,23,24];
33、二维数组的定义
var arr=[[23,24,25],[22,21],[45,47,99]];
34、求二维数组最大值
//定义一个二维数组
var arr=[[22,23,24,22],
[54,66,98,54],
[999,1]];
//定义最大值
var max=arr[0][0];
//定义最大值的i,j下标
var bi;
var bj;
for(var i=0;i
for(var j=0;j if(max max=arr[i][j];
bi=i;
bj=j;
}
}
}
document.write("这个数组最大的数字是:"+max+"
");
document.write("最大数的下标是:["+bi+"]["+bj+"]
");
结果是: 这个数组最大的数字是:999
最大数的下标是:[2][0]
35、系统内部的函数
parseInt():取整(如果字符串开头第一个是字母,那么就会出现NaN)
parFloat:取浮点数
NaN:not a number不是一个数字
isNaN:is not a number
1、如果判断的为数字:false
2、如果判断的为字符串:true
36、Array对象
属性:length获取数组的长度
方法:concat(a,b,[c,d]) 往数组中加数据(可以是任意数据)
join(" ") 加入某个字符,用n连接数组的某项组成字符串,
其实就是把都好替换成n,如果空字符串连接,直接连接数组每项内容
pop():删除数组的最后一项并返回数组最后一项
push(28):加入新的内容,返回新的长度
reverse():反转数组的顺序内容
37、属性和方法的一些形式
属性: 对象名.属性
方法: 对象名.方法()
38、String对象
var String=new String("wqeqfw");
属性: length
方法:chartAt(n):找到索引位置的字符
charCodeAt(n):找到索引位置上字符的ASCLL值 a(97) A(65)
indexOf("m"):找m在字符串中第一次出现的位置,没找到返回-1
lastIndexOf("m"):找m在字符串中最后一次出现的位置,没找到就返回-1
split(n):以字符n分割字符串返回一个数组,以空字符串分割会把字符串每个字符都当做数组的一项内容,
如果不存在n,那么会把整个字符当做数组的内容
substr(n,m):截取字符串,把字符串从n的位置开始截取,截取m个;如果只有一个参数n,那就是从n开始截取所有的
subString(n,m):从n的位置开始,截取到m的位置,注意:包左不包右
toLowerCase():把字符串中的字母转换为小写
toUpperCase():把字符串中的字母转换为大写
39、Math对象
Math.pow(n,m); 求n的m次方
Math.abs(n); 求n的绝对值
Math.round(n); 求n四舍五入的值
Math.floor(n); 求n的向下取整的值,不大于n的最大整数
Math.ceil(n); 求n的向上取整的值,不小于n的最小整数
Math.random(); 获得一个0-1之间的随机数,能取到0但是取不到1
取 10-20随机数:Math.random()*10+10
求n-m之间的随机数(n 求任意两个数之间的随机数[m,n]
Math.floor(Math.random()*(大数-小数+1)+小数)
40、js特殊字符
' : 单引号
" : 双引号
\ : 转义字符
alert()换行 \r\n 换行效果
\r : 回车
\n : 换行