JavaScript的基本知识
一、在html中的使用
1.1 在页面中直接嵌入JavaScript
1 | <!doctype html> |
执行后会直接弹出框。
1.2 script标签常用的属性和说明
属性 | 说明 |
---|---|
language | 设置所使用的的脚本语言及版本 |
src | 设置一个外部文件的路径位置 |
type | 设置所使用的脚本语言,此属性已经代替language |
defer | 此属性表示当html文档加载完毕之后再执行脚本语言 |
1.3 外部调用
- 使用src调用js文件(外部js文件不需要用括起来)
- 使用函数调用本文档中的script函数如:
1
<input onclick="myjsFun()" />
二、基础
2.1 变量
2.1.1 变量类型
有很多,基本的都有,如果想表达十六进制,则在数据之前加上0x即可。
然而JavaScript是无类型语言,所以,声明变量直接用var即可
2.1.2 未定义值和空值
- 空值(null)不是0也不是空的字符串
- 一个值是空值表示已经赋过值,而未定义(undefined)表示没有赋值,两者不一样。
2.2 运算符和表达式
2.2.1 比较运算符
只挑一些讲
运算符 | 描述 | 示例 |
---|---|---|
== | 等于,只涉及表面值的判断,不涉及数据类型 | “17”==17 return true |
=== | 绝对等于,同时涉及表面值和数据类型的判断 | “17”==17 return false |
注:这个在php中也适用。而不等于分别是!= 和!==
2.2.2 条件运算符
操作数?结果1:结果2
这个跟C++一样啊?
这里来个九九乘法表练习!
1 |
|
三、函数
格式如下:
function 自定义函数名(形参1,形参2…)
{
函数体
}
函数要在script标签中定义,使用的话,直接在html中调用函数名和参数即可,如onclick=”myFun()”。
几种特殊内置的函数:
函数 | 说明 |
---|---|
eval() | 求字符串中表达式的值 |
isFinite() | 判断一个数值是否是无穷大 |
isNaN() | 判断一个数值时都是NaN |
parseInt() | 将字符型转化为整型 |
parseFloat() | 将字符型转化为浮点型 |
encodeURI() | 将字符串转化为有效的URL |
encodeURIComponent() | 将字符串转化为有效的URL组件 |
decodeURI() | 对encodeURI()编码的文本进行解码 |
decodeURIComponent() | encodeURIComponent()编码的文本进行解码 |
四、对象编程
4.1 Window对象
4.1.1 属性
属性 | 描述 |
---|---|
document | 对话框中显示的当前文档 |
location | 指定当前文档的url |
name | 对话框名字 |
navigator | 表示浏览器对象,用于获取与浏览器相关的信息 |
这个可以直接调用,如document.write() | |
document.getelementById(‘test’) |
4.1.2 方法
方法 | 描述 |
---|---|
prompt | 弹出一个提示对话框(有输入框) |
alert | 弹出一个确认框 |
open | 打开URL路径下的文件 |
close | 关闭被引用的对话框 |
navigate(URL) | 在对话框中显示URL下的文件内容 |
4.2 对话框
- prompt(带输入的)对话框
- alert直接提示对话框(仅仅是提示)
- confirm(带确认的)对话框
4.3 history
4.3.1 属性
属性 | 描述 |
---|---|
length | 历史列表长度 |
current | 当前文档URL(这个在火狐没有!?) |
next | 列表中下个URL |
previous | 前一个URL |
4.3.2 方法
方法 | 描述 |
---|---|
back | 回到上一个URL |
forward | 去后一个(下一页)URL |
go | 进入指定页面(go(-1)==back()) |
4.4 Document文档对象
常用方法及实现:
方法 | 描述 |
---|---|
close | 文档的输出流 |
open | 打开一个文档并接收write和writen方法的创建页面内容 |
write | 可以在文档中写入HTML语句或者JavaScript语句 |
writeln | 与write一样,但是以换行符结束 |
createElement | 创建一个HTML标记 |
getElementById | 获取指定id的HTML标记(如果内容多则以元组形式保存,需要用[*]访问) |
4.5 DOM(文档对象模型)
4.5.1 DOM分层
如:
1 | <tr> |
这里面tr是th和input的parentNode,而返过来,input和th是tr的childNode。
而th和input是兄弟节点。
4.5.2 节点属性如下:
属性 | 说明 |
---|---|
nodeName | 节点名称 |
nodeType | 节点的类型 |
nodeValue | 节点的值,通常只应用于文本节点 |
parentNode | 返回当前节点的额父节点 |
childNodes | 子节点列表 |
firstChild | 返回第一个子节点 |
lastChild | 返回最后一个子节点 |
previousSibling | 返回当前节点的前一个兄弟节点 |
nextSibling | …后一个兄弟节点 |
attributes | 元素的属性列表 |
4.5.3 节点操作
操作 | 方法 |
---|---|
创建 | appendChild |
插入追加 | insertBefore(new,ref) new新节点,ref指定在哪个节点后面添加 |
拷贝 | clone(bool) true深拷贝,false浅拷贝 |
删除 | removeChild |
替换 | replaceChild |
4.5.4 DHTML与相应的DOM
- innerText 返回除去标签的文本内容
- innerHTML 返回带有HTML标签的文本内容
五、事件处理
注:如同onclick这种事件我就不多讲啦!
5.1 事件流
就是说一个事件触发后该先交给谁处理,然后再给谁,然后怎么返回。
5.2 DOM事件模型
看图:
还可以用以下程序验证:
1 | <!doctype html> |
5.3 事件对象
当触发DOM上的某个事件时,会产生一个时间的对象。
如键盘信息,鼠标信息等。
如:
1 | var buttonClick=document.getElementById('clickMe') |
其结果如下:
这里,event是自带的。它返回了很多信息!
总结:这差不多就是全部内容了。