首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

JavaScript学习资料整理

2020-07-28 来源:华拓网
一、 JavaScript基本介绍 ............................................................................................................. 2

1、字符集 ................................................................................................................................ 2 2、 注释 ................................................................................................................................... 2 3、 直接量 ............................................................................................................................... 2 二、 类型、值、函数和变量 ......................................................................................................... 3

1、数据类型 ............................................................................................................................ 3 2、 日期和时间 ....................................................................................................................... 3 3、 转义字符 ........................................................................................................................... 3 4、 字符串的使用 ................................................................................................................... 4 6、输出内容(document.write) ...................................................................................... 5 7、警告(alert 消息对话框) .............................................................................................. 6 8、确认(confirm 消息对话框) ........................................................................................ 6 9、提问(prompt 消息对话框) ........................................................................................ 7 10、打开新窗口(window.open) .................................................................................... 7 11、关闭窗口(window.close) ........................................................................................ 8 12、通过ID获取元素 ............................................................................................................ 8 13、innerHTML 属性 ........................................................................................................... 9 14、改变 HTML 样式 ......................................................................................................... 10 15、显示和隐藏(display属性) ...................................................................................... 11 16、数组 ................................................................................................................................ 12 三、 事件....................................................................................................................................... 13

1、鼠标经过事件(onmouseover) ................................................................................ 13

2、鼠标移开事件(onmouseout) .................................................................................. 14 3、光标聚焦事件(onfocus) ........................................................................................... 15 4、失焦事件(onblur) ...................................................................................................... 16 5、内容选中事件(onselect) .......................................................................................... 17 6、文本框内容改变事件(onchange)............................................................................ 18 7、加载事件(onload) ..................................................................................................... 19 7、卸载事件(onunload) ................................................................................................ 20 四、 内置对象 ............................................................................................................................... 22

1、Date 日期对象 ............................................................................................................... 22 2、提取字符串substring() ................................................................................................. 24 3、Location对象 ................................................................................................................. 25 4、屏幕分辨率的高和宽 ...................................................................................................... 26 5、屏幕可用高和宽度 .......................................................................................................... 26

一、JavaScript基本介绍

1、字符集

区分大小写,即关键字、变量、函数名和所有的标识符都必须采取一致的大小写形式。 2、注释

JavaScript支持两种格式的注释。在行尾”//”之后的文本都会被JavaScript忽略掉。此外,在”/*”和”*/”之间的文本也会当做注释。这种注释可以跨行书写,但不能有嵌套的注释。 3、直接量

指的是程序中直接使用的数据值。比如: 12 //数字 1.2//小数

“hello world” //字符串文本

。。。。。。。。

二、类型、值、函数和变量

1、数据类型

数据类型分为原始类型和对象类型。原

始类型包括数字、字符串和布尔值。JavaScript有两个特殊的原始值:null(空)和underfined(未定义),它们不是数字、字符串和布尔值。

对象是属性的集合,每个属性都由“名/值对”构成。

变量可以被赋予任何类型的值。使用var关键字来声明变量。不在任何函数内声明的变量称作全局变量,它在JavaScript程序中的任何地方都是可见的。在函数内声明的变量具有函数作用域,并且只在函数内可见。

JavaScript预定义了全局变量Infinity和NaN,用来表示正无穷大和非数字值。

2、日期和时间

JavaScript语言核心包括Date()构造函数,用来创建表示日期和时间的对象。 例:

var later = new Date(2011,0,1,17,10,30); //2011年1月1日 当地时间5:10:30pm later.getFullYear() //2011

later.getMonth() //0:从1开始计数的月份 later.getDate() //1:从1开始计数的天数

later.getDay() //5:得到星期几,0代表星期日,5代表星期一 later.getHours() //当地时间17:5pm

later.getUTCHours() //使用UTC表示小时的时间,基于时区

3、转义字符 \\n 换行符 \\v 垂直制表符

\\f 换页符 \\” 双引号

\\’ 撇号或者单引号 \\\\ 反斜线

