JavaScript基础2
1. 数组
1.1 数组定义
JS 中定义数组的三种方式如下(也可以先创建再赋值):
var arr = [值1,值2,值3]; //隐式创建
var arr = new Array(值1,值2,值3); //直接实例化
var arr = new Array(size); //创建数组并指定长度
1.2 数组的操作
数组的长度可以通过length属性来获取,并可以任意修改.
数组名.length
数组名.length = 新长度
数组中的每一个元素都可以被访问和修改,甚至是不存在的元素,无所谓越界.
数组名[下标]
数组名[下标] = 新值
1.3 数组的遍历
JS提供三种遍历数组的方式:
1)for 循环遍历
for (var i = 0; i < arr.length; i++)
{
console.log(arr[i]);
}
2) for … in
for (var idx in arr)
{
console.log(arr[idx]);
}
3) forEach
数组名.forEach (function(element,index){
//element(名称任意):元素, index(名称任意):下标
})
如:
arr.forEach (function(elem,idx){
console.log(idx + "-->" + elem);
});
注意:for --> 不遍历属性
foreach --> 不遍历属性和索引中的undefined
for in --> 不遍历索引中的undefined
1.4 数组提供的方法
方法 | 作用 |
---|---|
push | 添加元素到最后 |
unshift | 添加元素到最前 |
pop | 删除最后一项 |
shift | 删除第一项 |
reverse | 数组反转 |
join | 数组转成字符串 |
indexOf | 数组元素索引 |
slice | 截取(切片)数组,原数组不发生改变 |
splice | 剪接数组,原数组变化,可以实现前后删除效果 |
concat | 数组合并 |
2. 函数
2.1 函数的定义
有三种函数定义的方式:函数声明语句、函数定义表达式、Function构造函数.
1)函数声明语句
function foo(){
console.log(1);
}
foo();
2)函数定义表达式
var fn1 = function(a,b,c)
{
console.log(a+b+c);
}
3)Function构造函数
var fn2 = new Function ("a","b",'return a + b')
2.2 函数的参数
- 实参可以省略,那么对应形参位undefined
- 可以给参数默认值
- 参数为值传递,传递副本;引用传递时传递地址,操作的是同一个对象
function fn1(a,b)
{
console.log(a+b);
}
fn1(); // NaN
fn(1); // NaN
fn(1,4); // 5
fn(1,2,3) // 3,多传参数不会算
function fn2(a)
{
// 如果形参a有值,则值为a传递的值,否则值为"a"
a = a || "a"
console.log(a);
}
fn2(); // a
fn2(1); // 1
3. 函数的调用
1)常用调用模式
function g1()
{
console.log(常用调用模式);
}
g1();
2)函数调用模式
var g2 = function()
{
console.log(函数调用模式);
}
g2();
3)方法调用模式
var o = {
m:function(){
console.log(2);
}
};
0.m();
4. return
作用:
- 在没有返回值的方法中,用来结束方法。
- 有返回值的方法中,一个是用来结束方法,一个是用来将值传递给调用者。
5. 函数的作用域
5.1 全局变量与局部变量同名问题
var box = 1; //全局变量
function display(box)
{
var box = 3; // 这里的box与全局变量box无关,是局部变量
var b = 2; // 局部变量
console.log("box-->" + box); // 3
}
display();
5.2 在函数中定义变量时,若没有加var关键字,使用之后自动变成全局变量
function fun()
{
a = 100;
}
fun();
🐏:去试试吧!