JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,ECMAScript,描述了该语言的语法和基本对象。 文档对象模型(DOM),描述处理网页内容的方法和接口。浏览器对象模型(BOM),描述与浏览器进行交互的方法接口

常用于:

1.表单验证

2.HTML特效

3.异步数据交互

本文主要参考网站:http://www.w3school.com.cn/css/index.asp

一、JavaScript有三大内置对象,分别为字符串(String)、日期(Date)、数学(Math)

以下是各自的属性和方法的介绍:

1.字符串(String)



1.String 对象

String 对象用于处理文本(字符串)。

创建 String 对象的语法:



new String(s); String(s);



参数

参数 s 是要存储在 String 对象中或转换成原始字符串的值。

返回值

当 String() 和运算符 new 一起作为构造函数使用时,它返回一个新创建的 String 对象,存放的是字符串 ss 的字符串表示。

当不用 new 运算符调用 String() 时,它只把 s 转换成原始的字符串,并返回转换后的值。


String 对象属性

属性

描述

constructor

对创建该对象的函数的引用

length

字符串的长度

prototype

允许您向对象添加属性和方法


String 对象方法

方法

描述

anchor()

创建 HTML 锚。

big()

用大号字体显示字符串。

blink()

显示闪动字符串。

bold()

使用粗体显示字符串。

charAt()

返回在指定位置的字符。

charCodeAt()

返回在指定的位置的字符的 Unicode 编码。

concat()

连接字符串。

fixed()

以打字机文本显示字符串。

fontcolor()

使用指定的颜色来显示字符串。

fontsize()

使用指定的尺寸来显示字符串。

fromCharCode()

从字符编码创建一个字符串。

indexOf()

检索字符串。

italics()

使用斜体显示字符串。

lastIndexOf()

从后向前搜索字符串。

link()

将字符串显示为链接。

localeCompare()

用本地特定的顺序来比较两个字符串。

match()

找到一个或多个正则表达式的匹配。

replace()

替换与正则表达式匹配的子串。

search()

检索与正则表达式相匹配的值。

slice()

提取字符串的片断,并在新的字符串中返回被提取的部分。

small()

使用小字号来显示字符串。

split()

把字符串分割为字符串数组。

strike()

使用删除线来显示字符串。

sub()

把字符串显示为下标。

substr()

从起始索引号提取字符串中指定数目的字符。

substring()

提取字符串中两个指定的索引号之间的字符。

sup()

把字符串显示为上标。

toLocaleLowerCase()

把字符串转换为小写。

toLocaleUpperCase()

把字符串转换为大写。

toLowerCase()

把字符串转换为小写。

toUpperCase()

把字符串转换为大写。

toSource()

代表对象的源代码。

toString()

返回字符串。

valueOf()

返回某个字符串对象的原始值。


String 对象描述

字符串是 JavaScript 的一种基本的数据类型。

String 对象的 length 属性声明了该字符串中的字符数。

String 类定义了大量操作字符串的方法,例如从字符串中提取字符或子串,或者检索字符或子串。

需要注意的是,JavaScript 的字符串是不可变的(immutable),String 类定义的方法都不能改变字符串的内容。像 String.toUpperCase() 这样的方法,返回的是全新的字符串,而不是修改原始字符串。

在较早的 Netscape 代码基的 JavaScript 实现中(例如 Firefox 实现中),字符串的行为就像只读的字符数组。例如,从字符串 s 中提取第三个字符,可以用 s[2] 代替更加标准的 s.charAt(2)。此外,对字符串应用 for/in 循环时,它将枚举字符串中每个字符的数组下标(但要注意,ECMAScript 标准规定,不能枚举 length 属性)。因为字符串的数组行为不标准,所以应该避免使用它。




2.Date 对象

Date 对象用于处理日期和时间。

创建 Date 对象的语法:



var myDate=new Date()



注释:Date 对象会自动把当前日期和时间保存为其初始值。


Date 对象属性

属性

描述

constructor

返回对创建此对象的 Date 函数的引用。

prototype

使您有能力向对象添加属性和方法。


Date 对象方法

方法

描述

Date()

返回当日的日期和时间。

