雷哥带你走进Javascript

javascript复习笔记
--------------------------------------------
1.概念
2.面向对象思想
3.作用认识
4.引入方式
5.执行顺序

变量
1)声明方式
x=10
用 var声明(可以省略)
2) 变量的命名规则
a、不能以数字开头
b、不能是系统中关键字 [如if switch var 等]
c、区分大小写
d、不能以标点符号开头


注释:
单行://
多行:/* */

消息框:
1)alert()
2)confirm()
3)prompt()

变量的数据类型(10种)
首先引入查看数据类型的函数
a=10;
typeof(a),a其本身返回的是string类型

1.字符串
2.数字
3.浮点
4.数组
5.对象
6.布尔型
7.null
8.undefined
9.NaN
10.json

global对象
数据类型的转换
1)转换成数字
Number();
2)转抱成字符串
String()
4)转换成数字
parseInt()
5)转换成浮点数
parseFloat()
6)转换成布尔型
Boolean()
7)转换成对象
8)Object()
9)eval()

 


确定元素的位置
1.document.getElementById()
2.document.getElementsByTagName();
3.document.getElemnetsByName();

运算符
1)in
2)new
3)++,--
4)arr instanceof Array
arr=new Array(3,4,5);
if(arr instanceof Array){
alert("yes");
}else{
alert("no");
}


json字符串转成json对象
eval("("+"{'name':'zhilei','age':'10'}"+")")

 


流程控制
1.if(){}
2.while(){}
3.switch(){}
4.for
5.forin

函数
1)声明
2)参数
3)返回值


对象篇
1)Array
2)Boolean
3)Date
4)Math
5)String
6)RegExp
7)Functions
8)Events
9)定时器与超时器对象
setInterval();
clearInterval()
超时器
setTimeout()
clearTimeout();

1.数组对象
属性:
length, instanceOf Array;
方法:
1).concat()
2).join()
3).push()
4).pop()
5).reverse()
6).shift()
7).slice()
8).sort()
9).splice()
10).toSource()
11).toString()
12).toLocaleString()(x)忽略
13).unshift()
14)filter()


总结:将数组转换成字符串的方法
arr.join();
arr.toString();

2.布尔对象
new Boolean();
假值有哪些:(七种值)
1)0,false,undefined,NaN,"",null

3.日期对象
new Date();
1)实例化日期对象
time=new Date()

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

3)从 Date 对象返回月份 (0 ~ 11)。
time.getMonth() ps日常使用的时候要加1

4)从 Date 对象以四位数字返回年份。
time.getFullYear();
time.getYear() 这个已经不用了

5)返回 Date 对象的小时 (0 ~ 23)。
time.getHours();

6)返回 Date 对象的分钟 (0 ~ 59)。
time.getMinutes()

7)返回 Date 对象的毫秒(0 ~ 999)。
time.getSeconds()

8)返回 Date 对象的毫秒(0 ~ 999) 秒单词要小写
time.getMilliseconds()

9)从 Date 对象返回一周中的某一天 (0 ~ 6)。
time.getDay();

4.数学对象 (直接是一个对象,不需要实例化)
常用的属性:[数学对象的属性都是大写的]
1)E
2)PI

常用的方法:
2)进一值
ceil()
3)舍一
floor()
4)取两个值最大值
max(3,5)
5)取最小值
min(4,5)
6)返回0-1的随机数
random( )


5.number对象
1)Number 对象是原始数值的包装对象。
2)Number()
3)当Number() 和运算符 new 一起作为构造函数使用时,它返回一个新创建的 Number 对象。如果不用 new 运算符,把 Number() 作为一个函数来调用,它将把自己的参数转换成一个原始的数值,并且返回这个值(如果转换失败,则返回 NaN)。

属性:
返回最大值
Number.MAX_VALUE

返回最小值
Number.Min_VALUE

返回并不一个数字
Number.NaN

判断一个数是不是一个数字
isNaN()

方法:
1)将数字转换为字符串
toString()
例:
<script>
var num=10;
var aa=Number.toString(num);
alert(typeof(aa));
</script>

2)把数字转换为字符串,结果的小数点后有指定位数的数字。
tofixed

例子:将数据对象转为字符串,并指定小数保留1位
<script type="text/javascript">
var num = new Number(13.37);
document.write (num.toFixed(1)) //代表小数保留一位
</script>


6.字符串对象
声明字符串对象就是声明一个字符串的变量
new String("aaa")="aaaaaa";
1.如果有new的话,则会成一个新的字符串来处理字符串
2.如果没有的话,则会转换数据类型

属性:
字符串的长度
length

方法:
1)创建锚点
anchor()
var str="hello";
document.write(str.anchor("test"));
// 说白了这个功能就是将字符串作为a链接的innerHTML而anchor()括号时面的值就是a链接的name值

