1. 函数定义的两种方式
声明式
function fn(){}
赋值式,函数表达式
var fn = function(){}
区别?声明式调用可以上面也可以下面
赋值式 只能下面调用
2. 函数封装的原则
函数的功能:
函数参数
函数返回值
/*
功能:水仙花个数
参数:2个
返回值:水仙花个数
*/
3. 带return函数的特点
函数的运行结果,可以用getN()来表示这个结果
function fn(){
return 1;
}
var x = fn();
console.log(x)
fn() === 1 fn()表示1
1. 返回一个值
2. 终止函数的执行
3. 任何函数都有return ,用户不写,会默认有一行 return undefined;
function fn(){
var x = 10;
}
console.log(fn());//undefined;
4. 全局作用域和局部作用域的区别
for(var i = 1;i<=10;i++){
}
console.log(i);//11
5. 作用域的访问规则和赋值规则
var x = 20;
function fn(){
var x = 10;
x =50;
console.log(x)
}
fn();
console.log(x)
var x = 20;
function fn(){
x = 30;
console.log(x);//30
}
fn();
console.log(x)
6. 写出下面的代码的结果?
var a = 10;
function fn(){
a= 20;
}
console.log(a);//10
var a = 10;
function fn(a){
a= 20;
}
fn(3);
console.log(a); //10
var a = 10;
function fn(){
var a = 1;
a= 20;
}
fn();
console.log(a);//10
var x = 20;
function fn() {
x = 30;
console.log(x);
}
console.log(x); //20
fn(); // 30
console.log(x); //30
// 23 输出的? 只能访问全局变量
// fn() x=30到底修改的是谁,如果函数内部定义了变量 var x; 就修改函数内部的变量,函数外部不改变
// 如果函数内部内部没有var x;向上查找,修改是全局的x x = 30
// x都被修改了,所以x =30