JavaScript的函数
函数:是个功能体,需要提供若干值,返回处理结果
JavaScript分为系统函数和自定义函数
区别
系统函数 自定义函数 系统提供的用户提供值然后返还结果 用户自己定义的函数,执行用户自己定义的方式和返回值
自定义函数:封装重复执行的代码,方便时用,避免要重复书写一些代码
自定义函数(回调函数)的格式:
function 自定义函数名(){
执行的代码
console.log(传参) // 结果为传入的参数
}
// 调用函数
自定义函数名()
函数只是创建,不会立刻执行代码,如果需要执行的话则需要调用
调用函数后只会执行一次自定义(回调函数)
练习
创建回调函数计算1-100的和:
function man(){
for(var i=0,a=0; i<=100; i++){
a+=i
console.log(a)
}
}
man()
创建带有传参的函数
代码格式
function 自定义函数名(传参){
执行的代码
console.log(传参) // 结果为传入的参数
}
// 调用函数
自定义函数名(传入的参数)
// 传参接受外部传递的值
在调用的时候传递的参数在回调函数里面,相当于一个函数
比如传参的时候传入参数,这个参数指定后打印的值
function man(x) {
console.log(x)
}
man(100)
当调用函数的时候传入了100,所以在回调函数里面x则为100,回调函数打印x的值,所以打印出了100
传入两个参数也是可以的
function man(x,y) {
console.log(x,y)
}
man(100,200)
结果如图:
解析:
function man(x,y) {
console.log(x,y)
// x,y是实参
}
man(100,200)
// 实参
当传入函数的值少多或者不传
少传
当传入的参数少的时候结果就为NaN
function man(x,y) {
console.log(x+y)
}
man(200)
结果:
关于NaN:
Number.NaN 是一个特殊值,说明某些算术运算(如求负数的平方根)的结果不是数字。方法 parseInt() 和 parseFloat() 在不能解析指定的字符串时就返回这个值。对于一些常规情况下返回有效数字的函数,也可以采用这种方法,用 Number.NaN 说明它的错误情况。
JavaScript 以 NaN 的形式输出 Number.NaN。请注意,NaN 与其他数值进行比较的结果总是不相等的,包括它自身在内。因此,不能与 Number.NaN 比较来检测一个值是不是数字,而只能调用 isNaN() 来比较。
不传
如果不给其传参那么函数回调的结果则为NaN
function man(x,y,z) {
console.log(x+y+z)
}
man(200,200)
JavaScript 以 NaN 的形式输出 Number.NaN。请注意,NaN 与其他数值进行比较的结果总是不相等的,包括它自身在内。因此,不能与 Number.NaN 比较来检测一个值是不是数字,而只能调用 isNaN() 来比较。
多传
如果多传也可以正常获取数据
function man(x,y,z) {
console.log(x+y+z)
}
man(999,111,111,111)
三目运算符
JavaScript中三目运算符用作判断时,基本语法为: mian ? x : y
判断
当mian的值为真时执行x,否则执行 y, 如下所示
var b = 1,
c = 1
a = 2;
a >= 2 ? b++ : b--;
//当a>=2时b+1反之则-1
console.log(a,b,c);
a < 2 ? c++ : c--;
//当a<2时c+1反之则-1
console.log(a,b,c);
结果:
转换为if语句则为:
if (a>=2) {
b++;
} else{
b--
}
if(c<2){
c++
}else{
c--
}
赋值
应用场景在于赋值,var param = expression ? value1 : value2,这个经常用到
var b,
c = 1;
var a = b ? 2 : 1;
a // 1
var a = c > 0 ? 2 : 1
a // 2
return
关于return
return是在回调函数中运行后结束当前运行并返回值,这个值是可以使用的,如下图
function a(x, y) {
if(x>y){
return x
}else{
return y
}
}
var xy=a(80,20)
console.log(xy)
当运行时当x>y则会返回x反之则为y
此时xy被赋予了回调函数的值,所以可以打印出来,当然我们也可以更直接一点
function a(x, y) {
if(x>y){
return x
}else{
return y
}
};
var xy=a(80,20);
console.log(a(80,20));
console.log(xy);
运行如图:
补充return
return
语句终止函数的执行,并返回一个指定的值给函数调用者。
当在函数体中使用语句时,函数将会停止执行。如果指定一个值,则这个值返回给函数调用者。例如,以下函数返回其参数的平方,其中是数字。return
x
x
function square(x) {
return x * x;
}
var demo = square(3);
// demo will equal 9
如果省略该值,则返回。undefined
练习
计算闰年
创建一个函数当传入任何一年的时候判断这年是否为闰年,返回true和false
需要达到以下效果:
答案:
function isRun(x){
if(x%4==0&&x%100!==0||x%400==0){
return true;
}else{
return false;
}
}
console.log(isRun(3000))
转换为三目运算为:
function isRun(x){
return x%4==0&&x%100!==0||x%400==0 ? true : false;
}
console.log(isRun(3000))
因为三目的使用方法本来就是真和假,所以可以简化为
function isRun(x){
return x%4==0&&x%100!==0||x%400==0
}
console.log(isRun(3000))
switch-else语句
语法
switch (判断值){
case 定值1:
代码块1
break
// 跳出判断
case 定值2:
代码块2
break
// 跳出判断
}
如上当判断值等于定值一致时执行代码块一,判断值等于定值二致时执行代码块二