内置函数
parseFloat()用于返回解析字符串后的浮点数。isNaN()判断给定参数是否为NaN,判断结果为是,返回true,否则返回false。parseInt()用于返回解析字符串后的整数值
函数的定义
函数的定义由以下4部分组成:关键字function、函数名、参数和函数体。
定义命名函数:
参数设置
无参函数:适用于不需要提供任何数据,即可完成指定功能的情况。
有参函数:适用于开发时函数体内的操作需要用户传递数据的情况。
形参:形式参数,具有特定的含义,在定义有参函数时设置的参数。
函数的调用
直接调用:函数名(实参值) 例: sayHi("南工院", "新学期开学了");
在表达式中调用:这种方式适合有返回值的函数,返回值作为表达式的一部分参与运算,有时还会和(alert、document)等语句配合输出。
注意点:return 语句不是函数必须的,但任何函数在任何时候都可以通过return语句+ 返回的值,实现返回。
变量的作用域
变量的使用是有作用域范围的。
作用域划分:全局作用域、函数作用域和块级作用域,不同作用域对应的变量:全局变量、局部变量、块级变量。
全局变量:不在任何函数内声明的变量(显示定义)或在函数内省略var声明变量(隐式定义)都称为全局变量。作用范围:它在同一个页面文件中的所有脚本内都可以使用。
局部变量:在函数体内利用var关键字定义的变量称为局部变量,它仅在该函数体内有效。
块级变量:let关键字声明的变量称为块级变量,仅在"{}"中间有效,如if、for或while语句等。
回调函数
概念:所谓回调函数指的就是一个函数A作为参数传递给一个函数B,然后在B的函数体内调用函数A。此时,我们称函数A为回调函数。
提示:匿名函数常用作函数的参数传递,实现回调函数。
应用:函数体中某部分功能由调用者决定,此时可以使用回调函数。
嵌套函数
概念:在一个函数内部存在另一个函数的声明
特点:内层函数只能在外层函数作用域内执行,在内层函数执行的过程中,若需要引入某个变量,首先会在当前作用域中寻找,若未找到,则继续向上一层级的作用域中寻找,直到全局作用域,我们称这种链式的查询关系为作用域链。递归调用是其嵌套函数的一个特例。
包庇函数
在JavaScript中,内嵌函数可以访问定义在外层函数中的所有变量和函数,并包括其外层函数能访问的所有变量和函数。但是在函数外部则不能访问函数的内部变量和嵌套函数。此时就可以使用"闭包"来实现。所谓"闭包"指的就是有权访问另一函数作用域内变量(局部变量)的函数。它最主要的用途是以下两点:可以在函数外部读取函数内部的变量以及可以让变量的值始终保持在内存中。但是由于闭包会使得函数中的变量一直被保存在内存中,内存消耗很大,所以闭包的滥用可能会降低程序的处理速度,造成内存消耗等
常用内置函数
decodeURI:对用encodeURI方法编码的字符串进行解码。
decodeURIComponent:对用encodeURIComponent方法编码的字符串进行解码。
encodeURI:将字符串编码为一个有效的统一资源标识符(URI)。
encodeURIComponent:将字符串编码为URI的一个有效组成部分。
eval:解析JavaScript代码并执行。
parseFloat:返回由字符串转换得到的浮点数。
parseInt:返回由字符串转换得到的整数。
isFinite:返回一个Boolean值,指明所提供的数字是否为有限值。
isNaN:返回一个Boolean值,指明提供的值是否为保留值NaN(不是数字)。、
escape:对字符串进行编码以便它们能在所有计算机上可读。
unescape:对用escape进行编码的字符串进行解码。