getDate()

从 Date 对象返回一个月中的某一天 (1 ~ 31)。

getDay()

从 Date 对象返回一周中的某一天 (0 ~ 6)。

getMonth()

从 Date 对象返回月份 (0 ~ 11)。

getFullYear()

从 Date 对象以四位数字返回年份。

getYear()

请使用 getFullYear() 方法代替。

getHours()

返回 Date 对象的小时 (0 ~ 23)。

getMinutes()

返回 Date 对象的分钟 (0 ~ 59)。

getSeconds()

返回 Date 对象的秒数 (0 ~ 59)。

getMilliseconds()

返回 Date 对象的毫秒(0 ~ 999)。

getTime()

返回 1970 年 1 月 1 日至今的毫秒数。

getTimezoneOffset()

返回本地时间与格林威治标准时间 (GMT) 的分钟差。

getUTCDate()

根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。

getUTCDay()

根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。

getUTCMonth()

根据世界时从 Date 对象返回月份 (0 ~ 11)。

getUTCFullYear()

根据世界时从 Date 对象返回四位数的年份。

getUTCHours()

根据世界时返回 Date 对象的小时 (0 ~ 23)。

getUTCMinutes()

根据世界时返回 Date 对象的分钟 (0 ~ 59)。

getUTCSeconds()

根据世界时返回 Date 对象的秒钟 (0 ~ 59)。

getUTCMilliseconds()

根据世界时返回 Date 对象的毫秒(0 ~ 999)。

parse()

返回1970年1月1日午夜到指定日期(字符串)的毫秒数。

setDate()

设置 Date 对象中月的某一天 (1 ~ 31)。

setMonth()

设置 Date 对象中月份 (0 ~ 11)。

setFullYear()

设置 Date 对象中的年份(四位数字)。

setYear()

请使用 setFullYear() 方法代替。

setHours()

设置 Date 对象中的小时 (0 ~ 23)。

setMinutes()

设置 Date 对象中的分钟 (0 ~ 59)。

setSeconds()

设置 Date 对象中的秒钟 (0 ~ 59)。

setMilliseconds()

设置 Date 对象中的毫秒 (0 ~ 999)。

setTime()

以毫秒设置 Date 对象。

setUTCDate()

根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。

setUTCMonth()

根据世界时设置 Date 对象中的月份 (0 ~ 11)。

setUTCFullYear()

根据世界时设置 Date 对象中的年份(四位数字)。

setUTCHours()

根据世界时设置 Date 对象中的小时 (0 ~ 23)。

setUTCMinutes()

根据世界时设置 Date 对象中的分钟 (0 ~ 59)。

setUTCSeconds()

根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。

setUTCMilliseconds()

根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。

toSource()

返回该对象的源代码。

toString()

把 Date 对象转换为字符串。

toTimeString()

把 Date 对象的时间部分转换为字符串。

toDateString()

把 Date 对象的日期部分转换为字符串。

toGMTString()

请使用 toUTCString() 方法代替。

toUTCString()

根据世界时,把 Date 对象转换为字符串。

toLocaleString()

根据本地时间格式,把 Date 对象转换为字符串。

toLocaleTimeString()

根据本地时间格式,把 Date 对象的时间部分转换为字符串。

toLocaleDateString()

根据本地时间格式,把 Date 对象的日期部分转换为字符串。

UTC()

根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。

valueOf()

返回 Date 对象的原始值。






3.Math 对象

Math 对象用于执行数学任务。

使用 Math 的属性和方法的语法:



var pi_value=Math.PI; var sqrt_value=Math.sqrt(15);



注释:Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(),像 Math.sin() 这样的函数只是函数,不是某个对象的方法。您无需创建它,通过把 Math 作为对象使用就可以调用其所有属性和方法。


Math 对象属性

属性

描述

E

返回算术常量 e,即自然对数的底数(约等于2.718)。

LN2

返回 2 的自然对数(约等于0.693)。

LN10

返回 10 的自然对数(约等于2.302)。

LOG2E

返回以 2 为底的 e 的对数(约等于 1.414)。

LOG10E

返回以 10 为底的 e 的对数(约等于0.434)。

