作用域
-
局部作用域和全局作用域
-
局部作用域,函数内
-
块状作用域,结构语句的
{}
内 ES6 使用 let 声明 -
作用域链
-
变量提升
-
函数提升
对象
-
构造函数和对象
-
实例化对象
new 构造函数()
-
this 表示本对象
-
调用属性和方法
对象.属性名
对象['属性名']
原型
-
所有的对象都有原型 (原型仍然是一个对象)
-
原型还有原型 构成原型链
-
对象可以继承原型上的属性和方法
内置函数 Object
-
new Object
-
{prop:vlaue, prop:value: prop:function(){}, prop:value}
使用技巧
获取元素
document.querySelector() 一个元素
document.querySelectorAll() 由多个元素组成的 像数组(LikeArray) 对象
设置样式
eleObj.style.属性名 = 值
设置类名
eleObj.className = ''; <div class="item current">
eleObj.classList.add()
eleObj.classList.remove()
eleObj.classList.toggle()
事件
绑定事件 <button onclick=""> 不推荐
eleObj.onclick = function(e){
console.log(e)
}
事件对象 event
event.button 鼠标按键的值
event.clientX 鼠标坐标 (相对于整个页面)
event.clientY 鼠标坐标
定时
setInterval()
clearInterval()
setTimeout()
clearTimeout()
day13
内置对象
系统内置的构造函数(类)
1 Number
属性
-
Nnumber.MAX_VALUE
-
Number.MIN_VALUE
方法
-
toFixed([number]) 取整或者保留指定位数的小数 (四舍五入)
-
toString([number]) 转为字符串形式,可以指定进制
2 String
属性
-
length 字符串长度
方法
indexOf() 返回第一次出现的位置 不存在 返回-1
lastIndexOf() 返回最后一次出现的位置 不存在 返回-1
substr(start, lenth) 截取 开始和截取长度
substring(start, end) 截取 开始和结束位置
slice(start,end) 同上
split() 把字符串分割成 数组
trim() 去掉两边的空格
toUpperCase() 转大写
toLowerCase() 转小写
replace(旧, 新) 替换 只能替换一次
3 Boolean
4 Array
4.1 创建数组v
var list = [item1, item2, item3 ...]
var list = new Array()
3.2 数组操作
#添加元素
list.push() 最后面
list.unshift() 最前面
list.splice(位置,0,新值) 指定位置 向后添加个数不定
#删除元素
list.pop() 删除最后 返回删除的元素
list.shift() 删除第一个 返回删除的元素
list.slice(位置,删除的个数) 指定位置删除指定个数 向后删除
#设置修改
list[index] = value
list.splice(位置,删除个数,值1,值2...) 向后修改
3.3 属性和方法
属性
length 数组的长度
方法
push() 添加到最后面
unshift() 添加到最前面
pop() 删除最后 返回删除的元素
shift() 删除第一个 返回删除的元素
slice() 添加,删除,修改 指定位置的元素
sort() 和函数连用 按照自然数排序
reverse() 按照字符串的比较方式排序
------------------------
join() 指定分隔符 返回拼接的字符串 原数组不改变
concat() 数组连接 不改变原数组
slice() 截取 参考上面字符串的slice()
indexOf() 返回正数第一个的索引 没有则返回-1
lastIndexOf() 返回倒数第一个的索引 没有则返回-1
map() 映射 结合函数处理 返回一个新的数组
filter() 过滤 结合函数的返回值 过滤出一个新的数组
some() 有一个元素满足条件即可 返回布尔值
every() 每个元素 返回布尔值 根据参数函数判断
reduce() 元素阶乘
forEach(function(value, index){}) 遍历建议用这个
3.4 数组的遍历(迭代)
#for 循环和
for (var i = 0; i < arr.length; i ++) {
arr[i]
}
#for .. in
for (var i in arr) {
arr[i]
}
#推荐 数组方法 forEach
arr.forEach(function(val, index){
})
5 类数组对象
-
类型不是Array,特性非常像Arrat
-
具有length属性
-
常见类数组对象: arguments, 元素的列表(NodeList)
6 Function
# 属性
length 形参的个数
# 方法
call(对象,参数,参数2...) 在调用函数(方法)的同时,改变函数内this的指向
apply(对象, 数组) 在调用函数(方法)的同时,改变函数内this的指向
7 Math 数学
属性
Math.PI
方法
Math.abs() 绝对值
Math.pow() 求几次方
Math.max() 最大值
Math.min() 最小值
Math.ceil() 进位取整
Math.floor() 舍位取整
Math.round() 四舍五入
Math.random() 随机数 0~1 0有可能,1不可能
取随机数
0~9
Math.floor(Math.random() * 10)
6~13
Math.floor(Math.random() * 8) + 6
8 Date
getFullYear() 公元纪年
getMonth() 月份 0~11 需要+1
getDate() 日期
getDay() 星期几
getHours() 时
getMinutes() 分
getSeconds() 秒
getMilliseconds() 毫秒
getUTC... 标准时区的时间
set...
setUTC...
9 RegExp
正则
RegExp对象
test() 返回布尔值
exec() 返回数组,第一个匹配到的内容,位置。 全局匹配,所有匹配到的内容
String对象的方法
search() 第一次匹配到的位置,匹配不到 -1
match() 同r.exec()
replace() 替换,默认只替换一个,正则全局匹配