标签:缺点 ons 下拉 声明 一个 解析 自己 最大 空间
1、梳理知识点
循环嵌套完成图形题
函数定义 : function fn(){}
函数调用 : 函数名()
函数参数 :
形参 和 实际参数
函数返回值 : return
2、变量的作用域
作用域 : 作用范围
全局变量 :
作用范围 : 从程序开始到程序结束 即在script标签内
在函数体外部定义的变量或内部没有var的变量就是全局变量
局部变量 :
作用范围 : 函数体,从函数开始到函数调用结束后 函数调用结束后 局部变量自动销毁
在函数体内部通过var明确定义的变量 或 形参
函数体中的变量如果操作的是全局变量,该变量就是全局的,如果操作的是局部变量,该变量就是局部的
问题来了 : 如何确定函数体中的变量操作的是局部的还是全局的???
作用域链 : 函数体中在改变某个变量的值时, 都会向上查找 ,如果查找到局部变量 , 操作的就是局部变量 ,如果没有找到局部变量,继续向上(函数体外部)查找,如果查找到 ,操作的就是全局变量,如果函数内部和外部都没有查找到 ,判断这个变量定义是否var 有var 就是局部变量 ,没有var 就是全局变量
为了防止全局变量污染 尽量避免出现全局变量
3、变量提升
在函数体内部定义的变量 会将变量提升到函数的最顶端 只提升声明,但不赋值
function fn(){
alert(a);
var a = 10;
}
fn();
变量提升后
function fn(){
var a;
alert(a);
a = 10;
}
4、js解析器(扩展)
浏览器内部有个专门解析js程序的地方,这个空间就叫做js解析器
解读js程序 有两个步骤:
1、预解析 找一些东西 var function
找到了var 就意味着找到了一个变量 会提前为这个变量赋予一个值 undefined
找到了function 就意味着找到了一个函数 会提前为这个函数名赋予一个值 这个值就是函数块本身
找到了两个function,如果函数重名 后一个会覆盖前一个
如果找到的变量和函数重名 保留函数
2、逐行解读代码 如果遇到表达式 改变了变量的值 那么 预解析时 仓库中变量的值也会随着发送变化
5、函数的递归调用
递归 : 函数自己调用自己
缺点 : 消耗性能
递归本质 : 实现循环
6、函数的实参副本(扩展)
arguments
1、必须出现在函数体中
2、含有一个length属性 代表实参个数
3、取出arguments中的实参 arguments[下标] 下标从0开始 最大下标: arguments.length-1
7、函数和事件的关系
事件 : 对页面上某个元素的操作
事件三要素 :
事件源 名词 页面上的某个元素
事件 动作
事件处理程序 函数
单击按钮 :
oBtn.onclick = function(){ .... }
常见事件 :
鼠标事件 :
onclick 单击
ondblclick 双击
onmouseover 鼠标滑过
onmouseout 鼠标离开
onmouseenter 鼠标滑过
onmouseleave 鼠标离开
onmousedown 按下
onmouseup 抬起
onmousemove 移动
表单事件(针对表单操作) :
onsubmit 表单提交
onfocus 获取焦点
onblur 失去焦点
onchange 改变(一般用于 下拉列表)
键盘 :
onkeyup 抬起
onkeydown 按下
onkeypress 按下+抬起
页面事件 :
onload 页面加载事件
onload事件处理程序中的代码 会等到页面所有内容(css img html 等) 全部加载完成后执行
8、js对元素的操作
要做事 先找人
提前找到要操作的元素 obj
样式操作 :
obj.style.样式 = 值 设置某个元素的样式 注意 :小驼峰的写法 fontSize
属性操作(标签的属性 <img src=‘‘>) :
obj.属性 = 值 obj.src = ""
内容操作 :
普通标签内容 :
obj.innerHTML = "" 设置内容
表单内容 :
obj.value = "" 设置
作用域
标签:缺点 ons 下拉 声明 一个 解析 自己 最大 空间
原文地址:https://www.cnblogs.com/tis100204/p/10301994.html