JavaScript对象

来源:互联网 发布:编程的面向对像 编辑:程序博客网 时间:2024/05/21 17:21

js是基于对象事件驱动的脚本语言,js中所有事物都是对象,对象包括核心对象、BOM对象、DOM对象和用户自定义对象。

一、对象的基本概念

1、对象和类
在面向对象的编程中(C++/java),类是对具有相同属性、方法的某一类对象的描述。类中定义对象的属性和方法,然后由类创建对象,生成的对象叫做类的实例,过程叫做实例化。类是对象的模版,对象是类的实例。
js中并没有真的类。对象是一种特殊数据类型,拥有属性、方法。属性用于描述对象特征,方法是在对象上执行的操作。
js中内置了许多对象:String,Date,Array等,用户也可以自定义对象。

2、使用对象
使用对象时,需先创建对象实例,通过变量来访问该对象的属性和方法。

//创建实例var 变量 = new 对象类型( );var today = new Date();//引用对象的方法或属性变量.方法名( [参数] ):  today.getMonth();变量.属性  或  变量["属性"]

如果代码中反复引用一个对象的属性和方法,可以用with语句设定默认对象,以简化代码:

//(但是with语句运行较慢,大多数情况要避免使用)with(对象){    语句;}//例如:x = Math.cos(3*Math.PI) + Math.sin(Math.LN10);y = Math.tan(14*Math.E);//一直用到了Math对象的方法和属性,使用with改写:with(Math){    x = cos(3* PI) + sin( LN10);    y = tan(14* E);}

通过document.getElementById( )等方法可以获取对象,修改属性。

document.getElementById("name").style.display="inline";

3、对象废除
将对象的所有变量都设置为null,可以强制性废除对象:

var today=new Date();today=null;//这意味着系统在下次运行无用存储单元回收时,该对象将被销毁。//每用完一个对象后,就将其废除,释放内存,是个好习惯。//如果一个对象有两个或多个引用,要正确废除,就得将其所有引用都设置为null。

4、对象类型
4种类型:
1)核心对象:这些对象与网页、浏览器或其他环节无关。包括:Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、Math等。
2)BOM对象:window、document、location、navigator、history、screen等6个对象,对象之间有图表示。

  • window对象:整个窗口。
  • document对象:html文件本身(包含在<html>·····</html>之间的所有东西)。
  • location对象:链接
  • form对象:表单

3)DOM对象:DOM把html文档呈现为带有元素、属性和文本的节点树。DOM提供了获取节点、修改节点、创建节点的方法,从而改变html文件。、


二、核心对象

Math对象
不能用new创建实例,直接通过 ”Math. “ 调用其属性和方法。

var piValue = Math.PI;var sqrtValue = Math.sqrt(36);

Math 对象属性和方法:http://www.w3school.com.cn/jsref/jsref_obj_math.asp

属性 :

  • E 、LN2 、LN10、LOG2E 、LOG10E、PI 、SQRT1_2(返回返回 2 的平方根的倒数)、SQRT2。

方法:

  • abs(x):绝对值。
  • ceil(x) 对数进行上舍入。floor(x) 对数进行下舍入。
  • cos(x) 返回数的余弦。sin(x) 返回数的正弦。tan(x) 返回角的正切。
  • exp(x) 返回 e 的指数。log(x) 返回数的自然对数(底为e)。
  • max(x,y) 返回 x 和 y 中的最高值。min(x,y) 返回 x 和 y 中的最低值。
  • pow(x,y) 返回 x 的 y 次幂。sqrt(x) 返回数的平方根。
  • random() 返回 0 ~ 1 之间的随机数。
  • valueOf() 返回 Math 对象的原始值。
//js产生指定位数随机数//Math.floor(Math.random()*10) 返回0~9var result="";for( i = 0; i < parseInt(n); i++ ){    result = result + ( Math.floor(Math.random()*10) ).toString}return reslut;

2、Number对象
创建方法3种:

