匿名函数基础
- 本质:使用()包裹匿名函数 不报错 在匿名函数后使用()代表调用匿名函数
- 匿名函数不能独立存在
- 匿名函数需要赋予变量
var a = funcrtion(){} f();
<script>
var a = function(n){
console.log("我是匿名函数",n);
}
a(5);
(function(c){
console.log("我也是匿名函数",c);
})(123)
</script>
匿名函数做实参
<script>
function fun1(n, s, b, a, o, f) {
console.log(n);//number
console.log(s);//字符串
console.log(b);//布尔值
console.log(a);//数组
console.log(o);//对象
// console.log(f);
f();
}
var fun2 = function (num) {
console.log("112")
}
fun1(10, "字符串", true, [1, 2, 3], { "p1": 123 }, fun2)
</script>
递归函数
- 一个函数在它的函数体内调用它自身
- 每一个递归函数都应该只进行有限次的递归调用
- function get(){} get()函数名
函数名就是函数的引用 也是函数的内存地址
<script>
function sum(a) {
if (a == 1) {
return 1;
} else {
return a + sum(a - 1);
}
}
var b = sum(5);
console.log(b);
</script>
系统函数
- parseInt()
可以把字符串和number取整 转行为number
parseFloat()
小数 - eval()
可以将字符串(符合js语法)转换为js语句 - isNaN()
判断一个变量是不是数字
是数字或者能转换为数字返回false 反之返回true - isFInite()
是否有限
在大多数浏览器中这个值是:5e-324 - 编码解码
escape 编码
对字符串进行编码
unescape 解码
解开escape编码
<script>
//parseInt
// function fun1(a) {
// return parseInt(3.12);
// }
// var b = fun1();
// console.log(b);
//eval
// var s = prompt();
// eval(s);
// console.log(s);
//isNaN
// console.log(isNaN(12),isNaN("hello"));
console.log(isFinite(200));
</script>
延迟函数
- setimeout
单位为毫秒 控制输出的延迟
可以嵌套 时间叠加
不会影响延迟函数无关的参数
<script>
// function f(a){
// console.log("无敌是多么寂寞");
// }
// f();
// var f= function(a){
// console.log("无敌是多么寂寞");
// }
// f();
setTimeout(function () {
console.log("无敌是多么寂寞");
}, 5000)
setTimeout(function () {
console.log("对方的付出");
setTimeout(function () {
console("来迟了");
}, 3000)
}, 5000)
console.log("欧拉欧拉欧拉");
</script>