JavaScript数组
- JavaScript中的数组可以存储
不同类型
的数据 - JavaScript中的数组是
引用类型(对象)
, 所以提供了很多有用方便的属性和方法 - JavaScript中数组的
长度是可变的
数组格式和初始化
- 定义数组格式
var arr = new Array();
var arr = [];
- 数组的初始化
5.1定义的同时初始化
var arr = new Array(1, "2", false);
var arr = [1, "2", true];
5.2先定义再初始化
var arr = new Array();
arr[0] = 1;
arr[1] = "2";
arr[3] = false;
var arr = [];
arr[0] = 1;
arr[1] = "2";
arr[3] = false;
数组的遍历
- 数组的遍历, 可以通过.length属性直接获取数组的长度
- 数组中存储的是什么数据类型取出来的就是什么数据类型
for (var i =0; i < arr.length;i++){
console.log("arr["+i+"] = "+arr[i]+"");
console.log(typeof arr[i]);
}
JavaScript函数
- avaScript中的函数是引用类型(对象)
- JavaScript中的形参只用写形参名称即可, 不用写var和数据类型
- JavaScript中的函数哪怕有返回值, 也不用写返回值类型
+JavaScript中不能出现同名的函数, 会覆盖
函数定义格式
// 格式一:
function 函数名(形参1, 形参2, 形参3...) {
//函数体
return 返回值;
}
function test() {
console.log("随便写写");
}
// 格式二:
var 变量 = 函数名(实参1, 实参2, 实参3...);
var fn = function () {
console.log("我是一个函数");
};
创建函数的第三种方式
上面两种的本质就是最后一种的简写
所以只要定义了一个函数, 就会创建一个函数对象
既然是对象就可以动态的添加属性和方法
var fn = new Function("console.log(\"fn\");");
注意点:
和C语言一样, 函数可以没有形参, 也可以有一个或多个形参
不同的是由于JavaScript是弱语言, 所以形参只用写一个占位符即可
JavaScript中特有的特性
1. 函数默认的返回值是undefined, 如果想返回具体的值必须写上return, 并且将返回的结果放到return后面
2. JavaScript中的函数也是一种数据类型, 所以也可以保存到一个变量中
function test(a,b) {
var res = a + b;
return res;
}
var res = test(10,20);
console.log(res);
arguments属性
- 每个函数内部默认都有一个属性叫做arguments
- arguments是一个
伪数组
(不是真的数组, 但是使用方式和数组很像, 本质就是一个对象
) - 函数中默认的
arguments属性
的作用就是用来保存外界传入的实参的
传入的所有实参都会被保存到arguments属性
中
// 通过js函数中的arguments属性, 就可以实现可变参数的功能
function sum() {
var res = 0;
for (var i=0; i < arguments.length; i++){
res += arguments[i];
}
return res;
}
var res = sum(1,2,3)
console.log(res);
函数作为参数和返回值
- 由于JavaScript中的函数是一种数据类型, 所以可以作为其他函数的参数和返回值
- JavaScript中的函数可以嵌套定义
// 1.作为其他函数的参数
function test() {
console.log("我是函数");
}
function demo(fun) {
fun();
}
demo(test);
//作为其他函数的返回值
function demo() {
var test = function () {
console.log("我是一个函数");
}
return test;
}
var fn = demo();//fn = test;
fn();
匿名函数
- 匿名函数的应用场景
- 作为其他函数的参数
- 作为其他函数的返回值
- 作为立即执行的函数
注意点:
JavaScript中的匿名函数不能独立存在
立即执行的匿名函数, 必须用一个()将所有代码括起来才能调用
// 2.1作为其他函数的参数
function test(fn) {
fn();
}
test(function () {
console.log("我是一个匿名函数");
});
// 2.2作为其他函数的返回值
function test() {
return function () {
console.log("我是作为返回值的匿名函数");
}
}
var fn = test();
fn();
// 2.3作为立即执行的函数
// 注意点: 立即执行的匿名函数, 必须用一个()将所有代码括起来才能调用
(function () {
console.log("立即调用匿名函数");
})();
网友评论