JavaScript-1-2:Object类型、Function类型、Array类型

来源:互联网 发布:数据挖掘导论 pdf 编辑:程序博客网 时间:2024/06/07 23:41
1、引用数据类型:
Object类型、Function类型、Array类型、Date类型、基本包装类型、内置对象

instanceof 操作符用于测试某个变量是否属于某种引用数据类型




2、Object类型:
(js中,任何引用数据类型都属于object)
创建object类型:
创建对象方式一:使用new关键字

Js的对象是可以随时动态添加属性和方法的。

创建对象方式二:用字面量创建空对象

为字面量对象添加属性。


键值对:

内存分析:

函数的调用:
car( );


TIPs:访问对象的属性值: (笔试)
方式一:对象名.属性名
方式二:对象名[ “属性名” ]





3、Function类型:
1)函数的定义:
定义方式一:声明

定义方式二:函数表达式


TIPs:函数声明的提升
用函数声明定义的函数,会被js执行引擎提升到代码的最前方;
用函数表达式定义的函数,不会被提升到最前方。
(函数的提升会优于变量的提升)

2)函数调用
函数声明后必须调用,才能执行函数内部代码。不调用,就永远不会执行。
a、函数名( );
b、函数自执行:


3)函数的参数:
函数的参数可以是任意的数据类型:

(将method1函数当作参数传给method2的形式参数fun,再调用fun函数,也就是调用了method1函数,因此打印出字符串:“我是method1”)
4)函数的返回值:

5)函数的作用域:
a、局部变量
用var关键字定义在函数内部的变量,叫做局部变量。
局部变量的作用域在函数内部。当函数执行完毕,就会被销毁。

如果在函数内部的变量,没有用var关键字修饰,那么它是一个全局变量。

b、全局变量
定义在函数外部的变量,叫做全局变量。
全局变量的全局变量作用于在当前的文件。即使在函数中使用完毕,也不会被销毁。他们会在当前页面被关闭时销毁。

所以,能用局部变量解决的问题,绝不用全局变量。


6)事件与事件处理函数:







eg:
1. 通过按钮点击,实现网页开关灯效果,
2. 鼠标移入移出事件,
3. 表单验证,(js的第一个功能)
4.图片手动切换。

开关等效果:


鼠标移入移出:
验证表单是否为空:

return不能缺少


图片手动切换:




4、Array类型
Js数组特点:
Js的数组可以存放任意类型的数据;
Js数组的大小可以随着数据的大小而改变;
Js数组是特殊的对象object;
Js数组中元素存放的下标只能是整数数字。如果是其他类型,只会被当作对象来处理。

length:表示元素的个数,是一个32位的整数,一个数组最多只能装2^32-1个元

1)数组定义方式:
方式一:
var array = new Array( );
方式二:
var array = [ ];

2)数组的数据存放和获取:
存放:

获取:

3)数组操作:
a、往数组的首尾存入新的元素:
头部添加:array.unshift("hello");
尾部添加:array.push("world");
b、删除数组的首尾元素:
头部删除:array.shift( );
尾部删除:array.pop( );


eg:定义一个函数,功能是将数组的0去掉,将不为0的存入一个新的数组返回该数组:

c、数组的合并:
concat(); //添加多个可以把数组用逗号隔开

// 当然也可以直接传数据

d、查询元素所在下标:
indexof( )从左边开始查找;
lastindexof( )从右边开始查找。(找不到就用-1表示,判断的标准是全等 ===)






TIPs:函数内部系统提供的变量arguments,表示调用者传入的实参个数。这是一个类似于数组的非数组对象

因为类似于数组,


e、切割数组:
array . slice( start , end) ;
// 切割后的数据不包含end,只包含start

f、数组拼接:
array . splice( )
// 直接在原数组进行修改,和数组合并不同

故还可以用spice实现:替换元素、
删除元素(不写新元素)、
插入元素(howmany为0)


j、数组转换成字符串:
array . jojn(separator ) ;
// separator 是分隔符,如果不写就默认用逗号分隔

// 定义一个函数实现 join 方法相同的功能
把字符串转换为数组:
string . split( separator , howmany )
separator:可选,指定要用的分隔符,若省略,则使用逗号为分隔符
howmany:可选,该参数可指定返回数组的最大长度
k、排序:
sort( ):升序排序
reverse( ):降序排序 //降序会遇见一些问题

交换位置实现降序排列:

eg:
查找数组对象中age大于18的对象。

L、for...in循环:
遍历对象的所有属性


M、隔行变色效果:
获取页面内所有的标签对象:
var  lis = document.getElementsByTagName(“ li ”) ;
该函数的返回值是一个类似于数组的对象,找到的标签全部存放在这个对象中

Emmet语法,能够快速搭建网页结构:
 http://www.w3cplus.com/tools/emmet-cheat-sheet.html
N、冒泡排序: