JS对象大致可以分为三种,如下图:
JS常用内置对象(JS自身所持有的对象,不需要创建,直接可用):
String:API跟java的字符串API大致相同
两种创建对象的方式:String s1 = “hello world”;
String s2 = new String("hello world");
String有length属性,但是在java中String是有length方法的;其含义是不一样的。
Number:是数值对象
创建对象:var myNum = 123456;
Boolean:跟java的布尔类似
Array:有length属性,而且数组长度是可变的;
创建对象:var a1 = new Array();
var a2 = new Array(7);var a3 = new Array(100,"a",true);var a4 = [100,200,300];
访问数组元素: a1[0] = 1;//a1长度由0变成了1
console.log(a3[1]);
Math:对象用于执行数学任务,有相应的API
Date:是JS中操作日期的对象,与java雷士,有相应的API
RegExp:正则表达式对象
创建方式:var regExp = /^\d{3,6}/g;//一般以开头,以/g; //一般以^开头,以/g;//一般以开头,以结尾
var regExp1 = new RegExp("/^\d{3,6}$/");
注意:正则表达式对象,后续可以接两个参数,第一个参数,是正则表达式,第二个参数可以是g或者i;其中g表示设定当前匹配为全局模式;i表示忽略匹配中大小写的检测。
Function:JS中的函数就是Function对象,函数名就是指向Function的引用
使用函数名是可以访问对象;函数名()是调用函数
JS外部对象(由浏览器提供的,可以直接访问、操作浏览器;是浏览器提供的API,也是一套对象):
BOM:浏览器对象模型,用来访问和操作浏览器窗口的;如下图:
DOM:文档对象模型,用来操作文档的;如下图:
BOM与DOM的关系:
其中细节就不详解了,因为只是介绍对象,并不是接受BOM和DOM的操作。
自定义对象:
直接创建对象:var stu = {“name”:“张三”,“age”:“18”,“job”:function(){}};//相当于一个JSON对象
构造器创建对象:
function f2(){var teacher = new Object();teacher.name = "老师";teacher.age = 18;teacher.sex = "woman";teacher.work = function(){alert("我教书的")};alert(teacher.name);alert(teacher.age);teacher.work()}//自定义构造器,//1.函数做成构造器首字母要大写//2.声明好要传入的参数//3.将参数存入对象内部function Coder(name,age,work){//this就是当前创建出来的对象//this.name是给该对象增加一个属性//=name是将参数赋值给这个属性this.name = name;this.age = age;this.work = work;}function f3(){var coder = new Coder("李四",30,function(){alert("我是小白")});alert(coder.name);alert(coder.age);coder.work();}<input type="button" value="内置构造器"οnclick="f2();"/><input type="button" value="自定义构造器"οnclick="f3();"/>
使用jQuery可能存在3中对象:
1.jQuery对象:
通常jQuery选择器选中的目标一定是jQuery对象;一般jQuery方法若返回节点则是jQuery对象;一般jQuery赋值的方法返回的是jQuery对象;
2.DOM对象:
从jQuery中获取一个DOM对象:$obj[i]/$obj.get(i)(jQuery方法); jQuery转换为一DOM对象的方法:jQuery加一个下标转换;
3.内置对象(尤其是字符串)
一般jQuery返回具体的值则是String注:万能方法:输出对象观察
举例:
jQuery对象与DOM对象之间的相互转换,如下代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery对象</title>
<script src="../js/jquery-1.11.1.js"></script>
<script>//jQuery转为DOM的方法:jQuery加一个下标转换function print(){//取到所有的p,选择器获取的jquery对象var $ps = $("p");console.log($ps.typeof);for(var i=0;i<$ps.length;i++){console.log($ps[i]);alert($ps[i].innerHTML);}}//DOM转jQuery的方法//传入的this是正在点击的那张图片,此处的this(img)是一个DOM对象function chg(img){//没写参数就是取值,写了就是设置值if($(img).width()=="1000"){$(img).width("250px").height("250px");}else{$(img).width("1000px").height("701px");}}
</script>
</head>
<body><input type="button" value="打印" οnclick="print()"/><p>1.jQuery对象本质上是DOM数组</p><p>2.jQuery对象和DOM对象可以互转</p><p>3.jQuery对象只能调用jQuery方法</p><p>4.DOM对象只能调用DOM方法</p><div><img src="../image/4.jpg" οnclick="chg(this);"/><img src="../image/5.jpg" οnclick="chg(this);"/><img src="../image/6.jpg" οnclick="chg(this);"/></div>
</body>
</html>