PI

返回圆周率(约等于3.14159)。

SQRT1_2

返回返回 2 的平方根的倒数(约等于 0.707)。

SQRT2

返回 2 的平方根(约等于 1.414)。


Math 对象方法

方法

描述

abs(x)

返回数的绝对值。

acos(x)

返回数的反余弦值。

asin(x)

返回数的反正弦值。

atan(x)

以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。

atan2(y,x)

返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。

ceil(x)

对数进行上舍入。

cos(x)

返回数的余弦。

exp(x)

返回 e 的指数。

floor(x)

对数进行下舍入。

log(x)

返回数的自然对数(底为e)。

max(x,y)

返回 x 和 y 中的最高值。

min(x,y)

返回 x 和 y 中的最低值。

pow(x,y)

返回 x 的 y 次幂。

random()

返回 0 ~ 1 之间的随机数。

round(x)

把数四舍五入为最接近的整数。

sin(x)

返回数的正弦。

sqrt(x)

返回数的平方根。

tan(x)

返回角的正切。

toSource()

返回该对象的源代码。

valueOf()

返回 Math 对象的原始值。




4.全局函数(function)



全局属性和函数可用于所有内建的 JavaScript 对象。


顶层函数(全局函数)

函数

描述

decodeURI()

解码某个编码的 URI。

decodeURIComponent()

解码一个编码的 URI 组件。

encodeURI()

把字符串编码为 URI。

encodeURIComponent()

把字符串编码为 URI 组件。

escape()

对字符串进行编码。

eval()

计算 JavaScript 字符串,并把它作为脚本代码来执行。

getClass()

返回一个 JavaObject 的 JavaClass。

isFinite()

检查某个值是否为有穷大的数。

isNaN()

检查某个值是否是数字。

Number()

把对象的值转换为数字。

parseFloat()

解析一个字符串并返回一个浮点数。

parseInt()

解析一个字符串并返回一个整数。

String()

把对象的值转换为字符串。

unescape()

对由 escape() 编码的字符串进行解码。


顶层属性(全局属性)

方法

描述

Infinity

代表正的无穷大的数值。

java

代表 java.* 包层级的一个 JavaPackage。

NaN

指示某个值是不是数字值。

Packages

根 JavaPackage 对象。

undefined

指示未定义的值。


全局对象描述

全局对象是预定义的对象,作为 JavaScript 的全局函数和全局属性的占位符。通过使用全局对象,可以访问所有其他所有预定义的对象、函数和属性。全局对象不是任何对象的属性,所以它没有名称。

在顶层 JavaScript 代码中,可以用关键字 this 引用全局对象。但通常不必用这种方式引用全局对象,因为全局对象是作用域链的头,这意味着所有非限定性的变量和函数名都会作为该对象的属性来查询。例如,当JavaScript 代码引用 parseInt() 函数时,它引用的是全局对象的 parseInt 属性。全局对象是作用域链的头,还意味着在顶层 JavaScript 代码中声明的所有变量都将成为全局对象的属性。

全局对象只是一个对象,而不是类。既没有构造函数,也无法实例化一个新的全局对象。

在 JavaScript 代码嵌入一个特殊环境中时,全局对象通常具有环境特定的属性。实际上,ECMAScript 标准没有规定全局对象的类型,JavaScript 的实现或嵌入的 JavaScript 都可以把任意类型的对象作为全局对象,只要该对象定义了这里列出的基本属性和函数。例如,在允许通过 LiveConnect 或相关的技术来脚本化 Java 的 JavaScript 实现中,全局对象被赋予了这里列出的 java 和 Package 属性以及 getClass() 方法。而在客户端 JavaScript 中,全局对象就是 Window 对象,表示允许 JavaScript 代码的 Web 浏览器窗口。

例子

在 JavaScript 核心语言中,全局对象的预定义属性都是不可枚举的,所有可以用 for/in 循环列出所有隐式或显式声明的全局变量,如下所示:



var variables = ""; for (var name in this) { variables += name + "<br />"; } document.write(variables);

5.JS event(事件)



事件通常与函数配合使用,这样就可以通过发生的事件来驱动函数执行。