\\xXX 由两位十六进制书XX指定的Latin-1字符 \ 由四位十六进制书XXXX指定的Unicode字符

4、字符串的使用

5、变量

什么是变量? 从字面上看,变量是可变的量;从编程角度讲,变量是用于存储某种/某

些数值的存储器。我们可以把变量看做一个盒子,为了区分盒子,可以用BOX1,BOX2等名称代表不同盒子,BOX1就是盒子的名字(也就是变量的名字)。变量是无所不能的容器,你可以把任何东西存储在变量里,如数值、字符串、布尔值等。

定义变量使用关键字var,语法如下: var 变量名

变量名可以任意取名,但要遵循命名规则:

1.变量必须使用字母、下划线(_)或者美元符($)开始。

2.然后可以使用任意多个英文字母、数字、下划线(_)或者美元符($)组成。 3.不能使用JavaScript关键词与JavaScript保留字。

变量要先声明再赋值,如下: var mychar;

mychar=\"javascript\"; var mynum = 6; 变量可以重复赋值,如下:

var mychar; 注意:

1. 在JS中区分大小写,如变量mychar与myChar是不一样的,表示是两个变量。 2. 变量虽然也可以不声明,直接使用,但不规范,需要先声明,后使用。

mychar=\"javascript\"; mychar=\"hello\";

6、输出内容(document.write)

document.write() 可用于直接向 HTML 输出流写内容。简单的说就是直接在网页中输

出内容。

第一种:输出内容用“”括起,直接输出\"\"号内的内容。

第二种:通过变量,输出内容

第三种:输出多项内容,内容之间用+号连接。

第四种:输出HTML标签,并起作用,标签使用“”括起来。

7、警告(alert 消息对话框)

我们在访问网站的时候,有时会突然弹出一个小窗口,上面写着一段提示信息文字。如

果你不点击“确定”,就不能对网页做任何操作,这个小窗口就是使用alert实现的。 alert输出内容,可以是字符串或变量,与document.write 相似。 语法:

alert(字符串或变量);

8、确认(confirm 消息对话框)

confirm 消息对话框通常用于允许用户做选择的动作,如:“你对吗?”等。弹出对话框(包括一个确定按钮和一个取消按钮)。 语法:

confirm(str); 参数说明:

str:在消息对话框中要显示的文本返回值: Boolean值 返回值:

当用户点击\"确定\"按钮时,返回true 当用户点击\"取消\"按钮时,返回false

注: 通过返回值可以判断用户点击了什么按钮

9、提问(prompt 消息对话框)

prompt弹出消息对话框,通常用于询问一些需要与用户交互的信息。弹出消息对话框(包含一个确定按钮、取消按钮与一个文本输入框)。

语法:

prompt(str1, str2);

参数说明:

str1: 要显示在消息对话框中的文本,不可修改 str2:文本框中的内容,可以修改

返回值:

1. 点击确定按钮,文本框中的内容将作为函数返回值 2. 点击取消按钮,将返回null

10、打开新窗口(window.open)

open() 方法可以查找一个已经存在或者新建的浏览器窗口。

语法:

window.open([URL], [窗口名称], [参数字符串])

参数说明:

URL:可选参数,在窗口中要显示网页的网址或路径。如果省略这个参数,或者它的值是空字符串,那么窗口就不显示任何文档。窗口名称:可选参数,被打开窗口的名称。 1.该名称由字母、数字和下划线字符组成。

2.\"_top\"、\"_blank\"、\"_selft\"具有特殊意义的名称。 _blank:在新窗口显示目标网页 _self:在当前窗口显示目标网页

_top:框架网页中在上部窗口中显示目标网页

3.相同 name 的窗口只能创建一个,要想创建多个窗口则 name 不能相同。 4.name 不能包含有空格。参数字符串:可选参数,设置窗口参数,各参数用逗号隔开。

参数表:

例如:打开http://www.imooc.com网站,大小为300px * 200px,无菜单,无工具栏,无状态栏,有滚动条窗口:

注意:运行结果考虑浏览器兼容问题。

11、关闭窗口(window.close)

close()关闭窗口 用法:

