1.数据类型:
1.字符串
2.数值:小数整数
3.布尔
4.函数
- 定义函数时,参数:形参;
- 调用函数时,参数:实际参数
- 调用函数时实际参数的个数 不能少于 形参的个数
- js中函数的参数可以用arguments数组进行管理
function f1()
{
alert(arguments[0]);
}
f1(‘zs’);
变量作用域
- 全局变量:在JavaScript中,函数外部定义的变量是全局变量,
全局变量可以在js脚本的任何地方使用(函数内、函数外都可以使用) - 局部变量:在函数内部定义的变量,就属于局部变量,
局部变量只能在函数内部使用 - 特殊:如果定义变量时,没有使用var声明,
默认表示创建的是全局变量 - 作用域链
在函数内访问一个变量时,如果函数内部不存在该变量,则会去上一级作用域查找 - 函数闭包
闭包是JavaScript特有的现象,当我们在一个函数里面再嵌套一个函数的时候,
嵌套的函数会将父级函数(外部函数的变量的最终值包含起来)
在调用时才会使用
解决方案:
- 全局变量:在JavaScript中,函数外部定义的变量是全局变量,
将内部函数封装到外部
- 将获取的变量保存为当前对象的一个属性
li[i].index = i;
5.数组
6.对象
== 在JavaScript中的数据都是一个一个的对象 ==
- 定义方式:
1. 构造器
function people(){}
2. 快捷语法/字面量对象/json
{}
通过 . 点语法访问其成员,也可以使用[]访问其成员,有时候还必须使用[]访问成员
使用for(var members in obj){}for … in 遍历对象成员
7.null
8.undefined
2.数据类型的转换
1.自动转换
+号我们可以理解成 ,有两个作用:
四则运算,+ - * /的功能
字符串连接
数值类型的数据和字符串进行运算的时候
数值会自动的转换成字符串
2.强制转换
String():强制转换成字符串
Number():强制转换成数值,会不识别带其他字符的数字
parseInt():强制转换成整数
parseFloat():强制转换成小数
Bollean():强制转换成布尔类型
3.js内置对象
1. 数组对象
- concat()链接多个数组生成新的数组
arr.concat(arr); - join() 将数组元素通过某个分隔符连接起来
arr.join(‘,’); - push:向数组插入一个元素,保存在最后一个位置
- pop:把最后这元素弹出
- shift:删除第一个元素
- unshift:向数组的开始位置插入一个元素
- reverse() 颠倒数组的顺序
- slice 从开始的位置截取到结束的位置,将截取的结果返回
- splice 从开始的位置删除到结束的位置
splice(0,2,[替换的值]) - sort() 默认按照字符的顺序进行排序,我们可以使用自定义的函数进行排序
- toString()将数组转换成字符串
2.字符串对象
- indexOf() 返回某个字符在整个字符串中第一次出现的索引位置
- lastIndexOf() 查找某个字符在整个字符串中最后一次出现的位置
- split()根据某个分割符将字符串拆分成数组
split(‘,’,2)根据,分割成两个 - replace(x,y)将x替换成y
- charAt()在index这个索引处的字符是谁
- slice()面包切片从整个字符串中切一段出来
- substr()substr(startindex,length)
- substring()substring(startindex,endindex)
- toLowerCase()
//将字符串转换为小写 - toUpperCase()
//将字符串转换为大写 - toString()
//将数值转换成字符串
3.数学对象
- Math.abs()//取绝对值
- Math.ceil()//进一取整
- Math.floor()//退一取整
- Math.round()//四舍五入取整
- Math.max(num1,num2….)//取最大值
- Math.min(num1,num2…)//取最小值
- Math.pow(x,y)//返回x的y次幂
- Math.random()//0.0~1.0之间的随机数(包含小数,使用的时候,最后强制转换成整数)
- Math.sqrt()计算某个数值的平方根
4.regx对象
- test() 检测是否符合规则
- exec() 检测之后将符合规则的结果返回
5.日期对象
- date = new Date()
- 年份:getFullYear()
- 月份:getMonth() 0-11之间的数字,+1
- 日期:getDate() 星期几(getDay() 0 星期日 1星期1)
- 小时:getHours()
- 分钟:getMinutes()
- 秒:getSeconds()
- getMilliseconds()获得时间毫秒部分
- toLocalString 将日期对象转换成日期字符串
getTime() 获得从1970年到现在的毫秒数时间戳
setFullYear() 设置年份
- setMonth() 设置月份
- setDate() 设置日期
6.DOM对象
Document:HTML文档
Object:对象
Model:模型、模子
文档对象模型,用来实现JavaScript 操作 html元素(标签)的通道(接口)
- 通过id查找并转换:document.getElementById()
- 通过标签的名字查找并转换:document.getElementsByTagName()
- 通过name属性查找并转换:document.getElementsByName()
- 通过Classname属性查找并转换document.getElementsByClassName()
- 新增一个节点:document.createElement(‘标签名字’)
- 确定节点的位置:
父节点.appendChild() 父节点.追加子节点
父节点.insertBefore() 在xxx前面插入一个元素 删除节点:父节点.removeChild(子节点)
某个节点的attributes属性获得该节点的所有属性
- 空白节点 NodeType ==3
父子关系:
查找某个节点下面的子节点:childNodes属性
通过子节点找父节点:parentNode属性兄弟姐妹关系
当前节点的哥哥(上一个节点):previousSibling
当前节点弟弟(下一个节点): nextSibling
7.BOM对象
- BOM:Broswer Object Model,浏览器对象模型,操作的是浏览器的历史记录、url地址等
history历史记录
history.go(-1)
forward():前进一步
back():后退一步
history.go(0) 刷新页面
location.href = “”将url定位到哪里screen:屏幕对象
width
height
availWidth
availHeight弹窗
- confirm()确认框
- prompt()弹出输入框
alert()
setInterval() 设置计时器
- clearInterval() 清除计时器
- setTimeout 延迟执行,延迟一定时间之后执行一次
- clearTimeout() 清除延迟执行
4.事件
鼠标事件
- click() 鼠标单击
- dblclick() 鼠标双击
- mouseover() 鼠标移入事件
- mouseout() 鼠标移出事件
- mousemove() 鼠标移动事件
- mousedown() 鼠标按下事件
- mouseup() 鼠标按键被松开事件
- scroll 滚动事件(body)
键盘事件
- keydown 按键被按下
- keyup 按键抬起
表单事件
- submit 表单提交事件
- select 文本框的文本被选中
- focus 获得焦点事件
- blur 失去焦点事件
- change 内容改变事件
事件监听
- addEventListener添加事件监听
addEventListener(‘click’,node);
attachEvent()
addEventListener的第三个参数,如果false,表示非捕获,事件冒泡
如果为true,事件捕获
阻止事件冒泡 - 主流浏览器通过事件对象(event)的stopPropogation()方法阻止的
event.stopProgation()
非主流浏览器(IE低版本的浏览器)使用事件对象(event).cancelBubble = true阻止事件冒泡
event.cancleBubble = true;
鼠标运动坐标
clientX、clientY,即使出现滚动条,距离永远是距离客户端(浏览器边界的距离)
pageX、pageY,计算的是页面的距离,包括滚动条卷去的距离