事件句柄

HTML 4.0 的新特性之一是有能力使 HTML 事件触发浏览器中的动作(action),比如当用户点击某个 HTML 元素时启动一段 JavaScript。下面是一个属性列表,这些属性可插入 HTML 标签来定义事件动作。

属性

当以下情况发生时,出现此事件

FF

N

IE

onabort

图像加载被中断

1

3

4

onblur

元素失去焦点

1

2

3

onchange

用户改变域的内容

1

2

3

onclick

鼠标点击某个对象

1

2

3

ondblclick

鼠标双击某个对象

1

4

4

onerror

当加载文档或图像时发生某个错误

1

3

4

onfocus

元素获得焦点

1

2

3

onkeydown

某个键盘的键被按下

1

4

3

onkeypress

某个键盘的键被按下或按住

1

4

3

onkeyup

某个键盘的键被松开

1

4

3

onload

某个页面或图像被完成加载

1

2

3

onmousedown

某个鼠标按键被按下

1

4

4

onmousemove

鼠标被移动

1

6

3

onmouseout

鼠标从某元素移开

1

4

4

onmouseover

鼠标被移到某元素之上

1

2

3

onmouseup

某个鼠标按键被松开

1

4

4

onreset

重置按钮被点击

1

3

4

onresize

窗口或框架被调整尺寸

1

4

4

onselect

文本被选定

1

2

3

onsubmit

提交按钮被点击

1

2

3

onunload

用户退出页面

1

2

3



二、BOM对象(Browser object   model  浏览器对象模型)

在BOM对象中,包含有window、navigator、screen、history、location等对象。

1.window对象



1.Window 对象集合

集合

描述

frames[]

返回窗口中所有命名的框架。

该集合是 Window 对象的数组,每个 Window 对象在窗口中含有一个框架或 <iframe>。属性 frames.length 存放数组 frames[] 中含有的元素个数。注意,frames[] 数组中引用的框架可能还包括框架,它们自己也具有 frames[] 数组。


Window 对象属性

属性

描述

closed

返回窗口是否已被关闭。

defaultStatus

设置或返回窗口状态栏中的默认文本。

document

对 Document 对象的只读引用。请参阅 Document 对象

history

对 History 对象的只读引用。请参数 History 对象

innerheight

返回窗口的文档显示区的高度。

innerwidth

返回窗口的文档显示区的宽度。

length

设置或返回窗口中的框架数量。

location

用于窗口或框架的 Location 对象。请参阅 Location 对象

name

设置或返回窗口的名称。

Navigator

对 Navigator 对象的只读引用。请参数 Navigator 对象

opener

返回对创建此窗口的窗口的引用。

outerheight

返回窗口的外部高度。

outerwidth

返回窗口的外部宽度。

pageXOffset

设置或返回当前页面相对于窗口显示区左上角的 X 位置。

pageYOffset

设置或返回当前页面相对于窗口显示区左上角的 Y 位置。

parent

返回父窗口。

Screen

对 Screen 对象的只读引用。请参数 Screen 对象

self

返回对当前窗口的引用。等价于 Window 属性。

status

设置窗口状态栏的文本。

top

返回最顶层的先辈窗口。

window

window 属性等价于 self 属性,它包含了对窗口自身的引用。

  • screenLeft
  • screenTop
  • screenX
  • screenY

只读整数。声明了窗口的左上角在屏幕上的的 x 坐标和 y 坐标。IE、Safari 和 Opera 支持 screenLeft 和 screenTop,而 Firefox 和 Safari 支持 screenX 和 screenY。


Window 对象方法

方法

描述

alert()

显示带有一段消息和一个确认按钮的警告框。

blur()

把键盘焦点从顶层窗口移开。

clearInterval()

取消由 setInterval() 设置的 timeout。

clearTimeout()

取消由 setTimeout() 方法设置的 timeout。

close()

关闭浏览器窗口。

confirm()

显示带有一段消息以及确认按钮和取消按钮的对话框。

createPopup()

创建一个 pop-up 窗口。

focus()

把键盘焦点给予一个窗口。

moveBy()

可相对窗口的当前坐标把它移动指定的像素。