window.close(); //关闭本窗口 或

<窗口对象>.close(); //关闭指定的窗口

例如:关闭新建的窗口。

注意:上面代码在打开新窗口的同时,关闭该窗口,看不到被打开的窗口。

12、通过ID获取元素

学过HTML/CSS样式,都知道,网页由标签将信息组织起来,而标签的id属性值是唯

一的,就像是每人有一个身份证号一样,只要通过身份证号就可以找到相对应的人。那么在网页中,我们通过id先找到标签,然后进行操作。 语法:

document.getElementById(“id”)

结果为null或[object HTMLParagraphElement]

若要得到标签中的值,则需要改为:document.getElementById(“id”).innerHTML;

13、innerHTML 属性

innerHTML 属性用于获取或替换 HTML 元素的内容。 语法:

Object.innerHTML。 注意:

1.Object是获取的元素对象,如通过document.getElementById(\"ID\")获取的元素。 2.注意书写,innerHTML区分大小写。

我们通过id=\"con\"获取

元素,并将元素的内容输出和改变元素内容,代码如下:

结果:

14、改变 HTML 样式

HTML DOM 允许 JavaScript 改变 HTML 元素的样式。如何改变 HTML 元素的样式呢? 语法:

Object.style.property=new style;

注意:Object是获取的元素对象,如通过document.getElementById(\"id\")获取的元素。 基本属性表(property):

注意:该表只是一小部分CSS样式属性,其它样式也可以通过该方法设置和修改。 看看下面的代码:

改变

元素的样式,将颜色改为红色,字号改为20,背景颜色改为蓝:

Hello World!

结果:

15、显示和隐藏(display属性)

网页中经常会看到显示和隐藏的效果,可通过display属性来设置。 语法:

Object.style.display = value

注意:Object是获取的元素对象,如通过document.getElementById(\"id\")获取的元素。 value取值:

看看下面代码:

16、数组

JavaScript数组的length属性是可变的。 数组随元素的增加,长度也会改变,如下:

var arr=[98,76,54,56,76]; // 包含5个数值的数组 document.write(arr.length); //显示数组的长度5 arr[15]=34; //增加元素,使用索引为15,赋值为34 alert(arr.length); //显示数组的长度16 二维数组

一维数组,我们看成一组盒子,每个盒子只能放一个内容。 一维数组的表示: myarray[ ]

二维数组,我们看成一组盒子,不过每个盒子里还可以放多个盒子。 二维数组的表示: myarray[ ][ ]

注意: 二维数组的两个维度的索引值也是从0开始,两个维度的最后一个索引值为长度-1。 1)二维数组的定义方法一

var myarr=new Array(); //先声明一维

for(var i=0;i<2;i++){ //一维长度为2 myarr[i]=new Array(); //再声明二维 for(var j=0;j<3;j++){ //二维长度为3

myarr[i][j]=i+j; // 赋值,每个数组元素的值为i+j } }

注意: 关于for 循环语句,请看第四章4-5 。 将上面二维数组,用表格的方式表示:

2)二维数组的定义方法二

var Myarr = [[0 , 1 , 2 ],[1 , 2 , 3, ]]

3)赋值

myarr[0][1]=5; //将5的值传入到数组中,覆盖原有值。 说明: myarr[0][1] ,0 表示表的行,1表示表的列。

三、事件

1、鼠标经过事件(onmouseover)

鼠标经过事件,当鼠标移到一个对象上时,该对象就触发onmouseover事件,并执行onmouseover事件调用的程序。

现实鼠标经过\"确定\"按钮时,触发onmouseover事件,调用函数info(),弹出消息框,代码如下:

运行结果:

2、鼠标移开事件(onmouseout)

鼠标移开事件,当鼠标移开当前对象时,执行onmouseout调用的程序。

当把鼠标移动到\"登录\"按钮上,然后再移开时,触发onmouseout事件,调用函数message(),代码如下:

运行结果:

3、光标聚焦事件(onfocus)

当网页中的对象获得聚点时,执行onfocus调用的程序就会被执行。

如下代码, 当将光标移到文本框内时,即焦点在文本框内,触发onfocus 事件,并调用函数message()。

onfocus 是元素『获取焦点事件』. 光标停留只能触发 mouseover『鼠标移入事件』, 并不能触发『获取焦点事』, 首先, 有『获取焦点事件』的元素有 a, input , button 等. 并不是所有的元素都有这个事件;其次, 触发这个事件的动作不仅仅是鼠标点击. 还包括 tab 键切换等动作.

运行结果:

4、失焦事件(onblur)

onblur事件与onfocus是相对事件,当光标离开当前获得聚焦对象的时候,触发onblur事件,同时执行被调用的程序。

如下代码, 网页中有用户和密码两个文本框。当前光标在用户文本框内时(即焦点在文本框),在光标离开该文本框后(即失焦时),触发onblur事件,并调用函数message()。

运行结果:

5、内容选中事件(onselect)

选中事件,当文本框或者文本域中的文字被选中时,触发onselect事件,同时调用的程序就会被执行。

如下代码,当选中用户文本框内的文字时,触发onselect 事件,并调用函数message()。

运行结果:

6、文本框内容改变事件(onchange)

通过改变文本框的内容来触发onchange事件,同时执行被调用的程序。

如下代码,当用户将文本框内的文字改变后,失去聚焦(点击鼠标按钮),弹出对话框“您改变了文本内容!”。

运行结果:

对比:

要文本改变就立即弹出对话框就要用onkeydown事件。这个onchange按我的理解准确的说是指文本域内容发生改变后才触发的。你在输入时,文本域是“正在改变中”,办法完毕blur后才算是改变后。

7、加载事件(onload)

事件会在页面加载完成后,立即发生,同时执行被调用的程序。 注意:1. 加载页面时,触发onload事件,事件写在标签内。 2. 此节的加载页面,可理解为打开一个新页面时。

如下代码,当加载一个新页面时,弹出对话框“加载中,请稍等…”。

运行结果:

7、卸载事件(onunload)

当用户退出页面时(页面关闭、页面刷新等),触发onUnload事件,同时执行被调用的程序。

注意:不同浏览器对onunload事件支持不同。

如下代码,当退出页面时,弹出对话框“您确定离开该网页吗?”。

运行结果:(IE浏览器)

编程练习:

事件





四、内置对象、DOM对象

1、Date 日期对象

日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒)。 定义一个时间对象 :

