day 4 三元表达式、函数

三元表达式

  • 条件表达式?值1:值2
  • 当条件表达式结果为true,选择的是值1
  • 当条件表达式结果为false,选择的是值2
// var y = (x%4==0&&x%100!=0||x%400==0)?'是闰年':'是平年';
// console.log(y);

        // var x = 35;
        // var y = x%2==0?'是偶数':'是奇数'
        // console.log(y);
        // (条件表达式)?值1:值2;

// 输入数字,如果不是两位,就补0,是两位,直接输出
	var x = +prompt('请输入...')
	var y = x < 10 ? '0' + x : x;

函数

  • 封装一段具有特定功能的代码块,可以重复调用

函数定义:

1. 声明式

  • 参数列表: 0个或者多个
  • 函数名(实参)
  • function 函数名(形参列表){
    // 代码块;}
// printSjx();
 // function printSjx() {
   //     document.write('<table>')
   //     for (var i = 1; i <= 9; i++) {
   //         document.write('<tr>')
   //         for (var j = 1; j <= i; j++) {
  //    // document.write('<td>'+i+'*'+j+'='+i*j+'</td>')
  //    document.write(`<td>${i}*${j}=${i * j}</td>`)
  //         }
	//         document.write('</tr>');
   //     }
   //     document.write('</table>')
   // }

2.函数表达式

  • 匿名函数(没有名字的函数)
  • —>function(){} 函数名(实参列表)
  • var 函数名 = function(形参列表){ }
// printSanJiaoXing();
 // var printSanJiaoXing = function(){
 //     document.write('<table>')
 //     for (var i = 1; i <= 9; i++) {
 //         document.write('<tr>')
 //         for (var j = 1; j <= i; j++) {
 //    // document.write('<td>'+i+'*'+j+'='+i*j+'</td>')
 //       document.write(`<td>${i}*${j}=${i * j}</td>`)
  //         }
 //         document.write('</tr>');
 //     }
 //     document.write('</table>')
 // }

定义函数的两种方式区别:

  • 函数名:驼峰命名法 动词 eatApple printSanJiaoXing
    • (): 必须要带
  1. 函数声明式,调用的时候可以放在函数定义的上面或者下面
  2. 表达式声明法(函数赋值):调用时只能写在函数定义的下面,放在上面会报错

定义函数的两种方式:

  1. 函数声明式。通过function关键字 来声明的
  • // function printSanJiaoXing(){}
  1. 表达式声明法(函数赋值)
  • var printSanJiaoXing = function(){ }

函数的概念:

  • 完成特定功能的代码块的一个封装,这个封装的代码块可以重复执行

写法:

  • 声明变量
    // var x = 10;
  • 声明变量
    // 声明函数
    // function fn(){ }
  • // 利用函数封装
function printSjx() {
    document.write('<table>')
      for (var i = 1; i <= 9; i++) {
        document.write('<tr>')
         for (var j = 1; j <= i; j++) {
        // document.write('<td>'+i+'*'+j+'='+i*j+'</td>')
           document.write(`<td>${i}*${j}=${i * j}</td>`)
                }
                document.write('</tr>');
            }
            document.write('</table>')
        }
  • 封装完的代码可以重复执行

  • 调用函数
    // printSjx()
    // printSjx()
    // printSjx()

  • 函数不调用不执行。

  • 特定功能:打印三角形

函数的参数:

  1. 形参: 函数定义时写的参数叫形参
  2. 实参: 函数调用时写的参数叫实参
  3. 函数调用的本质是:将实参赋值给形参
//   求任意两个数字的 运算(加,减,乘法,除)
// function getYunSuan(x, y, op) {
//     switch (op) {
//         case "+":
//             console.log(x + y);
//             break;
//         case "-":
//             console.log(x - y);
//             break;
//         case "*":
//             console.log(x * y);
//             break;
//         case "/":
//             console.log(x / y);
//             break;
//         default:
//             console.log('请输入+或者-或者*或者/');
//             break;
//     }
// }

// getYunSuan(20,10,'+')
// getYunSuan(20,10,'-')
// getYunSuan(20,10,'*')
// getYunSuan(20,10,'/')

形参 = 实参 一一兑现

  • 参数赋值会一一对应 x = 2 y = 3

形参 > 实参 多出来的参数 undefined

  • 没有给赋值的形参,值为undefined

形参 < 实参 arguments

  • 可以通过arguments来获取传入的实参

arguments

  • 每一个函数内部都会有一个叫arguments:它会记录你传递过去的所有实参
  • length:长度(个数)
  • arguments.length:传入实参的个数
  • arguments[arguments.length-1]: 传入参数的最后一号元素
  • 第一个值为 arguments[0]
function fn() {
    console.log(arguments[arguments.length - 1]);//zs
    console.log(arguments[arguments.length - 3]);//35
    console.log(arguments[4]);//54
  	console.log(arguments[5]);//34
    }

fn(12, 45, 90, 78, 54, 34, 23, 1, 23, 1, 3,
 43, 90, 13, 35, 12, 'zs');

// arguments[3]     //78
// arguments[aruments.length-1]   //'zs'


// arguments:  [2, 3,6,4,5]
//arguments[0]  arguments[1]  arguments[2]  arguments[3] 
//arguments[4]    

return:

  1. 我想把的到的这个和,存起来,下次还能用
  • function getSum(x,y){
    return x+y; }
  1. 通过return 关键字返回出来的结果,函数调用时,结果就可以被保存起来
  • var sum = getSum(10,23);//把结果保存在sum变量中
  1. 带return的函数,函数调用的结果是一个值,可以直接输出,也可以存到变量中
  • // console.log(sum);
  1. 带return的函数,函数调用的结果是一个值,可以直接输出,也可以存到变量中
  • // console.log(getA());
    // var x = getA()
    // console.log(x);
 // function getSum(x,y){
        //     return x+y;
        // }

 // console.log(getSum(1,2));
 // var x = getSum(1,2);
 // console.log(x);

 function getMax(x,y){
            var s= 0; //记录最大值的
              if (x>y) {
                 s = x;
              }else if (x==y) {
                 s= y;
              }else{
                  s= y;
              }
              return s;  //挤出去
        }

 // var shuiBei = getMax(142,45)
 //  console.log(shuiBei);

for循环:循环条件里必须写var(for var i=1;i<=100;i++)

return函数只能返回一个值 return函数放在函数最后面

上一篇:Flink实战(八十七):flink-sql使用(十四)Flink 与 hive 结合使用(六)Hive 函数


下一篇:Flink实战(八十七):flink-sql使用(十四)Flink 与 hive 结合使用(六)Hive 函数