2)用大号字体显示字符串。
big();
var str="hello";
document.write(str.big());

3)显示闪动的字符串
str.blink();
本质就是给字符串加标签<blink>str</blink>

4)显示粗体
str.bold();

5)返回查指定位置的字符(指针从零开始)
str.charAt(3);

6)返回字符串指定位置的unicode编码
str.charCodeAt();

7)字符串连接
str.concat();

8)以打印机文本显示字符串
str.fixed();

9)给字符串加指定的颜色 (注意:全小写)
str.fontcolor();
相当于<font color="#f00">hello</font>

10)给字符串指定大小
str.small();
操作后字符中加了标签<small>hello</small>

11)索引字符串
说明:返回的一个索引下标
str.indexOf("索引值","从哪里开始")

12)将字符串转为斜体
str.italics();
结果在这个字符串上面加一个标签<i>str</i>

13)将字符串显示为链接
在这个字符串上面加<a href="undefined">hello</a>

14)用本地的顺序来比较字符串
str.localeCompare(target)

16)显示小字体
str.small()

7)字符串分割
str.split('',num);

18)将字符串显示为下标
str.sub(); 其实就是加一个标签<sub>hello world</sub>

19)从起始索引提出字符串中指字数止的字符
str.substring();
str.slice();

20)大小写转换
1)全转换大写
toUpperCase()
2)全转为小写
toLowerCase()
21.转换成字符串
toString()=String("");

正则处理字符串
1)匹配
match()
2)查找
search()
3)替换
replace()

7正则对象(RegExp)
功能:处理字符串
1)创建正则对象语法
new RegExp(pattern,attributes)
转义符:\

0)常用原子
.
\w与\W包含数字,字母与下划线
\d与\D
\s与\S
\b与\B
\0
\n
\f
\r
\v
[abc]
[a-zA-Z]
[^a]
[0-9]


1)常用元字符
+
*
?
{x}
{x,y}
{x,}
n^
n$

2)模式修正符
i :忽略大小写
m :执行多行匹配
g :执行全局匹配

()用法

支持正则表达式字符串对象的方法:
返回第一个与 regexp 相匹配的子串的起始位置
search()
1)查找符合规则的第一个项的下标
2)返回的是一个数字

match()
1)返回值
1)如果是用字符串作为直接查找的内容的话,则会返回一个字符串,且是符合的第一个.
2)如果用正则查找的话,而没有加"g" 全局标志的话,则也会返回符合正则的第一个字符串.
3)如果用正则查找且用全局模式"g" 则会返回一个字符串的数组.

replace()
1)返回一个新的字符串
2)如果不加全局替换的话则会替换查找到的第一个
3)可用字符串来查找
4)也可用正则来查找
5)也是复制性的操作,并不会将原来的字符串给更改


split()
[这个只是复制性操作,并不非改变原字符串,且分割后是一个数组对象]
1)可以直接用字符串分割,如果给一个""空的字符串,则会将每一个字母都分开
2)也可用正则来分割
3)也可用有第二个参数就是显示的个数

实例:
1)url匹配
2)mail匹配

8)函数对象其实就是global对象
全局对象与函数可用于所有的内建javascript对象
顶层函数(全局函数)
1)将js字符串作为脚本来执行[相当于去掉string外面的单双引号]
eval()
如果没有表达式的话则要加上()相当于表达式

2)isNaN()

3)Number()

4)String()

5)parseFloat()

6)parseInt()

顶层属性
1)NaN
2)undefined


9事件句柄或者是事件对象

1)焦点事件
onblur
onfocus

2)页面加载事件
1.onload(事件会在页面或者是图片加载完成后立即执行)
支持标签:<body>, <frame>, <frameset>, <iframe>, <img>, <link>, <script>
支持该事件JavaScript: 对象:
image, layer, window
例子:
onload 当页面加载完成的时候执行相应的代码
document.body.onload=function(){
alert("aa");
}
ununload支持标签
unbeforeunload
1.body
2.frameset

onbeforeunload实例:
document.getElementById("body").onbeforeunload=function(){
return confirm('你确认要离开这个页面?')
}

1.onresize 当浏览器大小发生改变的时候执行的动作
2.onscroll

对象内容发生改变
onchange
事件是没有()的

3)键盘事件
onkeydown
onkeypress


4)鼠标事件
1.onmousedown (鼠标按下)
2.onmousemove (鼠标移动)
3.onmouseout (现在改用mouseleave,能实现绝对离开)
4.onmouseover (现在改用mouseenter)
5.onmouseup (鼠标抬起事件)
6.onclick (点击一个操作对象)
7.ondblclick (并不常用)

5)表单事件
->直接操作表单对象
onreset
onsubmit

->操作表单内input,textarea对象
onselect
1.(支持事件的html标签 input textarea)
2.支持该事件的js对象是window


事件对象方法:
1.focus()
2.blur
3.select()
4.submit()
5.reset()
6.click