var Udate=new Date();

注意:使用关键字new,Date()的首字母必须大写。

使 Udate 成为日期对象,并且已有初始值:当前时间(当前电脑系统时间)。 如果要自定义初始值,可以用以下方法:

var d = new Date(2012, 10, 1); //2012年10月1日 var d = new Date('Oct 1, 2012'); //2012年10月1日 我们最好使用下面介绍的“方法”来严格定义时间。 访问方法语法:“<日期对象>.<方法>” Date对象中处理时间和日期的常用方法:

返回星期方法:

getDay() 返回星期,返回的是0-6的数字,0 表示星期天。如果要返回相对应“星期”,通过数组完成,代码如下:

注意:以上代码是在2014年3月7日,星期五运行。 结果: 5

今天是:星期五

返回/设置时间方法:

get/setTime() 返回/设置时间,单位毫秒数,计算从 1970 年 1 月 1 日零时到日期对象所指的日期的毫秒数。

如果将目前日期对象的时间推迟1小时,代码如下:

结果:

当前时间:Thu Mar 6 11:46:27 UTC+0800 2014 推迟一小时时间:Thu Mar 6 12:46:27 UTC+0800 2014 注意:1. 一小时 60 分,一分 60 秒,一秒 1000 毫秒

2. 时间推迟 1 小时,就是: “x.setTime(x.getTime() + 60 * 60 * 1000);”

2、提取字符串substring()

substring() 方法用于提取字符串中介于两个指定下标之间的字符。 语法:

stringObject.substring(starPos,stopPos)

参数说明:

注意:

1. 返回的内容是从 start开始(包含start位置的字符)到 stop-1 处的所有字符,其长度为 stop 减start。

