JS基础:1
一、简介:
由网景公司开发的一种基于客户端、面向(基于)对象、事件驱动的网页脚本语言
二、基本语法
2.1:变量
用来储存临时数值的容器,储存的值可以变化
语法:var 变量名 = 值
局部变量:在函数中声明的变量
全局变量:在代码中直接声明的变量
2.2:数据类型
string(字符串类型)、number(数值类型)、boolean(布尔类型true、false)、undefined(未定义类型)、null(空类型)、object(对象类型)
2.3:运算符
算术:+、-、*、/、%、++、--
比较:>、<、<=、>=、==、===(全等于)、!=、!==(不全等)
逻辑:&&(与)、||(或)、!(非)
赋值:=、-=、+=、*=、/=、%=
字符串:+
2.4:流程结构
顺序结构:一行一行代码执行
分支结构:if...else、if...else if ...else、switch
2.5:循环结构
for..、while...、do...while、for...in(相当于php中的foreach)
2.6:break和continue
break:退出循环语句
continue:结束当前循环、执行下次循环
语法总结:
1.javascript区分大小写
2.javascript脚本必须嵌入到HTML文件中
3.语句以;结束
4.javascript脚本程序可以独立保存一个外部文件。引用js文件时在script标签中src属性引用
三、函数
3.1:系统函数
alert('内容'):警告框
confirm('内容'):确认框
...
3.2:自定义函数
语法:
function 函数名(形参列表){
函数体;
return 表达式;
}
3.3:匿名函数
//演示匿名函数 var i = function (name){ alert(name + ',你好!'); }; //调用匿名函数 i('老张');
结果:
3.4:自调用匿名函数
说明:为了避免函数冲突、重命名等问题,自调用匿名函数会马上执行。
//演示自调用匿名函数 (function (name){ alert(name + ',hello') ; })('老张');
运行结果:
3.5:arguments
arguments是函数的形参数组列表,在函数内使用它可以不用在意调用函数传递了多少个参数
function display(){ //arguments属性像数组却不是数组 for(var i=0; i<arguments.length;i++){ document.write(arguments[i]+'<hr/>'); } } //调用 display('参数1','参数2','参数3','参数4','参数5');
运行结果:
3.6:函数作用域
全局变量:在代码块或者说函数外部定义的
在代码执行了,外部全局变量不能调用内部局部变量
局部变量:在函数内部定义的
在代码执行时,函数内部变量可调用外部全局变量
当在函数内部声明变量,未曾使用var关键字则相当于定义了一个全局变量,该变量会覆盖外部同名全局变量
在函数内部声明一个函数,则在外部无法访问该函数内部的函数
四、JS错误
4.1:编译错误
编译错误(语法错误)会使该段JS代码全部无法执行,但不会影响同一一面中的另外JS脚本
执行错误,会使同一段JS脚本以下的代码无法执行,但不会影响同一页面中的另外JS脚本
五、JS执行原理图
六、数组
一维数组
6.1:说明
数据的集合,在内存中表示一段连续的内存地址,JS中数组属于object类型
6.2:定义
//数组的定义 //方式一 var arr1 = ['张三','李四','王五']; //方式二 new var arr2 = new Array('张三','李四','王五'); //方式三 var arr3 = new Array(3); arr3[0] = '张三'; arr3[1] = '李四'; arr3[2] = '王五';
6.3:遍历(for循环和for...in)
//数组演示 var arr = ['张三','李四','王五']; //for循环遍历 document.write('for循环遍历<br/>'); for (var i=0;i<arr.length;i++){ document.write(arr[i]+'<br/>'); } document.write('<hr/>'); //for...in遍历 document.write('for...in遍历<br/>'); for(var i in arr){ document.write(arr[i]+'<br/>'); }
执行结果:
二维数组:
说明:数组的数组
遍历:for..in
//二维数组 var arr = [['1','小明'],['2','小红'],['3','小刚']]; //遍历 for(var i in arr){ document.write('编号:'+arr[i][0]+',姓名:'+arr[i][1]+'<br/>'); }
结果:
文本下标数组:
说明:数组的下标是字符串,
注意:
文本下标是不计算到数组长度中的,文本下标以数组的属性存在,可以通过访问数组属性的方式访问。
文本下标的数组只能用for...in遍历
demo:
//文本数组 var arr = ['张三','李四','王五']; arr['abc'] = '赵六'; arr['bcd'] = '钱七'; //文本下标数组以数组的属性形式存在,访问方式有两种:arr.文本下标、arr['文本下标'] document.write(arr.abc+'||'+arr['abc']); document.write('<br/>'); //遍历 for(var i in arr){ document.write('文本下标:'+i+' ') document.write('值为:'+arr[i]+'<br/>'); }
执行结果: