赋值定义 和 声明定义 的区别
在js预解析时:
声明定义的函数会被提到最前面
赋值定义的函数会把声明部分提到最前面,定义部分位置不变
输出的时候,声明定义的函数有函数名,赋值定义的函数没有函数名
var fnn = function () { } //赋值式定义
function fnn1() { } //声明式定义
console.log(fnn);
console.log(fnn1);`
没有赋值的形参为返回值为undefined
function log(a, b, c) {
console.log(a, b, c)
}
log(1, 2)
函数返回值,默认值为 return undefined
return 具有中断函数的功能
需要终止函数时用 return false
var sum = fn() =====> 调用函数fn,并且把返回值存储给 sum
判断水仙花数
console.log('--- 判断水仙花数 ---');
function sxh(num) {
a = parseInt(num / 100)
b = parseInt(num % 100 / 10)
c = num % 10
return !!(a ** 3 + b ** 3 + c ** 3 == num)
}
console.log(sxh(153))
加法函数
function add(a, b) {
if (typeof a !== 'number' || typeof b !== 'number') return false
else return a + b
}
console.log(add(1, 2))
判断一个数是否为质数
function fn(num) {
var count = 0
for (i = 2; i < num; i++) {
if (num % i == 0) {
count++
}
}
if (count == 0) {
return true
} else return false
}
console.log(fn(9));
函数的预解析:
预解析之后(会把函数提升到当前作用域最顶层)
函数的预解析, 可以能会遇上同名变量的变量提升(变量的预解析) 直接以函数为主