复习
函数内部访问函数名称 arguments.callee()
匿名函数 function (){ }
声明一个函数 var fn=function(a,b){ } fn(1,2)
回调函数,把匿名函数以参数的形式传递
getSum(function(){ return 1; },function(){ return 2; });
全局函数
encodeURI 主要是对URI的中文进行编码
decodeURI 解码
isNaN 检测一个值是否为NaN
isFinite 检测一个值是否为有限值 3333*8888 -2/0
parseInt/parseFloat
eval 执行字符串表达式 ‘1+2’ ‘a+b/c’
对象
是一组属性和方法集合体
对象直接量/字面量
var compute={color:‘white’, size: 30,…}
compute.color compute[‘color’]
compute.brand=? 结果undefined
内置构造函数
var dog=new Object(); dog.name
工厂函数——创建多个对象,有共同的属性和方法
function createObj(name){
var o=new Object();
o.name=name;
…
return o;
}
封装:把重复的代码放到函数中就称为函数封装;把重复的代码放到对象中就称为对象封装
对象的遍历
for(var key in dog){
//属性 key
//属性值 dog[key]
}
成员方法
var person={ name: ‘tom’, say: function(){ this.name } }
person.say();
学习一门编程语言路线图
(1)了解语言的背景,历史,特点,应用领域,现状
(2)搭建开发环境,编写 hello world
(3)声明变量和常量
(4)数据类型
(5)运算符
(6)逻辑结构
(7)通用小程序
(8)函数和对象
(9)第三方的类库,插件,组件,框架
(10)开发项目
1.检测属性是否存在
(1)对象.hasOwnProperty(‘属性名’) //true->存在 false->不存在
(2)‘属性名’ in 对象 // true->存在 false->不存在
(3)对象.属性名===undefined //true->不存在 false->存在
2.数据在内存中的存储方式
原始数据类型存在栈内存中,存储的就是数据的值。
引用类型存储在堆内存中,存储的是对象的地址。
3.数组的创建
数组也是一种数据类型,是数据的集合,可以存储其它任何的数据类型。
(1)数组直接量
var arr=[元素1,元素2…]
(2)内置构造函数
var arr=new Array(元素1,元素2,元素3…)
var arr=new Array(3); //创建数组,长度是3,每一个数组元素的值是空(undefined)
练习:
1.创建数组,保存5个国家的名称
2.创建数组,保存3个人的信息(姓名,性别,年龄)——>3个对象
4.数组的访问
数组名[下标] 下标从0开始
往数组中添加新的元素 arr[arr.length]=新的元素;
arr.length 获取数组中元素的个数
练习:信息录入,使用循环弹出提示框,每次输入一个姓名,把输入的姓名放入到数组中;并打印结果;直到输入quit,不再弹出提示框。
①弹出提示框无限次,无限循环 while(true){ }
②在循环以外初始化一个数组,在循环中每次添加一个人名,添加完后,打印(弹出警示框)结果。
③如果输入的值是quit,使用break结束循环
5.undefined哪些地方出现过
①声明了变量,未赋值
②如果实参的数量小于形参的数量,未赋值的形参结果也是undefined
③如果访问对象中不存在的属性,结果也是undefined
④创建数组,未初始化数据,数组的元素也是undefined
6.数组遍历
使用for循环遍历数组的下标
var arr=[‘a’,‘c’,‘d’];
for(var i=0;i<arr.length;i++){
arr[i] //数组的每一个元素
}
练习:创建一个数组,包含5个车名,单独添加2个车名,最后遍历数组。
数组的分类
数组分为索引数组和关联数组。
索引数组:下标以数字的形式。
关联数组:下标以字符串的形式
关联数组只能使用for-in来遍历;
索引数组既能使用for循环,也能使用for-in来遍历
练习:创建数组,保存学生的成绩,使用遍历数组来获取总分以及平均分是多少。
var arr=[80,79,68,96];
//数字求和, 求平均 = 总和/数组个数
练习:求数组中的最大值 var arr=[5,10,105,32,79]
①假设第一个数就是最大值 var max=arr[0]
练习:使用函数,传递一个参数,格式是数组,返回数组中的最小值。
练习:查找数组中指定元素的位置的下标。
[‘刘备’,‘曹操’,‘袁绍’,‘小乔’,‘大乔’]; 查找’小乔’对应下标
7.数组中的方法
js中提供的数组方法称为 数组API
toString() 将数组转为字符串
join([参数]) 返回字符串,参数表示元素之间的分割符,默认是逗号
concat(参数1,[参数2]…) 拼接多个数组
slice(start,end) 截取数组元素, start表示开始,end表示结束(不包含end本身) start ~ end-1;如果end为空,表示截取到最后
splice(start,count,value…) 删除数组元素,start表示开始,count表示删除的数量,value表示删除后替换的元素;如果count为空,表示删除到最后
reverse() 翻转数组元素
sort([参数]) 对数组元素进行排序,默认是按照Unicode码,从小到大排列。
数字的大小排序
sort(function(a,b){
//return a-b; //从小到大
//return b-a; //从大到小
})
课后任务:
(1)复习今天的内容,整理出思维导图
(2)课后作业
创建一个数组,数组包含4本书的对象(title,author,publish,page),
遍历数组,以及对象,每个对象占一行
三国演义-罗贯中-人民邮电出版社-200页
(3)查一查“冒泡排序”,总结原理