JavaScript 函数
函数概念
实现代码复用,被设计为执行特定任务的代码块
函数使用
先声明函数 function 函数名(){}
再调用函数 函数名()
函数的命名规范
和变量命名基本一致
尽量小驼峰式命名法
前缀应该为动词
命名建议:常用动词约定
can:判断是否可执行某个动作
has:判断是否含义某个值
is:判断是否为某个值
get:获取某个值
set:设置某个值
load:加载某些数据
函数传参
function 函数名(a,b){}
形参:声明函数时写在函数名右边小括号里的叫形参。可以理解为在这个函数内声明的变量
函数名(a,b)
实参:调用函数时写在函数名右边小括号里的叫实参。可以理解为给这个变量赋值
开发中尽量保持形参和实参个数一致
函数返回值
当函数需要返回数据出去时,用return关键字
语法 return 数据
在函数体中使用return关键字能将内部的执行结果交给函数外部使用
return后面的代码不会再被执行,会立即结束当前函数,所以return后面的数据不要换行写
return函数可以没有return,这种情况函数默认返回值为undefined
函数细节补充
两个相同的函数后面的会覆盖前面的函数(就近原则)
在JavaScript中实参的个数和形参的个数可以不一致
如果形参过多,会自动填上undefined
如果实参过多 那么多余的实参会被忽略(函数内部有一个arguments,里面装着所有的实参)
函数一旦碰到return就不会往下执行了 相当于函数的结束用return
作用域
通常来说,一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域
作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突
全局作用域:全局有效
作用于所有代码执行的环境,或者一个独立的js文件
局部作用于:局部有效
作用于函数内的代码环境
特殊情况:
如果函数内部,变量没有声明,直接复制,也当全局变量看,但是强烈不推荐
变量的访问原则
只要是代码,就至少有一个作用域
写在函数内部的局部作用域
如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域
访问原则:在能够访问到的情况下,先局部,局部没有再找全局
匿名函数
具名函数:可以写到任何位置
声明:function fc() {}
调用:fn()
匿名函数:
function() {}
没有名字的函数,无法直接使用
使用方式:
函数表达式:给匿名函数赋值给一个变量,并且通过变量名称进行调用,我们称之为函数表达式
立即执行函数:防止变量污染
第一种写法:(function(形参){})(实参); 必须加分号
第二种写法:(function(形参){}(实参))
逻辑中断
短路:只存在于&&和||中,当满足一定条件会让右边的代码不执行
&& 左边为false就短路
||左边为true就短路
原因:通过左边能得到整个式子的结果,因此没必要再判断右边
逻辑于:都为真,返回最后一个真值
逻辑或:一真则真
运算结果:无论&&还是||,运算结果都是最后被执行的表达式值,一遍用在变量赋值
转换为Boolean型
显式转换:
“”、0、undefined、null、false、NaN转换为布尔值后都是false,其余则为true
隐式转换:
有字符串的加法""+1结果是“1”
减法-(像大多数数学运算一样)只能用于数字。会让空字符串""转换为0
null经过数字转换之后会变成0
undefined经过数字转换之后会变成NaN
JavaScript Study Note 系列文章


