#1 基础语法
1.1数组
数组是按次序排列的一组数据,每个值的位置都有编号(从0开始),整个数组用方括号表示
1.1.1数组定义
js中定义数组的三种方式
var arr=[值1,值2];//隐式创建
var arr=new Array(值1,值2);//直接实例化
var arr=new Array(size);//创建数组并指定长度
1.1.2基本操作
数组的下标从0开始
####获取数组的值
数组名[下标];
注意:如果下标不存在并不会报错,只会显示undefined
####设置数组的值
数组名[下标]=值;
注意:如果设置的下标不存在则会自动扩展到此下标,中间扩容的数据为空
####获取数组的长度
数组名.length;
####设置数组的长度
数组名.length=值;
1.1.3数组遍历
数组的遍历就是依次访问数组的每一个元素,js提供三种遍历数组的方式
1.for循环遍历
for(var i=0;i<=数组名.length-1;i++){
console.log(数组名[i]);
}
2 for…in
for(var 下标 in 数组名){
console.log(数组名[下标]);//下标是自己定义的,任意都可以
}
3 forEach
数组名.forEach(function(element,index)){
console.log(index+"-->"+element);//element和index都是自己定义的
}
4 了解
数组在使用的时候建议大家规矩来用。在存放数据时,从下标开始顺序的存放数组元素。
如果下标:
1.为非负整数(包括整数字符串):自动从0开始,不存在添加undefined
2,为负数、小数、非数字符串:这些内容不计算在长度内,当成”属性"处理,相当于自定义属性。
数组非常灵活,使用数组元素
1.下标:非负整数(包括整数字符串):
数组.下标数组[下标]
2.下标:负数、小数、非数字字符串:
数组[属性]
*for–>不遍历属性
*foreach–>不遍历属性和索引中的undefined
*for in->不遍历索引中的undef1ned
1.1.4数组提供的方法
常用方法
push 添加元素到最后
indexOf 数组元素索引(找到了是0,,没找到返回-1)
join 数组转成字符串
split 字符串方法:将字符串转换成数组
1.2函数
函数就是方法。就是我们一段预先设置的功能代码块,可以重复调用,根据输入参数的不同,返回不同的值。函数也是对象
1.2.1函数的定义
有三种函数定义的方式:函数声明语句、函数定义表达式、function构造函数
####1 函数声明语句
function 函数名([参数列表]){
}
2 函数定义表达式
var 变量名/函数名=function([参数列表]){
}
3 function构造函数
var 函数名=new function([参数列表],函数体);
1.2.2函数的参数
函数运行的时候,有时需要提供外部数据,不同的外部数据会得到不同的结果,这种外部数据就叫参数,定义时的参数称为形参,调用时的参数称为实参
·实参可以省略,那么对应形参为undefined。
·若函数形参同名(一般不会这么干),在使用时以最后一个值为准。
·可以给参数默认值:当参数为特殊值时,可以赋予默认值
·参数为值传递,传递副本;引用传递时传递地址,操作的是同一个对象。
1.2.3函数的调用
1.常用调用方式
函数名([实参]);
存在返回值可以变量接受吗,若接收无返回值函数则为undefined
2.函数调用模式
function add(a,b){
return a+b;
}
var sum=add(1,2);
console.log(sum);
3.方法调用模式
var o={ //o为对象
m:function(){ //m为对象中的属性
console.log(1);
}
}
o.m();
1.2.4return
函数的执行可能会有返回值,需要使用 return语句将结果返回。 return语句不是必需的,如果没有的话,该函数就不返回任何值,或者说返回 undefined。
作用
1.在没有返回值的方法中,用来结束方法。
2.有返回值的方法中,一个是用来结束方法,一个是将值带给调用者。
###1.2.5函数的作用域
函数作用域:全局(global variable)和局部(local variable)
1全局变量与局部变量同名问题
var box=1;//全局变量
function display(box){
var box=3;//此处box与全局变量box没有关系,这里的box为传递的参数,相当于新声明的局部变量
var b=2;//局部变量
a=1;//全局变量
console.log("box--->"+box);
}
display();
//b不能访问
console.log("b-->"+b);
2在函数中定义变量时,若没有加var关键字,使用之后自动变为全局变量
function fun(){
a=1000;
}
fun();
alert(a);