javascript总结文档
执行顺序: js程序会按照再HTML文件种出现的顺序逐行执行,如果需要在整个HTML中执行,最好放在<head></head>中,函数体的代码在被调用的时候才会被执行
区分大小写
JavaScript中换行有断句的意思
分号可有可无,不过为了规范,都写
注释:单行:// 多行:/*。。。*/
使用方法:
1.在页面中直接嵌入javascript代码
2.链接外部JavaScript文件 外部脚本文件不能用<srcipt>包起来,且网页的<script>中不能有其他js代码,此时</script>不能省略
3.作为特定标签的属性值使用 (1)通过"javascript:"来调用js的函数或方法: <a href="javascript:alert(您单击了这个超链接)">请单击这里</a> 单击链接后会执行alert函数
(2)与事件结合调用:可以与各种像单击鼠标、按下键盘等结合: <input type="button" value="单击按钮" onclick="alert(您单击了这个按钮)"/> 单击后会触发js的方法或函数
PS:可以放在<head>或者<hold>中
<script>标记的常用属性
language="javascript" language属性指定在HTML中使用哪种脚本语言及其版本
src="xxx.js" src属性指定外部脚本文件的路径
type="text/javascript" language属性指定在HTML中使用哪种脚本语言及其版本,HTML4开始,推荐用type代替language
<script defer> 作用是当文档加载完后再执行脚本,加快网页加载速度
JavaScript基础
数据类型为弱类型,数据可以先不做声明,使用或者赋值的时候再确定数据类型。
数字的范围 支持十进制和十六进制,不是所有JavaScript都支持八进制,所有最好不要用八进制,
浮点型 采用的是传统的科学计数语法, 例:3.12e11=3.12*10的11次方 1.23E-12=1.23*10的-12次方
单引号中出现双引号或者双引号中出现单引号,都不需要进行转义;单引号中的单引号和双引号中的双引号都需要进行转义
转义字符: 常用: \b 退格 \v 跳格
\n 换行 \r 换行
\t Tab符号 \\ 反斜杠
\f 换页 \OOO 八进制整数,范围:000-777
\' 单引号 \xHH 十六进制整数,范围为:00-FF
\" 双引号 \uhhhh 十六进制编码的Unicode
在"document.writeln("");"使用转义符时,只有将其放在格式化文本中才会起作用,必须放在<pre></pre>中,例如
document.writeln("<pre>");
document.writeln("轻松学习\nJavaScript 语言!");
document.writenln("</pre>");
未定义值 未定义类型的变量是undefined,表示变量还没有赋值(如:var a;),或者赋予一个不存在属性值
NaN,非数字,若计算错误后,产生一个没有意义的数字,返回的数字值就是NaN
空值 null,表示空值
常量 const
常量名:数据类型=值;
变量 声明 :var a;(值为undefined)
:var a=1;
:var a,b,c;
作用域: 若声明在函数外,在整个程序有效,程序结束,变量才失效,为全局变量;若在函数内,则函数解释,该变量的生存期就结束了,为局部变量
比较运算符 不介绍常用的了 值都是布尔型true false
== 等于,值根据表面值进行判断,不涉及数据类型
=== 绝对等于,根据表面和数据类型同时判断
!= 同上
赋值运算
a+=b ——> a=a+b;
a*=b 同上
字符运算
+ 连接两个字符串
+= 连接两个字符串并且赋值给前面一个
逻辑运算符
&& 逻辑与
|| 逻辑或
! 逻辑非 如:!a
位操作运算符 & 与运算符 << 左移
| 或运算符 >> 右移
^ 异或运算符 >>> 填零右移 PS:运算前,先对操作数转换位32位的二进制数,再进行相关运算,结果用十进制数表示
~ 非运算符
typeof运算符 如:typeof a 值为:a的数据类型 (把类型信息以字符串返回)
new运算符 new constructor[(arguments)] (cons为必填,argument为选填 )
例: Object1 = new Object;
Array1 = new Array();
Date3 = new Date("August 8 2016")
运算符优先级 查表
数据类型的换行 查表
流程控制 跟c语言一样
函数
语法: function 函数名(参数1,参数2.。。){ ... return(可有可无) } 以function开头,return返回值
调用 简单调用 使用时在直接在body中写 函数名("参数","参数","参数");
通过超链接调用 <a href="javascript:函数名();">链接名字</a>
事件响应中 <input type="button" onclick="函数名()">
嵌套函数: 一个函数里面有另一个函数 优点:内部函数可以直接使用外部函数的的参数和全局变量;缺点:程序可读性降低
递归函数: 函数自身调用自身函数,常用于处理阶乘问题,递归容易陷入死循环,得小心
JS中的内置函数
eval() 求字符串中的表达式的值
isFinite() 判断一个数值是否为无穷大 (若为无穷大则返回true)
isNaN() 判断一个数值是否为NaN (若参数为NaN,则返回true,否则为false)
parseInt() 将字符型转换为整型 (若字符串开头不是数字,则返回NaN)
parseFloat() 将字符型转换为浮点型 同上
encodeURI(url) 将字符串转换为有效的URL (用于返回一个URI字符串编码后的结果)
encodeURIComponent() 将字符串转换为有效的URL组件
decodeURI() 对encodeURL()编码的文本进行解码 (将已编码为URI的字符串解码成最初的字符串并返回,是encodeURI的逆向操作)
decodeURIComponent() 对encodeURLComponent()编码的文本进行解码
Function()构造函数与函数直接量----->>>不咋明白
对象与数组
对象为动态对象和静态对象,需要用new来使用的动态对象,可以用"对象实例名.成员"来访问 类似java;静态的不需要用new创建对象实例,
只添加于java不一样的知识点:
prototype 属性 Array.prototype.max = array_max(外部定义函数); 则之后就可以用Array.max来直接调用array_max函数,即该属性可以给原来的类添加方法
js固有对象不能被赋予不同的原型,用户定义的对象可以被赋给新的原型
constructor属性 是所有具有prototype的对象的成员,该属性保留了对构造特定对象实例的函数的引用(x = new String(或为其他函数)("Hi"); 即有:x.constructor==String
toLocaleString()方法 返回一个日期,日期使用当前区域设置并已被转换为字符串
toString()方法 返回对象的字符串表示
valueOf()方法 返回对象的原始值
Array 数组的元素被转换位字符串并用","号一个一个连接起来
Boolean 布尔值
Function 函数本身
Number 数字值
object 对象本身
String 字符串值
String对象
创建 var str = new String("字符串")
属性
length 返回字符串的长度
constructor 对当前对象的函数的引用 返回函数本身的代码
prototype 给String加功能
方法 太多了,去看手册把
Date对象 (用于返回各种时间,使用时间,使用时需要实例化)
创建 同上
属性 同上
方法 同上 例如:var newdata = new Date(); document.write(newDate); 返回当前时间 例二:var newdate = new Date(2008,2,2)创建日期
event对象
代表事件状态,鼠标,键盘,鼠标位置等
在ie中使用: window.event 例如:window.event.altLeft 代表做alt键 true代表被按下,false代表没有被按下
window.event.button
值 0 鼠标没有任何键被按下
1 按下左键
2 按下右键
3 同时左右键
4 按下中间键
5 左键和中间
6 右键和中间
7 三键同时按下
button仅用于onmousedown,onmouseup,onmousemove事件;其他事件都返回0;如onclick事件
window.event.clientX 获取当前鼠标在浏览器中的X坐标,只是一个读属性,不能改变鼠标位置
window.event.clientY 同上
event.X 设置或获取鼠标指针位置相对于css属性中有position属性的上级元素的X轴坐标。如果Css属性中没有position属性的上级元素,默认以body为参考对象
event.Y 同上
event.cancelBubble 检测是否被上层元素的事件的控制。如果该属性的值时false,则允许被控制
event.srcElement 设置或获取触发事件的对象 (通过该属性可以读写属于该元素的属性,并调用它的任何方法)
FileSystemObject对象 实现文件操作功能
FileSystemObject 主对象,用来创建、删除、和获得有关信息 ,还可以用来操作驱动器、文件夹和文件的方法和属性
Drive 对象,用来收集驱动器信息的方法和属性
Drives 集合,提供驱动器的列表,这些驱动器实物地或在逻辑上于系统相连接。
File 对象,用来创建、删除、移动文件的方法和属性。也可以用来向系统询问文件名、路径和多种其他属性
Files 集合,提供包含在文件夹内的所有文件的列表
Folder 对象,用来创建、删除、移动文件夹的方法和属性
folders 集合,提供在folder内的所有文件夹的列表
TextStream 对象,用来读写文本文件
动态建立FileSystemObject对象: var fso=new ActiveXObject("Scripting.FileSystemObject"); 实例后就可以对以上的对象和集合进行操作
方法:
GetAbsolutePathName(参数) 根据提供的路径返回完整的路径
参数 "c:" 返回当前的完整路径
"c:.." 返回当前路径的上一级路径
"c:\\" 返回当前路径根目录
"c:*.*\\myfile" 返回当前路径后加上"\*.*\myfile"
"myfile" 在当前路径后加上"\myfile"
"c:\\..\\..\\myfile" 返回当前路径以myfile文件名为结尾
GetBaseName(path) 以字符串的形式返回指定路径中最后成分的基本名称,不包括文件扩展名(获取路径中的最后的根文件的名字)
GetDriveName(path) 根据指定路径返回包含驱动器名称的字符串
GetDrive(path) 返回路径里面的驱动器对象(会以大写字母表示)
GetExtensionName(path) 返回路径最后成分扩展名
GetFileName(path) 返回路径的最后成分,包含扩展名
GetParentFolderName() 返回最后成分的父文件夹名称的字符串
GetSpecialFolder() 返回指定的特殊文件夹对象
WindowsFolder 0 Windows文件夹,包含了由Windows操作系统安装的文件
SystemFolder 1 包含库、字体、已经设备驱动程序的System文件夹
TemporaryFolder 2 用于存储临时文件的Temp文件夹。这个路径可以在TMP环境变量中找到
GetTempName() 返回一个随机产生的临时文件或文件夹名,有助于执行那些需要临时文件或文件夹的操作
Drive对象
建立对象: var fso=new ActiveXObject("Scripting.FileSystemObject"); var s= fso.GetDrive("C:\\");
属性:
FreeSpace 向用户返回指定驱动器的可用空间大小
IsReady 判读驱动器是否可用,则返回true
TotalSize 返回驱动器或网络共享空间的总大小
DriveType 返回一个值,表示所指定驱动器的类型
SerialNumber 返回连续十进制数字,用于唯一标识磁盘卷
AvailableSpace 返回驱动器或网络共享上的可用空间,与FreeSpace的返回值时一样的,但对于支持quotas的两个计算机系统的返回值可能会不同
FileSystem 返回该驱动器使用的文件夹系统类型
Path 返回指定文件、文件夹、或驱动器的路径,
RootFolder 返回一个folder对象,表示指定驱动器的根文件夹。只读
ShareName 返回指定驱动器的网络共享名
VolumeName 返回或设置指定驱动器的卷名。读/写
File对象
建立对象: 同上,var s = fso.GetFile(filespec); filespec:指定文件的路径(文件地址,给出以便对其进行操作)
方法:
Copy(目标位置); 复制指定文件或文件夹到另一个地方
Delete(force); force选填;true:删除设置了只读属性的文件或文件夹,
Move(目标位置) 转移位置
OpenAsTextStream(iomode,format) 打开指定的文件并返回一个TextStream对象,可用通过该对象对文件进行读写或者追加;iomode:选填,知名输入输出模式;format:选填,指明打开文件的格式
iomode:
ForReading 1 以只读方式打开文件,不能写
ForWritng 2 以写方式打开文件,如果存在同名文件,那么它以前的内容将被覆盖
ForAppending 8 打开文件并从文件末尾开始写
format
TristateUseDefault -2 使用系统默认值打开文件
TristateTrue -1 以Unicode方式打开文件
TristateFalse 0 以ASCII方式打开文件
属性
Attributes[=参数] 设置或返回文件或文件夹的属性,根据不同属性为读/写或只读
Normal 0 普通文件,不设置属性
ReadOnly 1 只读文件,属性为读/写
Hidden 2 隐藏文件,属性文读/写
System 4 系统文件,属性文读/写
Volume 8 磁盘驱动器卷标,属性为只读
Directory 16 文件夹或目录,属性为只读
Archive 32 文件在上次备份后已经修改,属性为读/写
Alias 64 超链接或者宽街方式,属性为只读
Compressed 128 压缩文件,属性为只读
DateCreated 返回指定文件或文件夹的创建日期和事件
DateAccessed 返回最后访问日期和时间
DateLastModified 返回最后修改日期或时间
Name[=newname] 设置或修改文件或文件夹的名称
Size 以字节为单位返回指定文件或文件夹的大小
Type 返回关于文件或文件夹类型的信息
ShortName 返回短名称
Drive 返回指定文件或文件夹的驱动器号,只读
ParentFolder 返回指定文件的父文件夹对象,只读
Path 返回指定文件、文件夹、驱动器的路径
Folder对象 可以获取服务器端指定文件夹的相关属性
创建 同上:var a = fso.GetFolder(filespec)
方法: 与File类似
属性
Files 返回一个Files集合,由指定文件夹中包含所有File对象组成,包括设置了隐藏和系统属性的文件
IsRootFoleer 判断当前文件夹是否为根文件夹,如果是根文件夹,就返回true
对象访问语句
for..in 用来遍历对象的每一个属性,每次都将属性名作为字符串保存在变量里面
例:for(变量名 in 对象名){ statement。。。}
with 被用于在访问一个对象的属性或方法时避免重复使用指定对象引用
例:with(对象){statement(里面直接写方法和属性,如toString();不用对象.toString();)}
数组 可以看成一个单行表格,每个单元格都可以存储一个元素
语法: array1 = new Array();
array1 = new Array([size])
array1 = new Array(列举出所有元素) 不需要都是同种类型的元素
· Array的输入输出 基本根java一样 特例:document.write(array1) 能输出所有数组元素值;
属性:
length 得到数组长度
prototype 给数组添加新属性或方法
方法:
concat() 连接两个或者更多数组,并返回结果 array1.concat(array2,array3,...)把其他数组接到当前数组的末尾
pop() 删除并返回数组的最后一个元素值
push() 像数组末尾添加一个或多个元素,并返回长度
shift() 删除并返回数组的第一个元素
splice() 删除元素,并向数组添加新元素
unshift() 向数组的开头添加一个或多个元素,并返回新的长度
reverse() 颠倒数组中元素的顺序
sort() 对数组的元素进行排序,从小到大
slice() 从某个已有的数组返回选定的元素 array1.slice([start,end))前闭区间,后面开区间,若只有start,则一直选定到最后一个元素
toSource() 代表对象的代码源
toString() 把数组转换为字符串,并返回结果 (变成字符串,用逗号分隔开)
toLocateString() 把数组转换为本地字符串,并返回结果(同上,分隔符为地区特有的)
join(“分隔符”) 把数组的所有元素放进一个字符串。元素通过特定的分隔符进行分隔
valueOf() 返回数组对象的初始值