2. 如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。 3. 如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。 使用 substring() 从字符串中提取字符串,代码如下: 运行结果: JavaScript love

3、Location对象

location用于获取或设置窗体的URL,并且可以用于解析URL。 语法:

location.[属性|方法]

location对象属性图示:

location 对象属性:

location 对象方法:

4、屏幕分辨率的高和宽

window.screen 对象包含有关用户屏幕的信息。 1. screen.height 返回屏幕分辨率的高 2. screen.width 返回屏幕分辨率的宽 注意:

1.单位以像素计。

2. window.screen 对象在编写时可以不使用 window 这个前缀。 我们来获取屏幕的高和宽,代码如下:

5、屏幕可用高和宽度

1. screen.availWidth 属性返回访问者屏幕的宽度,以像素计,减去界面特性,比如任务栏。

2. screen.availHeight 属性返回访问者屏幕的高度,以像素计,减去界面特性,比如任务栏。 注意:

不同系统的任务栏默认高度不一样,及任务栏的位置可在屏幕上下左右任何位置,所以有可能可用宽度和高度不一样。

我们来获取屏幕的可用高和宽度,代码如下:

注意:根据屏幕的不同显示值不同。

6、getElementsByName()方法

返回带有指定名称的节点对象的集合。 语法:

document.getElementsByName(name)

与getElementById() 方法不同的是,通过元素的 name 属性查询元素,而不是通过 id 属性。 注意:

1. 因为文档中的 name 属性可能不唯一,所有 getElementsByName() 方法返回的是元素的数组,而不是一个元素。

2. 和数组类似也有length属性,可以和访问数组一样的方法来访问,从0开始。 看看下面的代码:

运行结果:

7、getElementByID,getElementsByName,getElementsByTagName

以人来举例说明,人有能标识身份的身份证,有姓名,有类别(大人、小孩、老人)等。

1. ID 是一个人的身份证号码,是唯一的。所以通过getElementById获取的是指定的一个人。 2. Name 是他的名字,可以重复。所以通过getElementsByName获取名字相同的人集合。