var num1 = new Number(value);var num2 = Number(value);var num3 = 123;//value是数值或要转成数值的值,转换失败返回NaN.//typeof num1 = object,typeof num2 / num3 = number

Number对象的属性和方法:http://www.w3school.com.cn/jsref/jsref_obj_number.asp

常用属性:

  • MAX_VALUE 可表示的最大的数。
  • MIN_VALUE 可表示的最小的数。
  • NaN 非数字值。
  • NEGATIVE_INFINITY 负无穷大,溢出时返回该值。
  • POSITIVE_INFINITY 正无穷大,溢出时返回该值。

常用方法:

  • toString( [进制] ) 把数字转换为字符串。
  • toLocaleString() 把数字转换为字符串,使用本地数字格式顺序。
  • toFixed(x) (固定小数点位数)把数字转换为字符串,结果的小数点后有x位数的数字。
  • toExponential(x) (科学计数法)把对象的值转换为指数计数法。结果的小数点后有x位数的数字。
  • toPrecision(x ) (固定总位数)把数字格式化为指定的长度。

3、Boolean对象
创建方法2种:

var b = new boolean(value);//value = false0nullundefined会得到false其他均为truevar b = false;

4、String 对象
1、创建String对象,3种方法:

var str1 = new String(s);var str2 = String(s);var str3 = "123";//s是字符串或者要转换成字符串的值//str1是object,str2和str3 是 string

2、String对象的length属性
s.length,可以返回字符串长度。(包括空格)
其他属性:http://www.w3school.com.cn/jsref/jsref_obj_string.asp

3、String对象的方法
http://www.w3school.com.cn/jsref/jsref_obj_string.asp
对字符串进行标记。
一些方法:

  • s.charAt(index):返回第index下标的字符。
  • s.charCodeAt(index):返回第index下标字符的unicode编码。
  • s.concat(s1,s1,…,sn):连接多个字符串。
  • s.indexOf( search_value, [fromindex] ):返回某个指定的字符串值search_value在字符串中首次出现的位置。fromindex:开始检索的位置。indexOf()方法对大小写敏感。如果要检索的字符串值没有出现,则该方法返回 -1。
  • s.lastIndexOf(search_value, [fromindex] ) :从后向前检索字符串。返回值和indexOf同。
  • s.toLowerCase():转换为小写。
  • s.toUpperCase():转换为大写。
  • s.substr(start, [length] ):在字符串中抽取从 start 下标开始的指定数目length的字符,返回一个新的字符串。接受负的参数。(不建议使用此方法)
  • s.substring(start, [stop] ):提取字符串为从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。substring() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。如果 start = stop,返回的就是一个空串(即长度为 0 的字符串)。如果 start 比 stop 大,那么在提取子串之前会先交换这两个参数。不接受负的参数。
  • s.slice(start,end):提取字符串的某个部分,返回从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。slice() 比 substring() 要灵活一些,因为它允许使用负数作为参数,功能相似。String.slice() 与 Array.slice() 相似。
  • s.split( ch , [howmany] ):用于把一个字符串分割成字符串数组。ch:以ch为分割符号。howmany:指定返回的数组的最大长度,返回的子串不会多于这个参数指定的数组。通常用来分割(” “)空格。如果是(“”)则每个字符都会被分割。
  • s.match( value / 表达式):在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。返回匹配结果的数组(用数组返回),否则返回null。
  • s.search( value / 表达式 ):用于检索字符串中指定的子字符串,或与正则表达式相匹配的子字符串。返回 s 中第一个与value / 表达式 相匹配的子串的起始位置,找不到返回-1。 对大小写敏感,结尾+i忽略大小写。具体看 w3cschool。
  • s.replace( regexp/substr, replacement ):在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。返回一个新字符串。replacement可以是字符串也可以是函数。具体看w3cschool。
  • s.valueOf():返回 String 对象的原始值。通常由 JavaScript 在后台自动进行调用,而不是显式地处于代码中。

