赞
踩
一到八章节都是些基础知识,相比较”书籍:javascript+dom编程与艺术.pdf“讲的要细致点。
对它的总结可以看下这里 https://blog.csdn.net/weixin_53370274/article/details/121238740
<a href="javascript:alert('click this link')">click</a>
<button onclick="alert('click')">click</button>
javascript程序按照在html文件中出现的顺序逐行执行。如果需要在整个html文件中执行(如函数、全局变量等),最好将其放在html文件的<head>...</head>
标记中。javascript大小写敏感,与html标签不同。在js中会忽略程序中的空格、换行和制表符,除非这些符号是字符串或正则表达式中的一部分。因此,可以在程序中随意使用这些特殊符号来进行排版,让代码更易阅读理解。js中换行能判断一个语句是否已经结束。
a=100
return false
这表示两个不同的语句。每行结尾的分号(;)可有可无。
注释//及/**/
参考 https://blog.csdn.net/weixin_53370274/article/details/117876538
常量const及变量区分大小写。
— | — | — | — | — | — |
---|---|---|---|---|---|
abstract | continute | finally | instanceof | private | this |
boolean | default | float | int | public | throw |
break | do | for | interface | return | typeof |
type | double | function | long | short | true |
case | else | goto | native | static | var |
catch | extends | implements | new | super | void |
char | false | import | null | switch | while |
class | final | in | package | synchronized | with |
类型 | 转换后的结果 |
---|---|
undefined | NaN |
null | 0 |
逻辑型 | true:1 false:0 |
字符串类型 | 若内容为数字,则结果为相应的数字,否则为NaN |
其他对象 | NaN |
类型 | 转换后的结果 |
---|---|
undefined | false |
null | false |
数值型 | 0或NaN结果为false;否则为true |
字符串类型 | 若长度为0,结果为false;否则为true |
其它对象 | true |
类型 | 转换后的结果 |
---|---|
undefined | “undefined” |
null | “NaN” |
数值型 | Nan 0或与数值相对应的字符串 |
逻辑型 | 若为true,结果为"true";false结果为"false" |
其它对象 | 若存在,其结果为toString()方法的值,否则结果为"undefined" |
都差不多
if else
if elseif else
switch
while
do…while
for
continute
break
function functionname([parameter1,parameter2,...]){
statements;
[return expression;]
}
functionname必选项,parameter1可选项,statements必选项,expression可选项,用于返回函数值。
函数定义后不会自动执行,跟其它语言一样,需要我们在某个地方来调用。函数定义通常放在<head>中,执行通常放在<body>中。
如
<html>
<head>
<script type="text/javascript">
function functionName(parameters){//定义函数
some statments;
}
</script>
</head>
<body>
functionName(parameters);//调用函数
</body>
</html>
function test(){
alert("hello js");
}
<form action="" method="post" name="form1">
<input type="button" value="submit" onclick="test();">
</form>
<a href="javascript:test();">test</a>
<script type="text/javascript">
function getValue(num1,num2){
return (num1+num2)/2;
}
</script>
<body>
document.write(getValue(10,20));
</body>
语法
<script type="text/javascript">
var outer=10;
function functionName(parameter1,parameters2){
function innerFunction(){
somestatments;
}
}
</script>
如
<script type="text/javascript">
var outer=20;
function add(number1,number2){
function innerAdd(){
alter (number1+number2+outer);
}
return innerAdd();
}
</script>
<body>
<script type="text/javascript">
add(10,20);//50
</script>
</body>
<script type="text/javascript">
function functionName(parameers){
var results = somestatements;
return results;
}
</script>
function functionName(parameter1){
functionName(parameters2);
}
function f(num){
if(num<=1)
return 1;
else
return f(num-1)*num;
}
alert(f(10));
parseInt(stingnum,n)如果字符串不是以数字开头,则转换为NaN。
n提供2~36之间的数字表示所保存数字的进制数。这个参数在函数中不是必需的
parseFloat同上。
//屏蔽页面鼠标键盘事件 function maskingKeyBoard(){ if(event.keyCode==8){ event.keyCode=0; event.returnValue=false; alert("当前不允许使用backspace键"); } /* 13 enter 116 f5 ctrl+n event.ctrlKey&&event.keyCode==78 alter+方向键 */ if(event.altKey&&(window.event.keyCode==37 || window.event.keyCode==39)) { event.returnValue=false; } } //鼠标右键单机 function rightKey(){ if(event.keyCode==2) event.returnValue=false; } <body onkeydown="maskingKeyBoard()"> document.onmousedown=rightKey();
js中的内部对象按使用方式可分为动态对象和静态对象。 在引用动态对象的属性和方法时,必须使用new关键字来创建一个对象实例,然后才能使用"对象实例名.成员"的方式来访问基属性和方法。引用静态对象的属性和方法时,不需要用new
关键字创建对象实例,直接使用“对象名.成员"的方式来访问其属性和方法即可。
function array_max(){ var i,max=this[0]; for(i=1;i<this.length;i++){ if(max<this[i]) max= this[i]; } return max; } Array.prototype.max=array_max; var x = new Array(1,2,3,4,5,6); var y = x.max();//6 constructor属性 x = new String("js") if(x.constructor==String)//true 或 function MyFunc{ } y = new MyFunc; if(y.constructor==MyFunc) //true
对象 | 操作 |
---|---|
Array | 将Array的元素转换为字符串。结果字符串由逗号分隔,且连接起来。 |
Boolean | true则回true;false为false |
Date | 返回日期的文字表示法 |
Erro | 返回一个包含相关错误消息的字符串 |
Function | 返回如下格式的字符串,其中functionname是被调用toString()方法函数的名称: function functionname(){native code} |
Number | 返回数字的文字表示 |
String | 返回String对象的值 |
默认 | 返回[object objectname],其中objectname是对象类型的名称 |
对象 | 返回值 |
---|---|
Array | 数组的元素被转换为字符串,这些字符中由逗号分隔,并连接在一起。其操作与Array.toString()和Array.join方法相同 |
Boolean | boolean值 |
Date | 1970年1月1日午夜开始计的毫秒数 |
Function | 函数本身 |
Number | 数字值 |
Object | 对象本身。这是默认情况 |
String | 字符串值 |
String对象的属性有length、constructor和prototype。
var str = new String("javascript");
str.length //10
str.constructor==String //true
constroctor属性用于对当前对象的函数的引用。可以判断当前对象或自定义变量的类型。
比如:可以利用constructor属性获取当前对象fred所引用的函数代码
function getyear(name,year)
{
this.name=name;
this.year = year;
}
var fred = new getyear("year","2021");
altert(fred.constructor);
结果:
str.prototype
prototype属性可以为对象添加属性和方法。
object.prototype.name = value;
object:对象名或变量字符变量名,name:要添加的属性或方法名,value为要添加的值。
var date = new Date(); date = new Date(dateValu); date = new Date(year,month,date[,hours[,minutes[,seconds[,ms[[[[) date 1-31 hours 0-23 minutes 0-59 seconds 0-59 ms 0-999 constructor prototype var newDate=new Date(); newDate.constructor==Date //true date对象的方法 Date() getDate() getDay() getMonth() getFullYear() getYear() getHours() getMintes() getSeconds() getMilliseconds() getTime() getTimezoneOffset() getUTCDate() getUTCDay() getUTCMonth() getUTCFullYear() getUTCHours() getUTCSeconds() getUTCMilliseconds() parse() setDate() setMoneth() setFullYear() setYear() setHours() setMinutes() setSeconds() setMilliseconds() setTime() setUTCDate() setUTCMoneth() setUTCFullYear() setUTCHours() setUTCMinutes() setUCSecond() setUTCMilliseconds() toSource() toString() toTimeString() toDateString() toGMTString() toLocaleString() toLocalTimeString() toLocalDateString() UTC() valueOf()
window.event
event.propertyName
比如给元素加事件
document.getElementById("myButton").addEventListener("KeyUp",example,false);
window.event.ctrlKey
ctrlKey ctrl键状态
shiftKey
button属性设置或获取事件发生时用户所按的鼠标键
window.event.button
nv | nv |
---|---|
0 没有按钮 | 4 按下中间键 |
1 左键 | 5 同时按下左键和中间键 |
2 右键 | 6 同时按下右键和中间键 |
3 同时按下左右键 | 7 同时按下左中右键 |
button属性仅用onmousedown onmouseup onmousemove事件,对于其他同事,无论鼠标状态如何都返回0。如onclick
上网的时候我们可以按下鼠标右键进行一些操作
<script>
function gosite(){
if(event.button==2)
{ alert("javascript");
window.open("www.csdn.com");
return false;
}
}
document.onmousedown=gosite;
</script>
window.event.clientX
document.onmousemove
document.onmouseup
- document.event.cancelBubble
检测是否接受上层元素的事件的控制。如果该属性的值是false,则允许被上层元素的事件控制;否则值为true,则不被上层元素的事件控制。
对象/集合 | 说明 |
---|---|
FileSystemObject | 主对象。用来创建 删除和获取有关信息,还可以用来操作驱动器、文件夹和文件的方法和属性 |
Drive | 对象 ,用来收集信息的方法和属性。连接在驱动器上,如Drive并非必须是硬盘,也可以是RAM磁盘。并非必须把驱动器实物地连接到系统上,它也可以通过网络在逻辑上被连接起来。 |
Drives | 集合列表。 |
File | 文件对象 |
Files | 集合 |
Folder | 目录 |
Folders | 集合 |
TextStream | 对象,用来读写文件文件 |
var fso = new ActiveXObject("Scripting.FileSystemObject");
object.GetAbsolutePathName(pathspec);
pathspec说明
参数 | 说明 |
---|---|
“c:” | 返回当前的完整路径 |
“c:…” | 返回当前路径的上级路径 |
“c:\” | 返回当前路径根目录 |
“c:.\myfile” | 在当前路径后加上 “*.*\myfile” |
“myfile” | 在当前路径后加上"myfile" |
“c:\…\…\myfile” | 返回当前路径以myfile文件名为结尾 |
c并非c盘,而是服务器端当前路径的盘符。
假设当前路径为d:\word\javascript
fso.GetAbsolutePathName(“d:…”)
返回结果
d:\word
GetBaseName()
GetDriveName()
GetDrive()
GetExtensionName()
GetFileName()
GetParentFolderName()
GetSpecialFolder()
WinddowFolder 值 0
SystemFolder 值 1
TemporaryFolder 值 2
GetTempName()
方法 | 说明 |
---|---|
FreeSpace() | 可用空间 |
IsReady | 是否就绪 |
TotalSize | 以字节为单位返回驱动器或网络共享的所有空间大小 |
DriveType | 驱动器类型 |
SerialNumber | 连续10进制数,用于唯一标识磁盘卷。 |
AvailableSpace | 属性 返回所指定的驱动器或网络共享上可用 的空间的大小。 |
FileSystem | 指定驱动器所使用的文件系统的类型 |
Path | 指定文件、文件夹或驱动器的路径 |
RootFolder | 指定驱动器的根文件夹。只读 |
ShareName | 指定驱动器的网络共享名 |
VolumeName | 设置或返回指定驱动器的卷名。读/写 |
方法 |
---|
object.Copy(destination,overrie); |
object.Delete(force);如果要删除设置了只读属性的文件或文件夹则为true。 |
object.Move(destination); |
object.OpenAsTextStream(iomode,format); |
iomode | 说明 |
---|---|
ForReading | 只读方式 |
ForWriting | 以写方式,存在同名,以前的内容将被盖掉 |
ForAppending | 打开并从尾开始写 |
format如果忽略,则以ASCII格式打开。
format | 说明 |
---|---|
TristateUseDefault 2 | 使用系统默认值打开文件 |
TristateTrue 1 | 以Unicode方式打开文件 |
TristateFalse 0 | 以ASCII方式打开文件 |
常数 | 值 | 描述 |
---|---|---|
Normal | 0 | 普通文件 |
ReadOnly | 1 | 只读文件 不设置属性 |
Hidden | 2 | 隐藏 读写 |
System | 4 | 系统文件 读写 |
Volume | 8 | 磁盘驱动巻标。只读 |
Directory | 16 | 文件夹或目录 只读 |
Archive | 32 | 文件在上次备份后已经修改。属性为读写 |
Alias | 64 | 超链接或者快捷方式。属性为只读 |
Compressed | 128 压缩文件。属性为只读 |
将只读文件改为可写文件
<form name="form1" method="post" action=""> 文件路径:<input type="text" name="tbFileSrc" value="E:\\1.txt"> <input type="button" name="btn" value="文件类型" onclick="ShowFileInfo(document.form1.tbFileSrc.value)" </form> <script language="text/javascript"> function ShowFileInfo(filespec){ var fso,f,s; fso = new ActiveXObject("Scripting.FileSystemObject"); f = fso.GetFile(filespec); switch(f.Attributes) { case 0: s="普通文件"; break; case 1: s="只读文件"; break; } if(f.Attributes==1||f.Attributes==33) { if(confirm("当前文件为:"+s+"\r\n是否将其改为可写文件?")) { f.Attributes = f.Attributes-1; } } else alert("当前文件为:"+s); } </script>
DateCreated属性,指定文件或文件夹的创建日期和时间,只读
DateLastAccessed
DateLastModified
Name
Size
Type
ShortName 返回短名称
Drive指定文件或文件夹所在驱动器的驱动器号,只读
ParentFolder
Path指定文件、文件夹或驱动器的路径(object总是File Folder Drive)
ShortPath 返回短路径名
for(variable in object){
...statement
}
var objects = {user:"zhao",name="x"};
for(var info in objects){
document.write(objects[info]);
}
var arr = new Array("a","1","2","b");
for(var i=0;i<arr.length;i++){
document.write(arr[i].toString());
}
prototype
Array.prototype.outAll = function(ar){
for(var i=0;i<this.length;i++)
{
document.write(this[i]);
}
}
var arr =new Array(1,2,3,4);
arr.outAll("");
方法 | 说明 |
---|---|
concact() | 连接两个或更多数组,并返回结果 |
pop() | 删除并返回数组的最后一个元素 |
push() | 向数组的末尾添加一个或多个元素,并返回新的长度 |
shift() | 删除并返回数组的第一个元素 |
splice() | 删除元素,并向数组添加新元素 |
unshift() | 向数组开头添加一个或多个元素,并返回新的长度 |
reverse() | 颠倒数组元素 |
sort() | 排序 |
slice() | 从某个已有的数组返回选定的元素 |
toSource() | 代表对象的源代码 |
toString() | |
toLocalString() | |
join() | 放入一个字符串,并用指定的分隔符分隔 |
valueOf() | 数组的原始值 |
var newStr = new String("Hello Js");
if(newStr.constructor==String){ //true
}
prototype属性 可以为字符串对象添加自定义的属性或方法
String.prototype.name = value;
String.prototype.getLength=function(){
alert(this.length);
}
var str = new String("abc");
str.getLength(); //3
一个正则表达式是由普通字符(a-z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
语法:/匹配对象的模式/
只需将希望查找匹配对象的模式内容放入"/"定界符之间即可。
如在字符串abcd中查找匹配模式bc。即:/bc/
之前有过个正则介绍https://blog.csdn.net/weixin_53370274/article/details/116427755
var reg_expression = /^ming/;
var text= "mingrisoft";
var res = reg_expression.test(text);//true
reg_expression=/ft$/;
text = "mssoft";
res = reg_repression.test(text);//true
用"\b"匹配一个字边界
“er\b"匹配"order to"中的"er”,但不匹配"verb”中的"er"。
用“\B"匹配非字边界
“er\B"匹配"verb”中的"er”,但不匹配"order to"中的"er"。
<script language="text/javascript">
var sparray = new Array();
var str="javascript、language、asp、jsp、java";
var regex =/、/;
sparray = str.split(regex);
for(int i=0;i<sparray.length;i++){
document.write(sparray[i]+" ");
}
</script>
//javascript language aps jsp java
try catch finally throw
程序通常有3种类型的异常,语法异常、运行时的异常、逻辑异常。
其中语法异常通常是在程序员输入一些编译器无法识别的代码后发生的;运行时的异常通常是在运行碰到一个错误时发生的,与语法异常的区别在于它不一定是javascript语言的错误引发的异常;逻辑异常往往发生在程序设计时,程序没有按照预先设计的方式运行。
<script language="text/javascript">
window.onerror=function(){
alert("调用的函数不存在");
return true;
}
/*如果在onerror事件没有使用return true;语句,在弹出错误提示对话框后,浏览器的错误报告也会显示出来,为了隐藏此错误报行,函数需要返回true。
除了window对象可以触发window事件之外,图像对象也可以触发onerror事件。
document.images[0].οnerrοr=function(){
somestatements;
return true;
}
*/
</script>
//catch只能有一个catch语句,由于在js中无法指定出现异常的类型
<script language=”text/javascript">
try{
somestatements;
}
catch(exception e){
somestatements;
}
finally{
somestatements;
}
</script>
<script language="javascript">
throw new Error("somestatements");
throw new TypeError("somesstatements");
</script>
一些调试技巧 通常就是alert(info),或是document.write(info) ,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。