moveTo()

把窗口的左上角移动到一个指定的坐标。

open()

打开一个新的浏览器窗口或查找一个已命名的窗口。

print()

打印当前窗口的内容。

prompt()

显示可提示用户输入的对话框。

resizeBy()

按照指定的像素调整窗口的大小。

resizeTo()

把窗口的大小调整到指定的宽度和高度。

scrollBy()

按照指定的像素值来滚动内容。

scrollTo()

把内容滚动到指定的坐标。

setInterval()

按照指定的周期(以毫秒计)来调用函数或计算表达式。

setTimeout()

在指定的毫秒数后调用函数或计算表达式。


Window 对象描述

Window 对象表示一个浏览器窗口或一个框架。在客户端 JavaScript 中,Window 对象是全局对象,所有的表达式都在当前的环境中计算。也就是说,要引用当前窗口根本不需要特殊的语法,可以把那个窗口的属性作为全局变量来使用。例如,可以只写document,而不必写 window.document。

同样,可以把当前窗口对象的方法当作函数来使用,如只写 alert(),而不必写 Window.alert()。

除了上面列出的属性和方法,Window 对象还实现了核心 JavaScript 所定义的所有全局属性和方法。

Window 对象的 window 属性和 self 属性引用的都是它自己。当你想明确地引用当前窗口,而不仅仅是隐式地引用它时,可以使用这两个属性。除了这两个属性之外,parent 属性、top 属性以及 frame[] 数组都引用了与当前 Window 对象相关的其他 Window 对象。

要引用窗口中的一个框架,可以使用如下语法:



frame[i] //当前窗口的框架 self.frame[i] //当前窗口的框架 w.frame[i] //窗口 w 的框架



要引用一个框架的父窗口(或父框架),可以使用下面的语法:



parent //当前窗口的父窗口 self.parent //当前窗口的父窗口 w.parent //窗口 w 的父窗口



要从顶层窗口含有的任何一个框架中引用它,可以使用如下语法:



top //当前框架的顶层窗口 self.top //当前框架的顶层窗口 f.top //框架 f 的顶层窗口



新的顶层浏览器窗口由方法 Window.open() 创建。当调用该方法时,应把 open() 调用的返回值存储在一个变量中,然后使用那个变量来引用新窗口。新窗口的opener 属性反过来引用了打开它的那个窗口。




一般来说,Window 对象的方法都是对浏览器窗口或框架进行某种操作。而 alert() 方法、confirm() 方法和 prompt 方法则不同,它们通过简单的对话框与用户进行交互。


2.Navigator 对象



Navigator 对象

Navigator 对象包含有关浏览器的信息。

注释:没有应用于 navigator 对象的公开标准,不过所有浏览器都支持该对象。



Navigator 对象集合

集合

描述

plugins[]

返回对文档中所有嵌入式对象的引用。

该集合是一个 Plugin 对象的数组,其中的元素代表浏览器已经安装的插件。Plug-in 对象提供的是有关插件的信息,其中包括它所支持的 MIME 类型的列表。

虽然 plugins[] 数组是由 IE 4 定义的,但是在 IE 4 中它却总是空的,因为 IE 4 不支持插件和 Plugin 对象。



Navigator 对象属性

属性

描述

appCodeName

返回浏览器的代码名。

appMinorVersion

返回浏览器的次级版本。

appName

返回浏览器的名称。

appVersion

返回浏览器的平台和版本信息。

browserLanguage

返回当前浏览器的语言。

cookieEnabled

返回指明浏览器中是否启用 cookie 的布尔值。

cpuClass

返回浏览器系统的 CPU 等级。

onLine

返回指明系统是否处于脱机模式的布尔值。

platform

返回运行浏览器的操作系统平台。

systemLanguage

返回 OS 使用的默认语言。

userAgent

返回由客户机发送服务器的 user-agent 头部的值。

userLanguage

返回 OS 的自然语言设置。



Navigator 对象方法

方法

描述

javaEnabled()

规定浏览器是否启用 Java。

taintEnabled()

规定浏览器是否启用数据污点 (data tainting)。



Navigator 对象描述