阻止标签默认的方法
a标签
form表单

DOM对象:
event事件监听器对象:
属性:
关于鼠标:
1)获取发生鼠标事件时候相对于浏览器的位置
event.clientY,event.clientX
2)判断鼠标哪个键被点击
0左 1中 2右
3)相对于屏幕鼠标的位置
screenX screenY

关于键盘:
1)返回键被按下后的unicode码 ps这值并不包含shift alt 等键
event.keyCode
2)判断一此keyCode没有返回码的
1.evnet.shiftKey
2.altKey
3.ctrlKey
4.metaKey[苹果专有]
5.relatedTarget [只有onmouseover 与onmouseout 能用本身功能并不大]

----------------------------------------------------------
浏览器对象(BOM):
功能:让js有操作窗口的能力,其是最外层的对象,只不过可以省略而已。

一.window对象
二.Navigator
三.Screen
四.History
五.Location

===========================
1.window对象[窗口对象只有打开的时候才会产生一个对象]

Window 对象表示浏览器中打开的窗口。
如果文档包含框架(<frame> 或 <iframe> 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。

属性:
1)获取浏览器的高度与宽度
a.对于Internet Explorer、Chrome、Firefox、Opera 以及 Safari:
获取窗口的高
window.innerHeigiht
获取窗口的宽
window.innerWidth

对于Internet Explorer 8、7、6、5:
# window.document.documentElement.clientHeight
# window.document.documentElement.clientWidth
# document.body.clientWidth;
# document.body.clientHeight;
# 如果要用的话 ,我们则要选择第一种 最为方便,且最符合现在的浏览器标准

页面中三个关键高度
1.滚动出去的高度
document.documentElement.scrollTop
2.浏览器的大小(除了上下的菜单栏部分)
1).window.innerHeight,window.innerWidth
2).document.documentElement.clientWidth/clientHeight
3).谷歌的话则要用document.body.clientWidth/clientHeight
3.页面文档的总高度,屏幕总高度
document.documentElement.scrollHeight

2)判断窗口是否已经关闭
closed
3)frmaes,top
4)innerHiehgt
5)innerWidth

只读引用的属性:
1)document
2)navigator
3)history
4)location
5)screen

方法:
1)定时与超时器(返回一个对象)
setInterval()
clearInterval()
setTimeout()
clearTimeout()
2)消息框
alert()
confirm()
prompt()

Navigator对象:
属性:
userAgent

历史对象:
属性:length

方法:
1.back()=go(-1);
2.go()
3.forward()

screen屏幕对象:
属性:
width
height
availWidth
availHeight

location对象:
属性:
1)bash
2)host
3)hostname
4)href
location.href="http://www.baidu.com"=location="http://www.jd.com";
5)pathname
6)port
7)protocal
8)search

方法:(三个方法的功能差不多)
1)分配一个新的文档,也会替换当前的文档
assign()

2)重新加载当前文档(也就是刷新)
reload()

3)找一个新的文档来替换当前的文档
replace()

 


-----------------------------------------------------------
文档对象(DOM)
1)Document (document对象)
2)Element (元素对象)
4)Events (事件对象) 事件监听对象

1)document对象的集合:
1.document.forms
2.selectobj.options
3.document.images
4.document.links
5.document.anchors
6.tabojg.rows
7.tabojb.cells

2)非集合的属性:

1.body
2.cookie
3.domain
document.domain=location.host=location.hostname
4.lastModified
5.referrer
6.title
7.URL
document.URl=location.href [两者值是一样的]
方法:
1.getElementById()
2.getElementsByTagName()
3.getElementsByClassName()
4.getElementsByName()
5.document.write();

正规属性与非正规属性:

元素对象:
正规属性 对象可以直接访问
1.id
2.className
3.title
4.style

通过方法来获取或者设置所有的属性包括非正规属性
1.获取
obj.getAttribute() ,如果所有的属性的话getAttributs
2.设置
obj.setAttribute()

常规属性:
1.element.clientHeight
2.element.clientWidth

 

元素对象的js属性:
innerHTML
outerHTML
textContent
tagName

 

ajax对象
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。

1.创建对象
xhr=new XMLHttpRequest
2.常用方法
1)xhr.open("post/get","url","true/false")
说明:第三个参数代码是同步还是异步
2)xhr.send();
说明:发送请求
3)如果发送的是表单的数据的话则发送一个请求的头信息
xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");
4)监听方法:
onreadystatechange=function(){
if(xhr.readyState==4 && xhr.status==200){
obj.innerHTML=xhr.responseText
}
}

2)响应
xhr.reponseText

3)

属性:
xhr.status (200 or其它的)
xhr.readyState(0,1,2,3,4)
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪

posted @ 2018-03-18 16:17  雷神约  阅读(168)  评论(0编辑  收藏  举报