引用数据类型
- Object类型
- Function类型
- Array类型
- Date类型
- 基本包装类型
- 内置对象
instanceof 操作符用于测试某个变量是否属于某种引用数据类型
Object类型
(js中,任何引用数据类型都属于object)
1)创建object类型
- 创建对象方式一:使用new关键字
Js的对象是可以随时动态添加属性和方法的。
- 创建对象方式二:用字面量创建空对象
为字面量对象添加属性。
键值对
内存分析
2)函数的调用:
car( );
TIPs:访问对象的属性值: (笔试)
- 方式一:对象名.属性名
- 方式二:对象名[ “属性名” ]
Function类型
1)函数的定义
- 定义方式一:声明
- 定义方式二:函数表达式
注意:函数声明的提升
用函数声明定义的函数,会被js执行引擎提升到代码的最前方;
用函数表达式定义的函数,不会被提升到最前方。
(函数的提升会优于变量的提升)
2)函数调用
函数声明后必须调用,才能执行函数内部代码。不调用,就永远不会执行。
- 函数名( );
- 函数自执行:
3)函数的参数
函数的参数可以是任意的数据类型
(将method1函数当作参数传给method2的形式参数fun,再调用fun函数,也就是调用了method1函数,因此打印出字符串:“我是method1”)
4)函数的返回值
5)函数的作用域
- 局部变量
用var关键字定义在函数内部的变量,叫做局部变量。
局部变量的作用域在函数内部。当函数执行完毕,就会被销毁。
如果在函数内部的变量,没有用var关键字修饰,那么它是一个全局变量。
- 全局变量
定义在函数外部的变量,叫做全局变量。
全局变量的全局变量作用于在当前的文件。即使在函数中使用完毕,也不会被销毁。他们会在当前页面被关闭时销毁。
所以,能用局部变量解决的问题,绝不用全局变量。
6)事件与事件处理函数
例如:
- 通过按钮点击,实现网页开关灯效果;
- 鼠标移入移出事件;
- 表单验证,(js的第一个功能);
- 图片手动切换。
开关等效果:
鼠标移入移出
验证表单是否为空
return不能缺少
图片手动切换
Array类型
特点:
- 可以存放任意类型的数据
- 大小可以随着数据的大小而改变
- 特殊的对象object
Js数组中元素存放的下标只能是整数数字。如果是其他类型,只会被当作对象来处理。
length:表示元素的个数,是一个32位的整数,一个数组最多只能装2^32-1个元
1)数组定义方式
- 方式一:var array = new Array( );
- 方式二:var array = [ ];
2)数组的数据存放和获取
存放:
获取:
3)数组操作
- 往数组的首尾存入新的元素
头部添加:array.unshift("hello");
尾部添加:array.push("world");
- 删除数组的首尾元素
头部删除:array.shift( );
尾部删除:array.pop( );
例如:
定义一个函数,功能是将数组的0去掉,将不为0的存入一个新的数组返回该数组:
- 数组的合并
concat(); //添加多个可以把数组用逗号隔开
// 当然也可以直接传数据
- 查询元素所在下标
indexof( )从左边开始查找;
lastindexof( )从右边开始查找。(找不到就用-1表示,判断的标准是全等 ===)
TIPs:函数内部系统提供的变量arguments,表示调用者传入的实参个数。这是一个类似于数组的非数组对象:
因为类似于数组,
- 切割数组
array . slice( start , end) ; // 切割后的数据不包含end,只包含start
- 数组拼接
array . splice( ) // 直接在原数组进行修改,和数组合并不同
故还可以用spice实现:
替换元素
删除元素(不写新元素)
插入元素(howmany为0)
- 数组转换成字符串
array . jojn(separator ) ; // separator 是分隔符,如果不写就默认用逗号分隔
// 定义一个函数实现 join 方法相同的功能
把字符串转换为数组:
string.split( separator , howmany )
separator:可选,指定要用的分隔符,若省略,则使用逗号为分隔符
howmany:可选,该参数可指定返回数组的最大长度
- 排序
sort( ):升序排序
reverse( ):降序排序 //降序会遇见一些问题
交换位置实现降序排列
例如:查找数组对象中age大于18的对象。
- for...in循环
遍历对象的所有属性
- 隔行变色效果
获取页面内所有的标签对象:
var lis = document.getElementsByTagName(“ li ”) ;
该函数的返回值是一个类似于数组的对象,找到的标签全部存放在这个对象中
Emmet语法,能够快速搭建网页结构: http://www.w3cplus.com/tools/emmet-cheat-sheet.html
- 冒泡排序