函数上

256 阅读1分钟

函数

是一种变量,内部的值存储的是一段代码;通过 名称() 可以将这段代码拿出来执行

类型 - function

乘法表函数

function fn (num) {
    // 定义一个空字符串 - 准备存放所有需要在页面中显示的内容
    var s = ''
    for (var a = 1; a <= num; a++) {
        for (var b = 1; b <= a; b++) {
            s = s + b + '*' + a + '=' + a * b + '&nbsp;'
        }
        s += '<br>'
    }
    return s
}

var str = fn(3)
var str1 = fn(9)
document.write(str1);
document.write(str);

return

return是一个js的关键字 - 只能在函数中使用

除了可以给函数返回一个数据外;还可以阻止函数向下执行

return后面的代码是不执行的

如果函数没有return关键字,默认会return undefined

判断是不是素数

function isSushu(num) {
    for (var a = 2; a <= parseInt(num / 2); a++) {
        if (num % a === 0) {
            return false
        }
    }
    return true
}
console.log( isSushu(3) );
console.log( isSushu(4) );

预解析

代码运行机制:可以分为两个步骤:

1、js先解析我们写好的代码:

从所有代码中找变量的定义和函数的定义

将变量的定义和函数定义 提升(将这些代码调整顺序到script的最顶部)

2、在浏览器中执行代码:按照预解析后的顺序执行代码

预解析练习题

1、
console.log(fn) // undefined
fn() // 报错:fn is not a function - 不是函数是不允许调用的
var fn = function () { // 这是定义变量,不是定义函数
	console.log(123);
}

2var a = 1
console.log(a);  // 1
function a() {
    console.log(2);
}
a()   // 报错:a is not a function
a = 3
console.log(a);

3var a = b
a = 0
b = 0
console.log(a)
console.log(b)

预解析:
var a

a = b // 将b当做一个具体数据使用,b必须有值
a = 0
b = 0 // 省略var定义变量,不会预解析
console.log(a)
console.log(b)