Navigator 对象包含的属性描述了正在使用的浏览器。可以使用这些属性进行平台专用的配置。

虽然这个对象的名称显而易见的是 Netscape 的 Navigator 浏览器,但其他实现了 JavaScript 的浏览器也支持这个对象。

Navigator 对象的实例是唯一的,可以用 Window 对象的 navigator 属性来引用它。





3.Screen 对象



Screen 对象包含有关客户端显示屏幕的信息。

注释:没有应用于 screen 对象的公开标准,不过所有浏览器都支持该对象。



Screen 对象属性

属性

描述

availHeight

返回显示屏幕的高度分辨率 (除 Windows 任务栏之外)。

availWidth

返回显示屏幕的宽度分辨率 (除 Windows 任务栏之外)。

bufferDepth

设置或返回调色板的比特深度。

colorDepth

返回目标设备或缓冲器上的调色板的比特深度。

deviceXDPI

返回显示屏幕的每英寸水平点数。

deviceYDPI

返回显示屏幕的每英寸垂直点数。

fontSmoothingEnabled

返回用户是否在显示控制面板中启用了字体平滑。

height

返回显示屏幕的高度的分辨率。

logicalXDPI

返回显示屏幕每英寸的水平方向的常规点数。

logicalYDPI

返回显示屏幕每英寸的垂直方向的常规点数。

pixelDepth

返回显示屏幕的颜色分辨率(比特每像素)。

updateInterval

设置或返回屏幕的刷新率。

width

返回显示器屏幕的宽度的分辨率。



Screen 对象描述

每个 Window 对象的 screen 属性都引用一个 Screen 对象。Screen 对象中存放着有关显示浏览器屏幕的信息。JavaScript 程序将利用这些信息来优化它们的输出,以达到用户的显示要求。例如,一个程序可以根据显示器的尺寸选择使用大图像还是使用小图像,它还可以根据显示器的颜色深度选择使用 16 位色还是使用 8 位色的图形。另外,JavaScript 程序还能根据有关屏幕尺寸的信息将新的浏览器窗口定位在屏幕中间。



4.History 对象



History 对象

History 对象包含用户(在浏览器窗口中)访问过的 URL。

History 对象是 window 对象的一部分,可通过 window.history 属性对其进行访问。

注释:没有应用于 History 对象的公开标准,不过所有浏览器都支持该对象。



History 对象属性

属性

描述

length

返回浏览器历史列表中的 URL 数量。



History 对象方法

方法

描述

back()

加载 history 列表中的前一个 URL。

forward()

加载 history 列表中的下一个 URL。

go()

加载 history 列表中的某个具体页面。



History 对象描述

History 对象最初设计来表示窗口的浏览历史。但出于隐私方面的原因,History 对象不再允许脚本访问已经访问过的实际 URL。唯一保持使用的功能只有back()forward()go() 方法。

例子

下面一行代码执行的操作与单击后退按钮执行的操作一样:

history.back()

下面一行代码执行的操作与单击两次后退按钮执行的操作一样:

history.go(-2)





5.Location 对象



Location 对象

Location 对象包含有关当前 URL 的信息。

Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问。

例子

把用户带到一个新的地址



Location 对象属性

属性

描述

hash