5、Array对象
Array对象用来建立数组。
1.创建数组4种方法:

var arr1 = new Array();  //创建空数组var arr2 = new Array(size);  //创建有size个元素的数组,初值为undefined。var arr3 = new Array( x, y, ·····,z);var arr4 = ["nh",234,"hi",555];  //数组的元素可以是不同的数据类型

js的数组是动态的,数组长度会自动扩增。数组的元素可以是不同的数据类型。

访问数组:用下标方式。

var a = new Array();  //创建空数组var b = new Array(5);  //创建有5个元素的数组,初值为undefined。a[0] = 1;   //为数组a的第一个元素赋1,a数组长度自动增加为1.a[1] = 2;   //为数组a的第二个元素赋2,a数组长度自动增加为2.b[8] = 10;  //为数组b的第9个元素赋10,b数组长度自动增加为9.

2、数组的length属性
表示数组的长度,即元素个数。数组下标为0到length-1。js中length是可变的。当length属性被设置为更小时,下标>=length的元素将被丢失。

var b = [1,2,3,4,5,6,7,8];  b.length = 5;   //下标>=5的元素将被丢失。b.length = 8;   //恢复数组长度但丢失的元素无法收回,置初值为undefined。

通常用for,for····in遍历数组。

其他属性:
http://www.w3school.com.cn/jsref/jsref_obj_array.asp

3、Array对象的方法
http://www.w3school.com.cn/jsref/jsref_obj_array.asp
常用方法:

  • arr.push( new_element1,new_element2,….,new_elementN ):向数组的末尾添加一个或多个元素,并返回新的长度。该方法会改变数组的长度。返回新长度。
  • arr.unshift( new_element1,new_element2,….,new_elementN ):在数组的开头添加一个或多个元素。返回新长度。IE不可用。
  • arr.pop():删除并返回数组的最后一个元素。删除 array最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 。
  • arr.shift():用于把数组的第一个元素从其中删除,并返回第一个元素的值。若数组为空,返回undefined。
  • arr.splice( index, howmany, [item1, ….., itemX] ):从/向数组中删除/添加项目,然后返回被删除的项目。前两个参数为删除, [item1, ….., itemX] 可选,向数组添加的新项目。返回新数组。
  • arr.concat(arrayX,arrayX,……,arrayX):连接两个或多个数组。该方法不会改变现有数组,仅仅会返回被连接数组的一个副本。
  • arr.slice(start, [end] ):从已有的数组中返回选定的元素。从start到end-1.该方法并不会修改数组,而是返回一个子数组。
  • arr.sort( [sortby] ):对数组的元素进行排序。sortby必须是有两个参数的比较函数,a-b<0,=0,>0。如果无参数,将按字母顺序对数组中的元素进行排序。
  • arr.reverse():反序。
  • arr.toString():把数组转换为字符串,并返回结果。数组中的元素之间用逗号分隔。
  • arr.join( [separator] ):把数组中的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。separator,指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。arr.join(“.”)

4、二维数组的定义与访问
二维数组访问采用双重循环。

var names = new Array();names[0] = new Array('yi','er');names[1] = new Array('san','si');names[2] = new Array('wu','liu');//orvar names = [['yi','er'],['san','si'],['wu','liu']];

6、Date对象
1、创建Date对象
方法3种:

var date1 = new Date();   //自动把当前日期和时间保存为初始值var date2 = new Date(dateVal);     //dateVal可以是日期格式的字符串类型,或距1970.1.1日的毫秒数数据。//例如:var date2 = new Date(678878343523); 毫秒数据//例如:var date2 = new Date("2017-10-16"); var date3 = new Date(year,month,date [,hour,min,sec,ms] );  //创建年月日时分秒毫秒等具体日期。

