函数和变量声明
函数是"一等公民", 程序运行的时候, 不管函数定义在什么位置, 都会先执行声明, 所以在任何地方都可以调用函数
<script>
sum();
// 1:声明函数
function sum() {
var count = 0;
for (var i = 0; i <= 100; i++) {
count += i;
}
console.log("count", count);
}
//2: 调用函数
sum();
</script>
</head>
<body></body>
<script>
//变量一开始运行就声明, 等到代码运行到变量声明的那句代码才可以对其进行赋值
console.log("str", str); //不会报错,输出undefined
var str = "hello";
console.log("str", str); //输出hello
</script>
对象中的方法
-
这段代码中,首先定义了一个变量 obj,它的值是一个 js对象。这个对象有三个属性:name、age 和 say。其中,name 和 age 属性的值分别为字符串 "张三" 和数字 18,而 say 属性的值是一个函数。
-
在代码的最后,调用了 obj.say() 方法,这会导致对象的 say 属性中定义的函数被执行。执行函数时,会在控制台输出字符串 "他是张三"。
-
总的来说,这段代码展示了如何在 js 中定义一个对象,并调用它的方法。
<script>
var obj = {
name: "张三",
age: 18,
say: function () {
console.log("他是张三");
},
};
obj.say();
</script>
函数表达式
<script>
var say = function () {
console.log("他是谁?");
};
say();
</script>
带参数的函数
<script>
//1:函数可以重复相同的代码
function cook() {
console.log("土豆");
}
cook();
cook();
// 2:可以利用函数的参数实现函数重复不同的代码
function 函数名(形参1,形参2,形参3.............){
}
函数名(实参1,实参2,实参3.............)
//3:形参和实参的执行过程
function cook(aru) {
console.log(aru);
}
cook("陈一");
cook("赵二");
//4:函数的参数可以有,也可以不限制个数
</script>
函数形参实参个数匹配
<script>
function getSum(num1, num2) {
console.log(num1 + num2);
}
// 1:如果实参的个数和形参的个数一致,则正常输出结果
getSum(1, 2);
//2:如果实参的个数多余形参的个数,则会取到形参的个数
getSum(1, 2, 3);
//3:如果实参的个数小于形参的个数,多余的形参定义为undefined,最终结果就是NaN
//4:形参可以看做是不用声明的变量,num2是一个变量但没有接收值,最终结果就是undefined
//5:尽量让实参的个数和形参相匹配
getSum(1); //NaN
</script>
函数的返回值
<script>
// 1:函数是做某件事或者实现某种功能
function cook(aru) {
console.log(aru);
}
cook("hello");
// 2:函数的返回值格式
function 函数名() {
return;
}
函数名();
//1:函数是做某件事或者实现某种功能,最终的结果需要返回给函数的调用者函数名() 通过return实现
//2:只要函数遇到return 就把后面的结果返回给函数的调用者,函数名() = return 后面的结果
function getResult() {
return "word";
}
getResult();
console.log(getResult());
function cook(aru) {
return aru;
}
console.log(cook("土豆"));
console.log(cook("苹果"));
// 求任意两个数的和
function getSum(num1, num2) {
return num1 + num2;
}
console.log(getSum(1, 2));
console.log(getSum(11, 22));
</script>
函数返回值注意事项
<script>
// 1:return 终止函数(return后面的代码不在执行)
function gerSum(num1, num2) {
return num1 + num2;
alert("我不会被执行的");
}
console.log(gerSum(1, 3));
// 2:return 只能返回一个值,返回的结果是最后一个值,值为1
function fn(num1, num2) {
return num1, num2;
}
console.log(fn(2, 1));
//3:我们求任意两个数的 加减乘除结果
function getResult(num1, num2) {
return [num1 + num2, num1 - num2, num1 * num2, num1 / num2];
}
console.log(getResult(1, 2)); //返回的是一个数组[3, -1, 2, 0.5]
//4:函数如果有return,则返回的是return后面的值,如果函数没有return则返回undefind
function fun1() {
return 666;
}
console.log(fun1()); //返回 666
function fun2() {
return;
}
console.log(fun2()); //返回 undefined
</script>
arguments使用
伪数组,并不是真正意义上的数组
-
具有数组的length属性
-
按照索引的方式进行存储的
-
它没有真正数组的一些方法,比如pop() push()...
<script>
// arguments的使用,只有函数才有arguments对象,而且是每个函数都内置好了这个arguments
function fn() {
// console.log(arguments); //arguments里面存储了所有传递过来的实参
// console.log(arguments.length); //检测数组的长度
// console.log(arguments[1]); //判断数组中第2个是什么
// 可以按照数组的方式遍历arguments
for (var i = 0; i < arguments.length; i++) {
console.log(arguments[i]);
}
}
fn(1, 2, 3);
fn(1, 2, 3, 4, 5);
</script>
利用函数翻转数组
1:这段代码包含了一个叫做
reverse
的函数,它可以翻转一个数组。2:函数的定义使用了 JavaScript 中的函数声明语法,其中
reverse
是函数的名称,arr
是函数的参数。函数的主体使用了一个循环,在每次迭代中,它将数组arr
的最后一个元素添加到新数组newArr
的末尾。循环继续进行,直到遍历了整个数组arr
,此时新数组newArr
就是翻转后的数组。最后,函数使用return
语句将新数组返回。3:在函数定义的下面,它还调用了两次函数,分别将数组
[1, 2, 3, 4, 7, 9]
和数组["pink", "red", "blue"]
作为参数传入。函数调用后,它使用console.log()
函数将函数的返回值输出到控制台。输出的结果将是两个翻转后的数组。
<script>
//利用函数翻转任意数组 reverse 翻转
function reverse(arr) {
var newArr = [];
for (var i = arr.length - 1; i >= 0; i--) {
newArr[newArr.length] = arr[i];
}
return newArr;
}
var arr1 = reverse([1, 2, 3, 4, 7, 9]);
console.log(arr1);
var arr2 = reverse(["pink", "red", "blue"]);
console.log(arr2);
</script>
利用函数翻转数组
1: 这段代码定义了一个函数
reverse
,该函数接受一个数组作为参数,并返回一个新的数组,该数组的内容为原数组的元素从后往前的顺序。2: 具体来说,函数
reverse
首先定义了一个新数组newArr
,然后使用了一个for
循环来遍历原数组。在循环体中,它使用了数组的length
属性来追加数组元素。最后,函数返回新数组。3: 在函数的末尾,有两个变量
arr1
和arr2
,它们分别调用了函数reverse
并将结果赋值给自己。最后使用console.log
函数来输出变量的值。因此,当这段代码执行时,会在控制台输出两个数组:第一个数组是[9, 7, 4, 3, 2, 1]
,第二个数组是["blue", "red", "pink"]
。
<script>
//利用函数翻转任意数组 reverse 翻转
function reverse(arr) {
var newArr = [];
for (var i = arr.length - 1; i >= 0; i--) {
newArr[newArr.length] = arr[i];
}
return newArr;
}
var arr1 = reverse([1, 2, 3, 4, 7, 9]);
console.log(arr1);
var arr2 = reverse(["pink", "red", "blue"]);
console.log(arr2);
</script>
利用函数冒泡排序
1: 这段代码定义了一个 JavaScript 函数
sort
,该函数可以用于将数组的元素按升序排序。2:
sort
函数的实现使用了冒泡排序算法,该算法的基本思想是通过重复地遍历数组,依次比较相邻元素的大小,并交换位置,使得较大的元素慢慢“浮”到数组的最后面。3: 在这段代码中,
sort
函数首先定义了两个循环变量i
和j
,然后使用嵌套循环对数组进行遍历。内层循环每次从数组的第一个元素开始,依次比较相邻元素的大小并交换位置,直到比较到数组最后一个元素。外层循环则控制内层循环的次数,使得数组的所有元素都参与比较。4: 最后,
sort
函数返回已经排序好的数组,并将该数组赋值给变量arr1
,然后使用console.log
函数将arr1
的值输出到控制台。
<script>
function sort(arr) {
for (var i = 0; i <= arr.length - 1; i++) {
for (var j = 0; j <= arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
var arr1 = sort([11, 1, 2, 4, 5, 8, 6]);
console.log(arr1);
</script>
利用函数判断闰年
1: 该函数首先将变量初始化为false
2: 它使用以下条件检查年份是否为闰年:((year % 4 == 0 && year % 100 !== 0) || year % 400 == 0)此条件检查年份是否可以被 4 整除,但不能被 100 整除(除非它也可以被 400 整除)。
3: 如果这些条件中的任何一个为真,则标志设置为true。
<script>
function isRunYear(year) {
var flag = false;
if ((year % 4 == 0 && year % 100 !== 0) || year % 400 == 0) {
flag = true;
}
return flag;
}
console.log(isRunYear(2000));
console.log(isRunYear(1999));
</script>
输出2月份的天数
1: 这段代码定义了一个
backDay
函数,当调用这个函数时,会弹出一个对话框,要求用户输入年份。然后,它会调用另一个函数isRunYear
,并将输入的年份作为参数传递给它。2:
isRunYear
函数接收一个年份作为参数,并判断这一年是不是闰年。闰年是指能被4整除但不能被100整除,或者能被400整除的年份。如果是闰年,它会返回true
;否则,它会返回false
。3: 当调用
backDay
函数时,如果isRunYear
返回的是true
,就会弹出一个对话框,提示用户输入的年份是闰年,2月份有29天。否则,会弹出另一个对话框,提示用户输入的年份是平年,2月份有28天。
<script>
function backDay() {
var year = prompt("请您输入年份:");
if (isRunYear(year)) {
alert("您输入的年份是闰年,2月份有29天");
} else {
alert("您输入的年份是平年,2月份有28天");
}
}
backDay();
function isRunYear(year) {
var flag = false;
if ((year % 4 == 0 && year % 100 !== 0) || year % 400 == 0) {
flag = true;
}
return flag;
}
</script>
函数的两种声明方式
1. fun是变量名不是函数名
2. 函数表达式声明方式跟声明变量差不多,只不过变量里面存的是值而函数表达式重面存的是函数
3. 函数表达式也可以进行传递参数
<script>
// 1:利用函数关键字自定义函数(命名函数)
function fn() {
1;
}
fn;
// 2: 函数表达式(匿名函数)
var fun = function (aru) {
console.log("我是函数表达式");
console.log(aru);
};
fun("hello");
</script>
标签:function,console,log,05,数组,return,函数
From: https://www.cnblogs.com/jokerwen/p/17033714.html