JavaScript的基本语法:
1、区分大小写:变量、函数名和操作符都区分大小写
2、标识符:第一个字符必须是字母、下划线或是一个美元符号$,其他字符可以是字母、下划
线、美元符或数字
3、不能把关键字、保留字,如:true、false、null用作标识符
4、定义变量时要使用var操作符,后跟变量名称
JavaScript的数据类型:
基本数据类型:字符串、数值型、布尔型
复合数据类型:对象、数组
其他数据类型:函数、null、undefined
数据类型的转换:隐式类型转换、显式类型转换
隐式类型转换的情况:
数字类型:在字符串环境下转换为'数字',在布尔环境下非零数字转换为
true
非空字符串:数字环境下转换为字符串中的数字或NaN,布尔环境下转换
为true
空字符串:数字环境下转换为0,布尔环境转换为false
null:字符串环境下转换为null,数字环境下转换为0,布尔环境下转换为
false
NaN:字符串环境下转换为NaN,布尔环境下转换为false
undefined:字符串环境下转换为'undefined',数字环境下转换为NaN,布
尔环境下转换为false
显示类型转换的情况:
可以使用Number()、Boolean()、String()函数来将数据类型转换成数字
型、布尔型、字符串型
数字类型转换字符串,可以将其与一个空字符串相连
字符串型转换数字型,可以将其减0
字符串或数字型转换成布尔型,可以使用两次!(感叹号)
字符串型是JavaScript中用来表示文本的数据类型
NaN即非数值,是一个特殊的数值,这个数值用于表示这个本来要返回数值的操作数未返回数值
的情况
NaN的特点:任何涉及NaN的操作,结果都是NaN
NaN与任何值都不相等,包括NaN本身
对象和数组一样,都是一些数据的集合,这些数据可以是字符串、数字型、布尔型,也可以是复
合型
null是一个特例的数据类型,代表的意思是空,但这个空不代表是0或空字符串,null是没有值,
不是一个有效的数字、字符串,也不是数组、对象和函数,什么数据类型都不是
undefined是一个特例的数据类型,只能定义了一个变量但没有为该变量赋值,使用一个并未定义
的变量或者是使用了一个不存在的对象的属性时,JavaScript就会返回undefined
字符串对象的声明方法:
1、var str = new string('asdaf')
2、var str = 'sdfghjk'
字符串对象的方法:
index0f():返回子字符串在字符串中第一次出现的位置
lastIndex0f():返回子字符串在字符串中最后一次出现的位置
match():找到一个或多个正则表达式匹配
replace(表达式,替换的字符串):替换一个与正则表达式相匹配的子
串
split(正则表达式,数组最大长度):用于把一个字符串分割成字符串的
数组
toLowerCase():将字符串转换为小写toUpperCase():将字符串转换为大写
slice(开始下标,结束下标):得到一个从开始下标到结束下标的子字符
串
substr(开始下标,截取长度):得到一个从开始下标到指定长度的子字
符串
search(正则):查找与正则表达式相匹配的子字符串
数组:在JavaScript中并不支持多维数组,但是JavaScript中数组元素可以是任何类型的数据,包
括数组,
在JavaScript中数组也是一种对象,这种对象称为数组对象
数组元素是不能被删除的,只能删除数组元素的值,恢复到未赋值的状态,即undefined,却不能让数组中的元素减少一个
数组元素的个数:array.length数组定义的方法:
1、var arr = new Array(); 定义一个空数组
2、var arr = new Array(2); 定义一个最小长度为2的数组
3、var arr = new Array('a','b',......); 定义一个有初始值的数组
4、var arr = [1,2,4,.....]; 直接定义数组
数组的方法:
tostring():将数组转换为字符串,有逗号连接
join():将数组元素连接成字符串(可以自定义连接符)
push():在数组尾部添加元素,原数组会改变
concat():添加元素并生产新数组 unshift():在数组头部添加元素
pop():删除并返回数组的最后一个元素 shift():删除并返回数组的第一个元素
splice(下标,下标,替换的字符):如果只有一个参数就是删除、如果有两个参数
就是查找,如果有三个参数就是查找出来匹配的值,并把原数组替换
slice(开始下标,结束下标):返回数组中的一部分
reverse():颠倒数组中的元素
数值转换:
Number():null返回0,undefined返回NaN,
如果是字符串:'011'变成11,如果是空字符串转换为0
'oxf'会变成相同大写的十进制整数
如果字符串包含上述以外的字符,将其转换为NaN
Parselnt():忽略字符前面的空格,直到找到第一个非空格字符
如果第一个字符不是数字或者是负号,返回NaN
空字符串,返回NaN
如果第一个是数字,会继续解析,直到遇到一个非数字
如果字符串以0x开头且后面跟数字字符,就会转成16进制,八进制也一样
ParseFloat():第一个小数点是有效的,第二个小数点无效
始终忽略前面的0,不分进制
十六进制会被转换成0空字符串转换为NaN
JavaScript的函数:
JavaScript中,使用function语句定义函数,也可以使用Function构造函数来定义函数
JavaScript中的函数不允许给参数赋初始值函数的声明方法:
1、function 函数名(参数1.。。。){语句块;return 返回值}
2、var 函数名 = new Function(参数1,参数2,。。。,函数体)
3、var 函数名 = function (参数1,参数2,。。。){函数体}
JavaScript对象的声明:对象的声明方法:
1、var 对象名 = {属性名1:属性值,属性名2:属性值2........} 2、var myobject = new Object();
myobject.name ='lili'; myobject.age = 20;
eval():将字符串指定为对象
JavaScript中的内置对象:日期对象:
getFullYear():返回4位数年份
getMonth():返回月份0-11
getDate():返回日期对象中的一个月中的第几天
getHours():返回日期中的小时部分
getTime():返回日期对象中的时间戳的毫秒部分
getMilliseconds():返回日期对象中的毫秒部分
getTimezoneOffset():返回日期对象中的时区的时间差,单位秒数学对象:
Math.E:自然对数的底数(e)
Math.abs():绝对值
Math.ceil():进一取整
Math.floor():退一取整
Math.pow():求几次幂
Math.round():四舍五入
Math.sqrt():平方根
Math.random():0.0~1.0之间的随机数
JavaScript中+(加号)表示连接字符,.(点)来调用和设置对象的属性或者方法(如:d.name)this代表的是当前对象
for..in可以遍历数组,也可以遍历对象
例:for(var i in arr){alert(arr[i])}
JavaScript对象模型由四部分组成:JavaScript语言核心部分、与数据类型相关的核心对象、与浏览器
相关的对象、与文档相关的对象
window对象是整个浏览器窗口,Document对象只是用于显示
anchors:可以找到页面上所有的锚点,定义锚点的时候只能用name不能用id,否则会找不到
在HTML中,按钮分为3种,分别是:普通按钮(用来激发函数)、提交按钮(提交表单)、重置按钮
(重置表单)
单选、复选框和下拉列表的属性:
checked:返回或设置一个单选或复选框是否处于被选中的状态
multiple:返回或设置下拉列表框中的选项是否允许多选
options:返回一个数组其中元素为下拉列表中的选项
remove(i):该方法可以删除下拉列表框中的选项,其中参数i为options[]数组的下标
鼠标/键盘属性:
clientx/y:返回当事件被触发时,鼠标指针的水平/垂直坐标
relatedTarget:返回与实践的目标节点相关的节点
keycode:返回所按下键盘的ASII码
cancelBubble:如果事件句柄向阻止事件传播到包含对象,必须把该属性设置为true,也称为阻
止事件冒泡
文本框属性和方法:
disabled:返回或重置文本框是否被禁用
maxLength:返回或设置文本框输入文字的最大数
readonly:返回或设置文本框是否只读
value:返回或设置文本框中的文本
select():该方法可以选中文本框中的文字
常用的事件:
JavaScript是基于对象采用的事件驱动,事件中的三要素:事件源、事件、事件处理
click:单机鼠标事件
dbclick:双击鼠标
mousedown:按下鼠标事件
mouseup:释放鼠标事件
mouseover:移动鼠标到对象上 mouseout:鼠标从对象上移开 fous:对象得到焦点
blur:对象失去焦点
keypress:按下并释放键盘键
submit:提交表单
reset:重新设置表单
change:值产生改变
error:当执行JavaScript代码发生错误时激发的事件
onerror:图片加载失败时执行的事件
onload:页面元素加载完后执行的事件
onchange:值发生改变的事件
confirm():选择对或否的确认框
prompt():弹出一个可以输入文字的提示框
window对象的子对象:
Document对象是HTML对象,又称为文档对象
文档对象的方法:
getElementById():返回对拥有指定ID的第一个对象的引用
getElementsByName():返回带有指定名称的对象集合
getElementsByTagName():返回带有指定标签的对象集合
getElementsByClassName():通过标签class
write():可以吧数据写入页面显示
History对象是存储当前窗口的浏览历史
length:浏览器窗口的历史列表中的个数
back():返回到上一个访问过的URL
forward():可以前进到下一个访问过的URL
go():可以直接跳到每一个已经访问过的URL
Location对象时当前文档的URL
Location对象属性主要用来获取当前文档的URL信息,对当前文档的URL进行操作
href:返回当前文档的完整的URL
reload():可以用来刷新文档
replace():可以用一个新的URL来取代当前的URL
Math对象为数学计数提供常量和计算函数
Navigator对象时浏览器的总体信息
Screen对象是有关用户所使用的显示器信息
availHeight:显示器可用的高度
availWidth:显示器可用的宽度
window对象的方法:
alert():弹出一个警告窗
blur():将焦点从顶层窗口中移走
clearInterval():取消周期性执行的代码
clearTimeout():取消超市的操作
confirm():选对是或否的确认框
focus():将焦点赋予窗口
setInterval(函数,时间):指定周期性执行的代码
setTimeout():指定在经过一段时间后执行的代码,只执行一次
节点:
HTML文档中的每个成分都是一个节点
整个文档是一个文档节点
每个HTML标签是一个元素节点
包含在HTML元素中的文本是文本节点
注释属于注释节点
每一个HTML属性是你一个属性节点查找并访问节点:
obj.childNodes:获取子节点
obj.firstchild:获取第一个子节点
obj.lastchild:获取最后一个子节点
nodeobj.parentNode:获取父节点
obj.children:获取子元素节点
obj.parentElement:获取父元素节点
obj.previoussibling:获取前一个兄弟元素
obj.nextsibling:获取下一个兄弟元素
节点的属性:
obj.nodeName文本节点的节点名是#text obj.nodevalue:
元素节点的nodevalue是undefined文本节点的nodevalue是文本自身属性节点的nodevalue是属性的值
obj.nodeType(nodeType是只读的,规定节点的类型):
元素类型
节点类型
元素
1
属性
2
文本
3
注释
8
文档
9
节点的操作:
obj.setAttribute() 修改属性节点
textobj.nodevalue = '值'; 修改文本节点
parentNode.removechild(元素名) 删除元素节点
obj.removeAttribute(属性名) 删除属性节点
parentNode.replacechild(newText,oldtext) 替换元素节点
textobj.replaceData(offset,length,str) 替换文本节点
document.createElement(元素名) 创建新的元素节点
document.createAttribute(属性)、setAttributeNode() 创建新的属性节点,并设置到指
定的元素上
document.createTextNode(文本)、appendchild() 创建新的文本节点,并添加到指
定的文本里面去
obj.appendchild() 添加节点
obj.insertData(下标,添加的文本) 向文本节点添加文本
obj.addAttribute() 添加新属性
obj.cloneNode() 复制节点默认参数为true克隆此节点包括子节点,若参数为false值会复
制元素,不会复制里面的子节点
obj.innerHTML 在节点中写内容