admin 管理员组

文章数量: 886992

java script 函数下

今日内容要点,函数作用域,事件,对象,递归函数,递归函数

函数作用域:在不同区域定义的变量,能起作用的区域不同

作用域的类别:全局变作用域、局部作用域

全局作用域:整个script标签都可以作为全局作用域

局部作用域:某个函数内部的区域

局部作用域内给变量赋值时候(当前作用域没有变量定义时)可以往外层去找变量定义,直到全局作用域,若是全局作用域没有定义,就在全局作用域定义并赋值

局部作用域内当把变量当做值去赋值、输出变量、使用变量计算时,(当前作用域没有变量定义时)同上,若是全局也没有变量的定义,报错XXX is not defined

注意,变量输出时,要先调用,再输出


事件:指用户在网页的行为

事件三要素,

事件源:用户行为与哪个标签交互

事件类型:用户在网页中的行为类型

事件处理程序:函数

在js中,使用标签的id名,可以直接当做变量使用

<button id="btn">按钮</button>
 

<script type="text/javascript">
    btn.onclick = function(){
        alert("点击了按钮!");
    }
</script>

事件备注
onclick鼠标单击
ondbclick鼠标双击
onmouseover当光标在指定内容上
onmouseout当光标离开指定内容
onkeydown当键盘按下的时候
onkeyup当键盘抬起来的时候
onfocus输入框获得焦点
onblur输入框失去焦点
onchange指定的标签内容有变化
onsubmit

提交事件

onload整个网页加载完后

 当给事件赋值函数名,不能加小括号

// 给事件赋值函数名称
btn.onclick = fn
function fn(){
    console.log('点击了按钮')
}

 给事件赋值变量名

btn.onclick function (){
    console.log('点击了按钮')
}

事件可以写在行内

 <!-- 直接在行内写js代码 -->
<button οnclick="console.log('点击了按钮')">按钮</button>

<!-- 可以在行内调用函数 -->
<button οnclick="fn()">按钮</button>
<script>
    function fn(){
        console.log('点击了按钮')
    }
</script>

 


对象  object

三种表现形式:null、[ ]、{ }

定义方式

1. var=变量名{ 键值对(多个键值对之间用逗号隔开)}

键值对 键和值之间使用冒号隔开,键值对之间使用逗号隔开,键值对的数量没有限制

姓名:张三 // 姓名是键,张三是值
width:100px // width是键,100px是值
border=1 // border是键,1是值

对象里的键都是字符串,通常不加引号,但是当键中有连字号时,要加引号

var  xaioli{

    name:li

    age:22

    "di-zhi" :guangz

}

 对象有一个特性,第一次打开的时候,只能看到Object,再次刷新页面, 会显示里面的数据:


对象的基本操作 

语法

 1  对象名 . 键=  .后面不能加引号
 2  对象名 [ 键]=  这种语法比较严格,一定要加 “ " 
 添加/修改键值对

添加一个键值对 对象.键=值(代码里没有的)
修改一个键值对,对象.键=值(代码里有的)
(对象中的键是唯一的)

删除键值对
delete 对象 . 键
delete 对象 [ 键]
 


对象的遍历:将对象里的每一个值都访问一次

语法: for(var 对象属性名 in 对象名 ){

                代码段

}

对象属性名并无特指,任意即可


函数的递归:在函数中调用自己,完成一些重复的行为,(阶乘)

<script>

function fn(a){

    if(a==1){

        return a

    }

    return a*=fn(a-1)

}

var res= fn(4)

console.log(res)

</script>

向下执行时,return没有生效 ,向上递归返回值时,return才生效

但是如果缺少return,递归函数可以向下执行,但是不能往上递归返回,即最终返回值为undefined


构造函数

创建对象除了可以通过 { }创建外,还能在函数的调用前添加new来实现,而这个被专门用来创建对象的函数就叫做构造函数

 构造函数的三大特点:
  a:构造函数的函数名的第一个字母通常大写。
  b:函数体内使用this关键字,代表所要生成的对象实例。
  c:生成对象的时候,必须使用new命令来调用构造函数

js系统提供了一个专门创建对象的函数:Object

语法:

function 函数名(){  }

1.var 变量名=new Object({ 键值对})

2.var 变量名=new Object(" " , "  ")

 

本文标签: java script 函数下