parseInt("")如果里面填的是数字字符串,则把字符串转成数字,如果有字母,则返回NaN(not a number)
isNaN():用于判断是否不是数字
目前来讲,函数有两种调用方法,在html标签中使用onclick方法调用,或者在script标签中直接调用,传参同理
全局变量在全局都能访问,包括网页中任何脚本和函数,在页面关闭后被删除
局部变量只能在函数内部被访问,函数运行结束后,会被垃圾回收机制(GC)释放,提高了性能,在函数内不用var/let/const声明变量,会提升为全局变量
函数通过return将值返回调用它的地方,return调用后,后面的内容就不会执行了。
作用域:
变量可访问的范围
window对象都是全局对象;未声明的变量也拥有全局作用域,
局部作用域:和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到
作用域链 先从当前寻找,如果找不到就会一层一层向上寻找,直到找到,如果一直向上寻找也找不到,就会报错
闭包:
一个函数就是一个闭包
JS特有的"链式作用域"结构(父对象的所有变量,对子对象都是可见的,反之则不成立)
闭包的用途:可以读取函数内部的变量,让这些变量的值始终保持在内存中
缺点:
①闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露
②闭包会在父函数外部,改变父函数内部变量的值