2、Date对象的方法
http://www.w3school.com.cn/jsref/jsref_obj_date.asp
3类方法:

  • get类
    • get类主要功能是返回Date对象中的年、月、日、时、分等。
    • d.getDate(); //返回日
    • d.getMonth(); //返回月
    • d.getFullYear();
  • set类
    • 设置Date对象中的年、月、日、时、分等。
    • d.setFullYear(2017);
    • d.setMonth(10);
  • 转换为字符串类
    • 转换成给定的字符串格式,如toLocaleString()把日期对象转换成本地时间格式。
    • d.toLocaleString(); //返回本地字符串

7、Object对象

var obj1 = new Object();obj1.name = "cat";obj1.color = "red";obj1.eat = function(){    alert(this.name + "eat rats");}//给cat定义eat方法,this指代cat。//以上代码可以写成var cat1 = {};cat1.name = "cat";cat1.color = "red";cat1.eat =  function(){    alert(this.name + "eat rats");}//以上代码还可以写成var cat1 = {    name : "cat";    color : "red";    eat : function(){        alert(this.name + "eat rats");    }};

cat1是一个实例,不能用new cat1创建其他实例。不过可以用create()方法,可以创建cat1对象的实例。

var cat2 = Object.create(cat1);//创建cat1对象的实例cat2。

8、Function对象
通过function对象建立用户自定义函数。

var sum = new Function("x","y","return(x+y)" );//通常会写成:function sum(x,y){    return (x+y);}

函数对象可以看做一个类的声明,函数本身就是一个构造函数。

