JavaScript读书笔记-02

时间:2021-12-08 16:57:32

DOM对象和内置对象

Ø  本章总结了alert()prompt()confirm()与用户交互

Ø  getElementById()选择页面元素

Ø  使用InnerHtml()访问HTML内容

Ø  使用浏览器history()对象

Ø  通过navigator对象获得浏览器信息

Ø  利用Date对象操作日期和时间

与用户交互

Alert()               

Alert()没有返回值,模态对话框,只有一个确定按钮,点击完后程序才能继续

Confirm()

有返回值:真或者假,模态对话框,两个按钮“确定”和取消,点击完才能继续

Prompt()

有返回值,取决于用户进行了什么操作

Var answer = prompt(“what is yourname”,”tom”);

Ø  如果用户输入了信息,然后点击确定或者回车键,返回值就是输入字符串

Ø  没有输入信息,返回值就是调用prompt()方法设置的第二个参数

Ø  如果用户简单关闭了对话框(点击取消或者ESC按键),返回的是null

注:JavaScript 在多种情况下使用null表示空值,作为数值时候,它代表0;作为字符串,它代表空字符串“”,作为布尔值,它代表假

根据id选择元素

       Js可以通过特定唯一id的调用document对象的getElementById()方法,获取到DOM对象

       VarmyDiv = document.getElementById(“id”)

利用innerHTML()可以访问HTML中的内容,是一个字符串

Var myDivContent =myDiv.innerHTML;(“<p>here is getElementById innerHTML</p>”);

利用innerHTML可以设置选定元素内容:

myDiv.innerHTML= “<p>here is anotherinnerHTML content</P>”

访问浏览器历史记录

浏览器历史是保存在window.history对象中,存储的是url列表,可以使用这个列表,但是无法修改。

Forward()backward()是前进和后退,history().next()是下一个页面

History.go(-2)表示回退三个页面

History.go(3)表示前进三个页面

History(“index.com”),找到历史记录列表中第一个匹配的url

Location对象

Location 对象包含当前加载页的URL信息

页面URL组成部分:

[协议]//[主机名][端口]/[路径][搜索][hash]

下面是一个URL范例:

http://www.example.com:8080/tools/display.php?section=435#list

属性

内容

Location.href

http://www.example.com:8080/tools/display.php?section=435#list

Location.protocol

http:

Location.host

www.example.com:8080

Location.hostname

www.example.com

Location.port

8080

Location.pathname

/tools/display.php

Location.search

?section=534

Location.hash

#list

使用location对象导航

利用location对象有两种方式跳转到新的页面

第一种:直接设置对象的href属性

Location.href=’www.newpage.com’;当前页会存储在浏览器历史,通过backward可以返回

第二种是locatoinreplace方法,删除当前页面的历史记录,替换新的页面

Location.replace(‘www.newpage.com’);

刷新页面

如果要在浏览器里面重新加载当前页面,相当于刷新,可以用reload()方法

注:如果使用没有参数的reload()方法,如果浏览器缓存了当前页面内容,会加载缓存的内容,为避免这种情况,确保从服务器读取,在调用reload中加入参数true

Reloadtrue);

浏览器信息:navigator对象

Navigator保存了浏览器程序本身的数据

在浏览器中按F12进入开发者模式,在Console中输入navigator,点击回车,可以查看所有的属性和方法。

日期和时间

Var mydate = new Date();

注:mydate.getMonth()获取的是0~110代表1月,getDay()/getHours()/getMinutes()/getSeconds()一样从0开始

但是getDate()是从1~31

可以查看console下的Date()方法

Math对象简化方法

Math对象不需要创建,它的一些方法如下

ceil(n)

返回n向上取整到最近的整数,4.23 ->5

floor(n)

返回向下取整到最近的整数4.23->4

max(a,b,c,…)

返回最大

min(a,b,c…

返回最小

round(n)

返回n四舍五入到最近的整数

random()

返回0~1之间的随机数

注:在程序里面直接使用Math方法,这些方法是数学与Math的,不是属于创建对象的。换句话说,下面语法是错误的:

VarmyNum = 24.77

myNum.floor()

正确写法:

Math.floor(myNum);

数字常数

很多常用的数学常数都是以Math属性的方式出现

E

自然对数,2.718….

LN2

2的自然对数

LN10

10的自然对数

LOG2E

2e的对数

LOG10E

10为底e的对数

PI

圆周率

SORT1_2

2的平方根倒数

SORT2

2的平方根

使用方法:var area =Math.PI*radius*radius,圆的面积

关键字WITH

       With可以用于所有对象,

With(对象){

 Var myRand= random();

Var biggest = max(2,3,4);

Var height = round76.54

}

注:在这个范例中,我们只使用方法名称就调用了Math.random(),Math.max(),Math.round()等方法,因为调用这些方法的代码块与Math对象实现了关联。