设置或返回从井号 (#) 开始的 URL(锚)。

host

设置或返回主机名和当前 URL 的端口号。

hostname

设置或返回当前 URL 的主机名。

href

设置或返回完整的 URL。

pathname

设置或返回当前 URL 的路径部分。

port

设置或返回当前 URL 的端口号。

protocol

设置或返回当前 URL 的协议。

search

设置或返回从问号 (?) 开始的 URL(查询部分)。



Location 对象方法

属性

描述

assign()

加载新的文档。

reload()

重新加载当前文档。

replace()

用新的文档替换当前文档。



Location 对象描述

Location 对象存储在 Window 对象的 Location 属性中,表示那个窗口中当前显示的文档的 Web 地址。它的href 属性存放的是文档的完整 URL,其他属性则分别描述了 URL 的各个部分。这些属性与 Anchor 对象(或 Area 对象)的 URL 属性非常相似。当一个 Location 对象被转换成字符串,href 属性的值被返回。这意味着你可以使用表达式 location 来替代 location.href。

不过 Anchor 对象表示的是文档中的超链接,Location 对象表示的却是浏览器当前显示的文档的 URL(或位置)。但是 Location 对象所能做的远远不止这些,它还能控制浏览器显示的文档的位置。如果把一个含有 URL 的字符串赋予 Location 对象或它的 href 属性,浏览器就会把新的 URL 所指的文档装载进来,并显示出来。

除了设置 location 或 location.href 用完整的 URL 替换当前的 URL 之外,还可以修改部分 URL,只需要给 Location 对象的其他属性赋值即可。这样做就会创建新的 URL,其中的一部分与原来的 URL 不同,浏览器会将它装载并显示出来。例如,假设设置了Location对象的hash 属性,那么浏览器就会转移到当前文档中的一个指定的位置。同样,如果设置了search 属性,那么浏览器就会重新装载附加了新的查询字符串的 URL。

除了 URL 属性外,Location 对象的 reload() 方法可以重新装载当前文档,replace() 可以装载一个新文档而无须为它创建一个新的历史记录,也就是说,在浏览器的历史列表中,新文档将替换当前文档。

三、DOM对象(document  object  model 文档对象模型)

1.几种常见的js获取DOM对象的方式

①.直接通过id获取【不推荐】
②.document.getElementById()【重要,必须掌握】
③.document.getElementsByTagName() 【会用】
④.document.getElementsByName() 【会用】
⑤.document.getElementsByClassName() 【会用】

上代码:

<!DOCTYPE html>
 <html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="one" class="msg" name="qin">
第一个div
</div>
<div id="two" class="huahua" name="qin">
第二个div
</div>
<div id="three" class="msg" name="qin">
第三个div
</div>
<div id="four" class="huahua">
第四个div
</div>
</body>
<script>
//1.直接用id获取标签对象*/
one.innerHTML="直接用id('one')获取标签对象加入的内容,第一个标签"*/
 // 2.通过getElementById()获取某个标签对象*/
var tag_obj=document.getElementById("two")
tag_obj.textContent="这是用getElementById('two')方法,通过id获取标签对象,第二个标签"
 // 3.通过标签名称直接获取一组标签
var divs=document.getElementsByTagName("div")
console.info(divs)
divs[2].textContent="这个是通过标签名称获取到一组标签列表,并通过下标操作标签。第三个标签"
 // 4.通过name属性获取一组标签对象
var divs=document.getElementsByName("qin")
console.info(divs)
 // 5.通过class获取一组标签对象
var divs=document.getElementsByClassName("huahua")
console.info(divs)
divs[1].textContent="这是通过标签的class属性获取到的一组标签,并通过下标操作某标签"
</script>
 </html>

2. 操作DOM对象的内容

①.innerText【非W3C标准】  (不常用,不能解释HTML标签)
②.textContent【W3C标准】(常用,不能解释HTML标签)
③.innerHTML 【慎用】     (慎用,能解释HTML标签,相似的还有document.write(“内容(HTML代码) ”)方法)
 此方法容易造成XSS攻击 【了解即可】,或者代码注入漏洞,不安全。除非在保证数据来源安全的情况下采用此方法。

3.操作DOM对象的属性

①.DOM对象.属性名称   (name属性用此方法无法获取)
②.DOM对象["属性名称"] (name属性、class属性用此方法无法获取)
③.getAttribute("属性名称")、setAttribute("属性名称","新的属性值")

所以一般Id和title属性可采用第一、二种方法获取,而其他的一般都建议使用第三种方法获取属性或者更改属性的值。

4.操作DOM对象的样式

获取样式的值(有单位)
1、获取行内样式:标签对象.style.样式名称
2、getComputedStyle(标签对象).样式名称 【兼容IE9+】(此方法可获取行内样式、网页样式和外联样式等所有样式)
3、标签对象.currentStyle.样式名称 【低版本IE】

获取样式的数值(无单位,数字)
offsetWidth     (只获取了数字,可方便进行长和宽的计算,计算完毕后需加上“px”,方可生效)
offsetHeight