function Cat(name, color){  //定义了两个属性和一个放法。    this.name = name;    this.color = color;    this.eat = function(){        alert(this.name + "eat rats");    }};var cat1 = new Cat("猫咪","red");cat1.eat();//返回猫咪吃老鼠。

js中每个构造函数都有一个prototype属性,用于返回对象类型的原型。当他指向另一个对象,这个对象的所有属性和方法都会被构造函数的实例继承。也可以把属性和方法直接定义在prototype对象上,从而给类添加新的属性和方法。
prototype属性:

function Flowers(){    this.smell = function(){        alert("great");    };};function SunFlower(){    this.name = "太阳花";};SunFlower.prototype = new Flowers();  //让sunflower继承flowersvar flower1 = new SunFlower();   //创建实例SunFlower.prototype.type = "植物";SunFlower.prototype.method = function(){    alert(this.type);};flower1.smell();  //输出great,继承了Flowers方法flower1.method(); //输出植物。利用函数的prototype属性可以实现继承。

实践中很少会单独使用原型链。缺点:http://www.cnblogs.com/yangjinjin/archive/2013/02/01/2889368.html
类和继承的另一种常见写法:非prototype

var Flowers = {    createNew : function(){        var flowers = {};        flowers.smell = function(){            alert("great");        };        return flowers;    };};var SunFlowers = {    createNew : function(){        var sunflowers = Flowers.createNew();        sunflowers.name = "太阳花";        sunflowers.color = function(){            alert("yellow");        };        return sunflowers;    };};var flowers1 = SunFlowers.createNew();flowers1.smell(); //返回great。

JS实现继承的几种方式:http://www.cnblogs.com/humin/p/4556820.html

9、RegExp对象 / 正则表达式
1、创建RegExp对象
字符串模式匹配
格式2种:

var regObj1 = new RegExp("pattern" [,"attributes"] );var regObj2 = /pattern/ [attributes];//pattern 是匹配字符串或正则表达式// attributes 可选,包含属性 "g"、"i"、"m",分别为g全局匹配、i区分大小写匹配和m多行匹配。//如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。//抛出的异常://SyntaxError -  pattern 不是合法的正则表达式,或 attributes 含有 非法字符。//TypeError - pattern 是 RegExp 对象,但没有省略 attributes 参数。

pattern由普通字符(a-Z等)、转义字符、特殊字符(元字符)组成。

  • 普通字符:字母、数字、汉字、下划线、没有特殊定义的标点。
  • 转义字符:\r,\n 等。+有特殊用法的标点符号 = 该符号本身。
  • 表达式:常用的表达式——
    [ ]: 匹配其中的任意字符。
    [ ^ ]:匹配除····之外的任意字符。
    |:或。
    -:表示字符范围或数字范围,如a-z。
    ( ):表示一个组合项或子匹配,如/(z|f)ood/表示匹配zood或food。
  • 特殊含义字符:
    ^:与字符串开始的地方匹配,不匹配任何字符;
    $:与字符串结束的地方匹配,不匹配任何字符;
    \d:与任一数字字符匹配,等价于[0-9];
    \D:与任一非数字字符匹配,等价于[ ^0-9];
    \s:与任一空白字符匹配,等价于[\f\n\r\t\v];
    \S:与任一非空白字符匹配,等价于[ ^\f\n\r\t\v];
    \w:与任一英文字母、数字、下划线匹配,等价于[A-Za-z0-9];
    \W:与任一非英文字母、数字、下划线匹配,等价于[ ^A-Za-z0-9];
    .:匹配除了\n以外的任何单个字符。若要匹配包括\n的任何单个字符,可使用[\s\S]。若要匹配 . 本身,可使用 \ . 。
  • 修饰匹配次数的特殊符号:跟在哪个后面修饰哪个。
    {n}:重复n次,如:/w{2}/相当于/\w\w/;/a{5}/相当于/aaaaa/;
    {m, n}:至少重复m次,最多重复n次。如:/ba{1,3}/可以匹配ba,baa,baaa;
    {m,}:至少重复m次。如:/\w\d{2}/可以匹配m123457···;
    ?:匹配0次或1次,相当于{0,1}。如:/a[cd]?/匹配a,ac,ad;
    +:至少出现1次,相当于{1,}。如:/a+b/匹配ab,aab,aaab;/a+/
    *:不出现或出现任意次,相当于{0,}。全局匹配。

2、RegExp对象的方法
http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp

  • reg.test(string):检索字符串中是否匹配某个模式,存在返回true,并更新正则表达式reg的静态属性,如reg.lastIndex,表示下一次匹配开始的位置。不存在返回false。
  • reg.exec(string):检索字符串中是否匹配某个正则表达式,存在则返回被找到的值,否则返回null。返回的是一个数组,其中存放匹配的结果。如果正则表达式设置了g,则可多次调用exec方法进行连续搜索,否则每次将从头搜索。


三、环境对象

1、window对象
window对象表示浏览器打开的窗口。有多个ifream就有多个window对象。
属性和方法:http://www.w3school.com.cn/jsref/dom_obj_window.asp
1、window对象的属性

  • name:窗口名称。
  • defaultStatus、status:window.defaultStatus=sometext ,设置或返回窗口状态栏中的默认文本。该文本会在页面加载时被显示。status表示状态栏所显示的内容。两个属性在IE,火狐,Chrome,和Safari默认配置是不能正常工作,也就是opera可以。
  • self、parent、top、opener:self——窗口本身,常用self.close();用于关闭当前窗口。parent——返回父窗口。top——返回最顶层的先辈窗口。可以用于调整窗口尺寸。opener——window.opener,返回打开本窗口的父窗口,如果没有打开的父窗口,则返回null/undefined。
  • closed:返回一个布尔值,该值声明了窗口是否已经关闭。该属性只读。window.closed。
  • document、history、location、navigator、screen属性。

2、window对象的方法

  • alert(message):弹出对话框和一个 确定 按钮。
  • confirm(message):弹出对话框和 取消 & 确定 按钮。取消confirm函数返回false,确定返回true。
  • prompt( [text,defaultText] ):显示可供用户输入的对话框 和 取消 & 确定 按钮。取消返回null,确定返回内容。
  • window.moveBy( x,y ):相对窗口的当前坐标把它移动指定的像素。x:右移动数,y:下移动数。
  • window.moveTo( x,y ):把窗口的左上角移动到一个指定的坐标。
  • resizeBy( width, [height] ):调整当前窗口大小,增加x宽度和y的高度。除了Opera和Chrome都支持。基本不常用。
  • resizeTo( width, [height] ):把窗口大小调整到指定的宽和高。
  • scrollBy( x,y ):混动内容水平方向x像素,垂直y像素。
  • scrollto( x,y ):把内容滚动到(x,y)指定的位置。
  • window.open( [URL, name, features, replace] ):打开一个新的浏览器窗口或查找一个已命名的窗口。replace:true - URL 替换浏览历史中的当前条目。false - URL 在浏览历史中创建新的条目。不要混淆方法 Window.open() 与方法 Document.open(),这两者的功能完全不同。feature的基本参数有height,width,left,top,scrollbars,resizable等,其他看w3cschool:http://www.w3school.com.cn/jsref/met_win_open.asp。
  • setInterval( code, millisec [,”lang”]):照指定的周期(以毫秒计)或函数来调用函数或计算表达式。会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。code:要调用的函数或代码。millisec:周期性执行或调用 code 之间的时间间隔,以毫秒计。返回值:一个可以传递给 Window.clearInterval() 的id。var id = self.setInterval(“clock()”,50)。
  • window.clearInterval( id_of_setinterval ):取消由 setInterval() 设置的 timeout。
  • setTimeout( code,millisec ):在指定的毫秒数后调用函数或计算表达式。setTimeout() 只执行 code 一次。如果要多次调用,使用 setInterval() 或让 code 自身递归再次调用 setTimeout()。
  • clearTimeout( id_of_settimeout ):取消由 setTimeout() 方法设置的 timeout。
  • window.blur():把键盘焦点从顶层窗口移开。
  • window.print():打印当前窗口。
  • window.focus():把键盘焦点给予一个窗口。
  • window.close():关闭窗口。

2、location对象
包含当前页的url信息。通过window.location访问。
属性和对象:http://www.w3school.com.cn/jsref/dom_obj_location.asp
1、location对象的属性

  • location.hash [=anchorname]:可读可写。该字符串是 URL 的锚部分(从 # 号开始的部分)。
  • location.host:可读可写。设置或返回当前 URL 的主机名称和端口号。
  • location.hostname:可读可写。设置或返回当前 URL 的主机名。
  • location.href=URL:可读可写。设置或返回当前显示的文档的完整 URL。
  • location.pathname=path:可读可写。设置或返回当前 URL 的路径部分。
  • location.port=portnumber:可读可写。设置或返回当前 URL 的端口部分。
  • location.protocol=path:可读可写。设置或返回当前 URL 的协议。
  • location.search=path_from_questionmark:可读可写。设置或返回当前 URL 的查询部分(问号 ? 之后的部分)。

2、location对象的方法

  • location.assign(URL):加载一个新的文档。
  • location.reload( [ture/false] ):重新加载当前文档。false或空,从缓存中加载。true,从服务器加载。
  • location.replace(newURL):用一个新文档取代当前文档。

3、navigator对象
包含浏览器相关信息,描述了正在使用的浏览器及配置。navigator对象实例是唯一的,可通过window.navigator访问。
属性:http://www.w3school.com.cn/jsref/dom_obj_navigator.asp
1、常见属性:

  • navigator.appCodeName: 返回浏览器的代码名,比如Mozilla。
  • navigator.appName:返回浏览器的名称,比如Netscape。
  • navigator.appVersion:返回浏览器的平台和版本信息。
  • navigator.platform:返回运行浏览器的操作系统平台,比如win64。
  • navigator.cookieEnabled:返回指明浏览器中是否启用 cookie 的布尔值。如果浏览器启用了 cookie,该属性值为 true。如果禁用了 cookie,则值为 false。

4、history对象
包含访问过的url。通过window.history访问。
方法和属性:http://www.w3school.com.cn/jsref/dom_obj_history.asp
1、history对象的属性

  • history.length:声明了浏览器历史列表中的url数量。

2、history对象的方法

  • history.back():加载历史列表中的前一个 URL(如果存在)。可在页面上创建一个后退按钮。等价于点击前进按钮或调用 history.go(-1)。
  • history.forward():加载历史列表中的下一个 URL。等价于点击前进按钮或调用 history.go(1)。
  • history.go(number|URL):加载历史列表中的某个具体的页面。

5、screen对象
包含客户端浏览器屏幕的相关信息。每个window对象的screen属性都引用一个screen对象。js可以优化输出。如程序可根据显示器的尺寸选择大图还是小图。可以根据显示器的颜色深度选择 16 位色还是 8 位色。JS 程序还能根据有关屏幕尺寸的信息将新的浏览器窗口定位在屏幕中间。
属性:http://www.w3school.com.cn/jsref/dom_obj_screen.asp
1、常用属性:

  • screen.height:返回显示屏幕的高度。
  • screen.width:返回显示器屏幕的宽度。
  • screen.availHeight:返回显示屏幕的可用高度 (除 Windows 任务栏之外)。
  • screen.availWidth:返回显示屏幕的可用宽度 (除 Windows 任务栏之外)。

6、document对象
每个载入浏览器的html都会成为一个document对象。通过document对象可以在脚本中对html页面的所有标记进行访问。可通过window.document访问。

1、document对象的属性
http://www.w3school.com.cn/jsref/dom_obj_document.asp

  • body
  • cookie:document.cookie 。设置或返回与当前文档有关的所有 cookie。可读可写。cookie是存于硬盘中的一个文件,对应与一个域名,当浏览器再次访问此域名时,cookie属性可用。主要用于保存用户登录状态,跟踪用户行为,定制页面,创建购物车等。cookie跟浏览器相关,不同浏览器间cookie不能互相访问,以纯文本形式记录于文件,安全性低。document.cookie = userId = 222; userName = 222”;
  • lastModifed:document.lastModified。返回文档最后被修改的日期和时间。
  • domian:document.domain。返回下载当前文档的服务器域名。解决因同源安全策略带来的不同文档的属性共享问题(https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy)

2、document对象的方法

  • document.write(exp1,exp2,exp3,….):向文档写入 HTML 表达式或 JavaScript 代码。可列出多个参数,它们将按顺序被追加到文档中。
  • document.writeln(exp1,exp2,exp3,….):与 write() 方法作用相同,在每个表达式后写一个换行符。
  • document.open(mimetype,replace):打开一个新文档,并擦除当前文档的内容。mimetype:可选。规定正在写的文档的类型。默认值是 “text/html”。replace:可选。当此参数设置后,可引起新文档从父文档继承历史条目。该方法将擦除当前 HTML 文档的内容,开始一个新的文档,新文档用 write() 方法或 writeln() 方法编写。必须记住用 close 方法关闭文档,并迫使其内容显示出来。
  • document.close():关闭一个由 document.open 方法打开的输出流,并显示选定的数据。一旦调用了 close(),就不应该再次调用 write(),因为这会隐式地调用 open() 来擦除当前文档并开始一个新的文档。
  • document.getElementById(id):返回对拥有指定 id 的第一个对象的引用。
  • document.getElementsByName(name):返回带有指定名称的对象集合。
  • document.getElementsByTagName(tagname):返回带有指定标签名的对象集合。可以使用 getElementsByTagName() 方法获取文档中的一个特定的元素,如,获得文档第四个段落:var myParagragh = document.getElementsByTagName(“p”)[3];

3、document对象的集合对象

  • all[ ]:提供对文档中所有 HTML 元素的访问。document.all[i];document.all[name];document.all.tags[tagname];已经被 getElementById() 、 getElementsByTagName()及 getElementsByName() 方法所取代。
  • document.forms[]:返回对文档中所有 Form 对象的引用。
  • document.images[]:返回对文档中所有 Image 对象的引用。
  • document.links[]:返回对文档中所有 Area 和 Link 对象的引用。
原创粉丝点击