JavaScript基础知识

漫长的时间之旅 / 4193人浏览 / 0人评论

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 在节点中写内容

搜索文章
推荐文章