本帖最后由 小鲁哥哥 于 2017-8-2 14:24 编辑
【黑马程序员济南】 前端与移动开发就业班笔记JS进阶:Day03
传智播客温馨提示:上一节我们学习了JS中数组的使用及应用,本节我们学习JS中函数和对象的基本感念及使用,好,下面我们开始本节的学习内容。
函数的声明: [JavaScript] 纯文本查看 复制代码 /**
* @author 传智播客
*/
function 函数名 () {
//函数体
} 函数的调用: [JavaScript] 纯文本查看 复制代码 /**
* @author 传智播客
*/
function heima () {
//函数体
}
heima(); 函数的参数有参数的函数的声明(声明中的参数只是一个占位符,没有实际的值,是形式参数,即形参) [JavaScript] 纯文本查看 复制代码 /**
* @author 传智播客
*/
function heima (arg0,arg1,arg2...) {
//函数体
} 有参数的函数的调用(调用时传入的参数才是有真正数值的参数,是实际参数,即实参) [JavaScript] 纯文本查看 复制代码 /**
* @author 传智播客
*/
function heima (arg0,arg1,arg2...) {
//函数体
}
heima(arg0,arg1,arg2...); 函数的返回值在函数中通过return关键字将要返回值返回 return 要返回的值; [JavaScript] 纯文本查看 复制代码 /**
* @author 传智播客
*/
/*求n,m的乘积*/
function getCJ(n, m) {
return n*m;//把求出来的值 返回给调用者 让他随便处理
}
var cj = getCJ(1, 5);
console.log(getCJ(1,5));//函数的返回值是什么 调用这个函数就相当于调用了什么 函数高级概念在JS中实参的个数和形参的个数可以不一致 函数的返回值是什么,调用这个函数就相当于调用什么,如果没有返回值则为undefined 函数在执行完成return语句后便会退出函数,后面的代码不会执行 在JavaScript中不允许出现同名的函数,否则后面的会把前面的覆盖 两种定义方式 函数声明 [JavaScript] 纯文本查看 复制代码 /**[/align] * @author 传智播客
*/
function fn1() {
//函数体
} 函数表达式 [JavaScript] 纯文本查看 复制代码 /**
* @author 传智播客
*/
var fn2 = function () {
//函数体
}; 匿名函数(没有名字的函数) [JavaScript] 纯文本查看 复制代码 /**
* @author 传智播客
*/
变量 = function () {
//函数体
} 自调用函数(定义后自己调用自己,只执行一次) 目前无法展示应用场景,知道概念和格式即可 [JavaScript] 纯文本查看 复制代码 /**
* @author 传智播客
*/
(function() {
//函数体
})(); 递归调用 程序调用自身的编程技巧称为递归,递归还必须要有结束条件,否则就是形成死递归。 [JavaScript] 纯文本查看 复制代码 /**
* @author 传智播客
*/
//从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事,故事是:
var i = 0;
function story() {
console.log("从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事,故事是:");
i++;
if (i < 10) {
story();
}
}
story(); 回调函数 函数也是一种普通的数据类型 因此函数也可以被当作参数传递 被当作参数传递的函数叫做回调函数 [JavaScript] 纯文本查看 复制代码 /**
* @author 传智播客
*/
function fn1(fn) {
fn();
}
function callback() {
console.log("用来被别人调用");
}
fn1(callback); 对象初期我们甚至可以把他简单地理解为一个工具箱 键值对键值对就是一种对应关系,通过键能够方便地找到值 键:值 key:value k:v
对象的声明:通过构造函数声明(更加通用) var obj= new Object(); 通过字面量声明(更加简便) var obj= {};
对象具有属性和方法 属性 用来描述对象的特征 一般是名词 对应变量 方法 用来描述对象的行为 一般是动词 对应函数 属性属性的定义: 对象.属性名 = 值 对象[属性名]=值 属性的调用: 对象.属性名 对象[属性名]
方法方法的定义: 对象.方法名 = function(){ //函数体 } 方法的调用: 对象.方法名() 下面我们通过一个实例来让大家感受一下对象的写法
[JavaScript] 纯文本查看 复制代码 /**
* @author 传智播客
*/
//学生对象 姓名 年龄 性别 分数 会打招呼
var student = new Object();
//属性
student.name = "zs";
student.age = 18;
student.sex = 1;
student.score = 100;
//方法
student.sayHi = function () {
console.log("大家好,我是" + this.name);
}
console.log(student.name);//属性调用
student.sayHi();//方法调用
对象字面量[JavaScript] 纯文本查看 复制代码 /**
* @author 传智播客
*/
var o = {
name : "zs",
age : 18,
sayHi : function() {
console.log(this.name);
}
}; 遍历对象的两种方式通过for可以对集合进行有序的遍历 通过forin可以对集合进行有序的遍历 for(var k in json) { 语句 } k变量代表的是json中的各个属性(key)和 var i = 0中的i是一个意思 名字不同而已 具体应用: [JavaScript] 纯文本查看 复制代码 /**
* @author 传智播客
*/
var arr = [1, 2, 3];
arr[0] = 20;//索引号就是键
var obj = {};
obj.age = 18;
obj["name"] = "zs";
for (var i = 1; i <= 10; i++) {
obj["n" + i] = i;
}
for (var k in obj) {
console.log(k);
console.log(obj[k]);
}
|