黑马程序员技术交流社区
标题: 【黑马程序员济南】 前端与移动开发就业班笔记JS进阶:Day03 [打印本页]
作者: 小鲁哥哥 时间: 2017-8-2 14:24
标题: 【黑马程序员济南】 前端与移动开发就业班笔记JS进阶:Day03
本帖最后由 小鲁哥哥 于 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] 纯文本查看 复制代码
/**
* @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]);
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |