代码改变世界

js里面的做用域以及常用的事件及扩展

2019-08-20 22:11  孤城凉梦  阅读(253)  评论(0编辑  收藏  举报

作用域:

域:空间 范围

作用域:变量和函数的可访问范围

全局作用域

全局范围(不在函数中):即是全局作用域

全局变量:在全局作用域下声明的变量

全局变量特点:

  • 在代码任意位置都可以使用

  • 一个变量,没有声明直接赋值(谨慎使用) 会自动变成全局变量

函数作用域(局部作用域)

函数内部 就是局部作用域

局部作用域中声明的变量叫局部变量

特点:

  • 只能在当前作用域以及子集作用域下使用

  • 函数内部声明变量在函数运行结束后会立即销毁

  • 当当前作用域下以及上一级作用域下都有相同的变量,优先使用当前作用域下的变量,如果没有再依次向上查找找到立即停止(就近原则)

函数递归调用

概念:在函数内部自己调用自己

    累加
function factorial(n){
var sum=1;
for(var i=1;i<=n;i++){
sum+=i;
}
return sum;
}
递归:
1,使用函数名
function add(num){
if(num<=1){
return 1;
}else{
return num+add(num-1);
}
}
2,
  function sum(num){
    if(num<=1){
      return 1;
    }else{
      return num+arguments.callee(num-1);
    }
  }
arguments.callee 指向正在执行的函数
注意:写递归 先写条件 判断停止

利用事件来调用函数

事件:绑定在元素上,由用户的行为触发的
<div on事件名="js代码"></div>

常见事件

1,鼠标相关事件
click   dbclick(双击) mouseover(鼠标移入) mouseout(鼠标移开) mousedown鼠标按下
mousemove 鼠标移动 mouseup鼠标抬起
2,键盘相关事件
keydown 键盘按下事件 keyup键盘抬起事件
3,表单相关事件  
focus获取焦点 blur事件 input输入事件   change表单的值改变事件
4,加载
onload window对象(网页上的html/css/资源加载事件)


元素绑定事件的方法:在html中
<元素 on事件名="js"></元素>

扩展:
js中获取元素
document.getElementById("id值")
js中绑定事件
元素.on事件名=function(){}
js中通过内联设置元素css样式
元素.style.样式="值"
css样式中 出现-
如:background-position
js中去-变驼峰
background-position
-webkit-transition="all 1s"
WebkitTransion
js获取元素   dom对象
<div id="xx" class="xx" style="width:200px;height:200px">div</div>
{
nodeName:"DIV",
id:'xxx',
className:"xxx",
innerHTML:"",
value:"xsxs"
style:{
width:"200px"
}
}

对象 复合数据类型

对象:描述一个事物 的特征和行为 整体
特征:属性
行为:方法
系统对象:数组 日期 正则 函数
自定义对象
var 对象名={
属性:值,
属性2:值2,
方法:function(){}
}
怎么使用 属性 和方法:
对象名.属性名 获取属性的值
对象名.方法名() 调用 方法
外部设置 属性 和方法:
对象名.属性名=值   (如果属性不存在,新增一个属性,存在,更改属性的值)
对象名.方法名=function(){} 方法存在,覆盖原来的方法,不存在,增加一个方法