作用域是指函数存在的范围 js只存在两种作用域: 1.全局作用域:函数外部的作用域 2.函数作用域:函数内部的作用域 注意:js没有块级作用域的概念 例子: for(var i = 0;i<6;i++){ console.log(i); } console.log('---->',i); { var age = 19; console.log(age); } console.log('--->',age); 变量分为: 1、全局变量: 定义在全局作用域的变量 任何一个函数都可以访问 当多个函数都需要使用则定义为全局变量 2、局部变量: 定义在函数内的变量 局部变量 一般情况下只能被函数内部访问 只在函数内部使用定义为局部变量 eg: var x=10;//全局函数 function func1(){ var x=5; //局部函数 console.log(x);//5 } func1(); console.log(x);//10 函数也有全局作用域和函数作用域的区分: 声明在全局作用域的函数 可以在任意位置调用; 声明在函数内部的函数 【一般】只能在函数内部调用
1. 开启严格模式: 'use strict'; a.ECMAScript规定:严格模式 不能在非函数的代码块中声明函数。 例子: if (7 > 6) { function show() { console.log('aaaaa'); } show(); } for (var i = 0; i < 10; i++) { console.log(i); } 2.使用函数名获取函数名 function getSum(a,b){ return a+b; } console.log(getSum.name);//getSum //获取形参的个数 函数名.length console.log(getSum.length);//2 3.自执行函数 语法:(function(形参){ })(实参) 作用:1.作用域的隔离 2.将变量保留在内存中
(function (m) { console.log('--->',m); })(10) (function (m) { console.log('--->',m); })(10)