3. TagName可看似某类,getElementsByTagName获取相同类的人集合。如获取小孩这类人,getElementsByTagName(\"小孩\")。 把上面的例子转换到HTML中,如下:

音乐 input标签就像人的类别。 name属性就像人的姓名。 id属性就像人的身份证。 方法总结如下:

注意:方法区分大小写

通过下面的例子(6个name=\"hobby\"的复选项,两个按钮)来区分三种方法的不同: 音乐 登山 游泳 阅读 打球 跑步

1. document.getElementsByTagName(\"input\"),结果为获取所有标签为input的元素,共8个。 2. document.getElementsByName(\"hobby\"),结果为获取属性name=\"hobby\"的元素,共6个。 3. document.getElementById(\"hobby6\"),结果为获取属性id=\"hobby6\"的元素,只有一个,\"跑步\"这个复选项。 例:

无标题文档

请选择你爱好:

音乐 登山 游泳 阅读 打球 跑步

请输入您要选择爱好的序号,序号为1-6:

8、getAttribute()方法

通过元素节点的属性名称获取属性的值。 语法:

elementNode.getAttribute(name) 说明:

1. elementNode:使用getElementById()、getElementsByTagName()等方法,获取到的元素节点。 2. name:要想查询的元素节点的属性名字 看看下面的代码,获取h1标签的属性值:

运行结果:

h1标签的ID :alink

h1标签的title :getAttribute()获取标签的属值

9、节点属性

在文档对象模型 (DOM) 中,每个节点都是一个对象。DOM 节点有三个重要的属性 : 1. nodeName : 节点的名称 2. nodeValue :节点的值 3. nodeType :节点的类型

1)、nodeName 属性: 节点的名称,是只读的。 1. 元素节点的 nodeName 与标签名相同 2. 属性节点的 nodeName 是属性的名称 3. 文本节点的 nodeName 永远是 #text 4. 文档节点的 nodeName 永远是 #document 2)、nodeValue 属性:节点的值

1. 元素节点的 nodeValue 是 undefined 或 null 2. 文本节点的 nodeValue 是文本自身 3. 属性节点的 nodeValue 是属性的值

3)、nodeType 属性: 节点的类型,是只读的。以下常用的几种结点类型: 元素类型 节点类型 元素 1 属性 2 文本 3 注释 8 文档 9

10、访问父节点parentNode

获取指定节点的父节点 语法:

elementNode.parentNode 注意:父节点只能有一个。

看看下面的例子,获取 P 节点的父节点,代码如下:

parentNode 获取指点节点的父节点

运行结果:

parentNode 获取指点节点的父节点 DIV 访问祖节点:

elementNode.parentNode.parentNode 看看下面的代码:

parentNode

获取指点节点的父节点

运行结果:

parentNode获取指点节点的父节点 DIV

注意: 浏览器兼容问题,chrome、firefox等浏览器标签之间的空白也算是一个文本节点。

11、插入节点appendChild()

在指定节点的最后一个子节点列表之后添加一个新的子节点。 语法:

appendChild(newnode) 参数:

newnode:指定追加的节点。

我们来看看,div标签内创建一个新的 P 标签,代码如下:

运行结果:

HTMLJavaScriptThis is a new p

12、插入节点insertBefore()

insertBefore() 方法可在已有的子节点前插入一个新的子节点。 语法:

insertBefore(newnode,node); 参数:

newnode: 要插入的新节点。 node: 指定此节点前插入节点。

我们在来看看下面代码,在指定节点前插入节点。

运行结果:

This is a new p JavaScript HTML

注意: otest.insertBefore(newnode,node); 也可以改为: otest.insertBefore(newnode,otest.childNodes[0]);

13、删除节点removeChild()

removeChild() 方法从子节点列表中删除某个节点。如删除成功,此方法可返回被删除的节点,如失败,则返回 NULL。 语法:

nodeObject.removeChild(node) 参数:

node :必需,指定需要删除的节点。 我们来看看下面代码,删除子点。

运行结果:

HTML删除节点的内容: javascript

注意: 把删除的子节点赋值给 x,这个子节点不在DOM树中,但是还存在内存中,可通过 x 操作。 如果要完全删除对象,给 x 赋 null 值,代码如下:

14、替换元素节点replaceChild()

replaceChild 实现子节点(对象)的替换。返回被替换对象的引用。 语法:

node.replaceChild (newnode,oldnew ) 参数:

newnode : 必需,用于替换 oldnew 的对象。 oldnew : 必需,被 newnode 替换的对象。 我们来看看下面的代码:

效果: 将文档中的 Java 改为 JavaScript。 注意:

1. 当 oldnode 被替换时,所有与之相关的属性内容都将被移除。 2. newnode 必须先被建立。

15、创建元素节点createElement

createElement()方法可创建元素节点。此方法可返回一个 Element 对象。 语法:

document.createElement(tagName) 参数:

tagName:字符串值,这个字符串用来指明创建元素的类型。

注意:要与appendChild() 或 insertBefore()方法联合使用,将元素显示在页面中。

我们来创建一个按钮,代码如下:

效果:在HTML文档中,创建一个按钮。

我们也可以使用setAttribute来设置属性,代码如下:

效果:在HTML文档中,创建一个文本框,使用setAttribute设置属性值。 当点击这个文本框时,会弹出对话框“This is a text!”。

16、网页尺寸scrollHeight

scrollHeight和scrollWidth,获取网页内容高度和宽度。 一、针对IE、Opera:

scrollHeight 是网页内容实际高度,可以小于 clientHeight。 二、针对NS、FF:

scrollHeight 是网页内容高度,不过最小值是 clientHeight。也就是说网页内容实际高度小于 clientHeight 时,scrollHeight 返回 clientHeight 。 三、浏览器兼容性

var w=document.documentElement.scrollWidth || document.body.scrollWidth;

var h=document.documentElement.scrollHeight || document.body.scrollHeight; 注意:区分大小写

因篇幅问题不能全部显示,请点此查看更多更全内容