parseInt()会取整数
parseFloat() 转成浮点数
isNaN()判断 是不是一个数字
全局变量:在函数外声明的变量,网页上的所有脚本和函数都能访问它
局部变量:在函数内部声明的变量(必须使用var)
全局变量 具有全局的作用域
局部变量 具有局部作用
添加学员 展示学员信息
/* let arr = []; */
function addStu(){
/* 局部变量 具有局部作用 */
/* arr只有变成全局的才不会被重复定义
let arr = []; */
let stu = prompt('输入学员姓名')
arr.push(stu)
console.log(arr);
}
function showStu(){
document.write(arr.join(' '));
}
/* 变量提升 */
/* 当你下面使用var的时候会出现变量提升的情况 */
/* var a => a = undefined (已经声明了
但是没有赋值,给了一个初始值叫做undefined ) */
/* console.log(a);
var a = '123'; */
/* var a = 123;
var a = 456;
console.log(a); */
/* let 不存在变量提升,不能在还没有初始化的时候
使用变量,否则就给报错 下面的代码就不会被执行 */
/* console.log(a)
let a = '123'
console.log(123); */
/* let不能够重复定义 */
// let a = 123;
// let a = 456;
// console.log(a);
/* 函数是js里面的一等公民 */
/* 声明了function会提升函数到最前面 */
/* 页面一加载的时候会先找有没有 var 和 function
如果发现有var 就会把变量预定义为undefined
如果发现有function 就会把function这个方法放在最前面 */
/*
function fn(){
console.log(111);
}
a = undefined
*/
// fn();
// var a = '123'
// function fn(){
// console.log(111);
// }
/* 定义个变量 在定义一个函数 变量是一个字符串
在函数里面打印出来 */
/* a是一个全局的变量 */
/*
变量提升阶段
function fn(){
console.log(a);
}
a = undefined
代码执行阶段
打印undefined
a被赋值成 123
最后打印123
*/
fn();
var a = '123'
function fn(){
console.log(a);
}
console.log(a);
</script>
/*
function f1(){
var num=1;
}
alert(num);
错误
原因:在函数外部无法读取函数内的局部变量
*/
/* 一个函数就可以理解为一个闭包 */
/* function f1() {
alert(1);
} */
/*
闭包的用途
可以读取函数内部的变量
让这些变量的值始终保持在内存中
*/
function fn1(){
let a = 1
/* 代码中的内部函数(fn2)就是闭包
*/
/* 可以把闭包简单理解成"定义在一个函数内部的函数" */
/* 是将函数内部和函数外部连接起来的一座桥梁 */
function fn2(){
/* 闭包就是能够读取其他函数内部变量的函数 */
document.write(a);
}
return fn2;
}
/* console.log( fn1() ) */
/* 通过这种方式 就可以得到fn1的局部变量a的值 */
fn1()()
/* function fn(){}
console.log(fn); */