函数
定义:具有特定功能的一段代码段 (封装)
1、函数声明
function 函数名 () {
代码段
}
2、表达式法 (函数名保存的是匿名函数在堆结构中的地址)
var 函数名= function(){
代码段
}
在js中,变量和函数都有预解析机制
console.log(a);
var a = 10;
=====》
var a;
console.log(a);
a = 10;
add();
function add(){
console.log(1+2)
}
由于预解析机制,函数声明可以先调后用,不会报错
参数
## 动态 参数对象 arguments 保存实参的值 数组的方式
var add = function(a) { //形式参数
var sum = 0;
for(var i =0;i<arguments.length;i++){
sum = sum+arguments[i];
}
//输出 返回值 return
return sum ;
}
add(1,2,3,4,5); //实际参数
// arguments = [1,2,3,4,5,6,7,8]
返回值
一个函数可以有多个return语句,但是只能执行一个return语句
递归函数
思想:将大的问题分解成相似的子问题
做法:自己调用自己
1、自定义一个有参有返回值的函数
2、提取递归的出口 if...return...
3、前进段、返回段
求N的K次
prompt()输入
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>买了否冷</title>
</head>
<body>
<script>
// n是底数 k是指数
var n = parseInt(prompt('请输入底数'));
var k = parseInt(prompt('请输入指数'));
var f = function (n,k) {
if (k===1){
return n;
}
return n*f(n,k-1)
};
alert(f(n,k))
</script>
</body>
</html>
事件函数
DOM(Document Object Model)
/*onload 界面加载事件 静态资源加载成功以后才会执行函数里面的代码
* 入口函数,有且只有一个 如果有多个 会覆盖*/
window.onload = function () {
/*1、获取p标签*/
// var myP = document.getElementById('myP');
/*2、api 获取p的内容 = 修改 innerText 纯文本 innerHTML 带有标签效果的文本*/
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>买了否冷</title>
<style>
p{
width: 80%;
height: 100px;
margin: 0 auto;
background-color: black;
color: whitesmoke;
font-size: 30px;
line-height: 100px;
text-align: center;
}
</style>
</head>
<body>
<p id="myP"></p>
<script>
// console.log(myP.innerText);
// myP.innerText = "我的青春我做主";
// myP.innerHTML = '<a href="http://baidu.com">baidu</a>'function formatData(d) {
function formatData(d) {
var y = d.getFullYear();
var m = d.getMonth()+1;
var day = d.getDate();
var h = d.getHours();
var min = d.getMinutes();
var s = d.getSeconds();
return addZero(y)+'-'+addZero(m)+'-'+addZero(day)+' '+addZero(h)+':'+addZero(min)+':'+addZero(s)
}
function addZero(t) {
return t<10?'0'+t:t;
}
var myP = document.getElementById('myP');
setInterval(function () {
myP.innerText = '当前时间 : '+formatData(new Date());
},1000);}
</script>
</body>
</html>