三元表达式
- 条件表达式?值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
-
- (): 必须要带
- 函数声明式,调用的时候可以放在函数定义的上面或者下面
- 表达式声明法(函数赋值):调用时只能写在函数定义的下面,放在上面会报错
定义函数的两种方式:
- 函数声明式。通过function关键字 来声明的
- // function printSanJiaoXing(){}
- 表达式声明法(函数赋值)
- 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() -
函数不调用不执行。
-
特定功能:打印三角形
函数的参数:
- 形参: 函数定义时写的参数叫形参
- 实参: 函数调用时写的参数叫实参
- 函数调用的本质是:将实参赋值给形参
// 求任意两个数字的 运算(加,减,乘法,除)
// 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:
- 我想把的到的这个和,存起来,下次还能用
- function getSum(x,y){
return x+y; }
- 通过return 关键字返回出来的结果,函数调用时,结果就可以被保存起来
- var sum = getSum(10,23);//把结果保存在sum变量中
- 带return的函数,函数调用的结果是一个值,可以直接输出,也可以存到变量中
- // console.log(sum);
- 带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);