最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript—详细介绍作用域,作用域链和预解析

来源:动视网 责编:小采 时间:2020-11-27 19:32:56
文档

JavaScript—详细介绍作用域,作用域链和预解析

JavaScript—详细介绍作用域,作用域链和预解析:变量包括:全局变量,局部变量在JAvaScript中,函数中定义的变量是局部变量作用域:就是变量的使用范围,分为:局部作用域和全局作用域js中没有块级作用域---一对括号中定义的变量,这个变量可以在大括号外面使用作用域链:变量的使用,从里向外,层层的搜索,搜
推荐度:
导读JavaScript—详细介绍作用域,作用域链和预解析:变量包括:全局变量,局部变量在JAvaScript中,函数中定义的变量是局部变量作用域:就是变量的使用范围,分为:局部作用域和全局作用域js中没有块级作用域---一对括号中定义的变量,这个变量可以在大括号外面使用作用域链:变量的使用,从里向外,层层的搜索,搜


变量包括:全局变量,局部变量

在JAvaScript中,函数中定义的变量是局部变量

作用域:就是变量的使用范围,

分为:局部作用域和全局作用域

js中没有块级作用域---一对括号中定义的变量,这个变量可以在大括号外面使用

作用域链:变量的使用,从里向外,层层的搜索,搜索到了就可以直接使用了

var num=10; //作用域链 级别:0
 var num2=20;
 var str = "abc"
 function f1() {
 var num2=20;
 function f2() {
 var num3=30;
 console.log(num);
 }
 f2();
 }
 f1();

层层搜索,搜索到0级作用域的时候,如果还是没有找到这个变量,结果就是报错

预解析:就是在浏览器解析代码之前,把变量的声明和函数的声明提前(提升)到该作用域的最上面

(1)变量的提升

下面这种情况,变量的声明被提前了,但是num的值并没有提前,结果为undefined

//变量的提升
 console.log(num);
 var num=100;


//提升之后为:
var num;//变量的声明提前
console.log(num);
 var num=100;

(2)

函数声明被提前,代码仍然可以执行

//函数的声明被提前了
 f1();
 function f1() {
 console.log("这个函数,执行了");
 }

但是对于下面这种情况,代码报错

f2();
 var f2=function () {
 console.log("小杨好帅哦");
 }

//声明提前后:
var f2;//为一个变量,undefind
f2();//undefind加括号是不被认可的,所以报错
 var f2=function () { 
 console.log("小杨好帅哦");
 }

要想不报错,代码可以改为:

var f2;
 f2=function () {
 console.log("小杨好帅哦");
 };
 f2();

相关文章:

聊一聊JavaScript作用域和作用域链

JavaScript作用域与作用域链深入解析

相关视频:

玩转javascript之三级联动实例

文档

JavaScript—详细介绍作用域,作用域链和预解析

JavaScript—详细介绍作用域,作用域链和预解析:变量包括:全局变量,局部变量在JAvaScript中,函数中定义的变量是局部变量作用域:就是变量的使用范围,分为:局部作用域和全局作用域js中没有块级作用域---一对括号中定义的变量,这个变量可以在大括号外面使用作用域链:变量的使用,从里向外,层层的搜索,搜
推荐度:
标签: 介绍 js 详细
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top