代码解析至少分两步

1):查找var,function参数例如下面这个例子

a= 未定义

fn1={alert(2)}函数的话,是整个整体

2):逐行读代码:类似=+-%*等都是表达式,表达式可以改变值

example1:

<script>

alert(a)   //最终结果:undefiner

var a=1

function fn1(){

alert(alert(2));

}

</script>

example2:

alert(a)         //4

var a=1

alert(a)       //1

function a(){alert(2)}

alert(a)      //1

var a=3;

alert(a)     //3

function a(){alert(4)}

alert(a)   //3

//分析;

1):查找var  function 参数,,重名时只会留下有值的,这里第一个是undefine,所以踢掉,若都有值,那么谁后执行就留下谁

a=3(最后留下来的值)

2):

example3:

var a=1;

function fn1(){

alert(a);

var a=2

}

fn1();//undefine

alert(a)//a=1

步骤1:

1):查找var function 参数

a=undefine

fn1=function fn1(){

alert(a);

var a=2

}

步骤2

a=1

fn1=function fn1(){

alert(a);

var a=2

}

遇到里函数调用,函数内部的解析:函数内部查找var function参数

1,a=undefine

逐行运行函数内部的东西

alert出来是个 undefine

a=2;这里的a是局部变量

步骤3,a=1;这里的a是要全局变量

example4:

var a=1;

function fn1(){

alert(a);//1

a=2

}

fn1()

alert(a)//2

步骤1;解析

a=undefine

fn1=function fn1(){

alert(a)

a=2}

步骤2:逐行读代码

a=1

步骤3

函数内部:空,,函数内部逐行读代码:从子级作用域找,

步骤4:得到值

example5:

var a=1

function fn1(a){

alert(a);

a=2;

}

fn1(a);//1

alert(a);//1

js作用域学习的更多相关文章

  1. JS基础学习——作用域

    JS基础学习--作用域 什么是作用域 变量的作用域就是变量能被访问到的代码范围,比如在下面的这个js代码中,变量a的作用域就是函数foo,因此在全局作用域内的console.log(a)语句不能访问到 ...

  2. Javascript作用域学习笔记(三)

    看完<你不知道的javascript>上,对作用域的新的理解(2018-9-25更) 一.学习笔记:   1.javascript中的作用域和作用域链 +  每个函数在被调用时都会创建一个 ...

  3. js需要学习的

    1.js作用域 2.html5和css3 3.js面向对象 4.js原生ajax 5.js与后端交互 6.html5手机移动端页面练习 7.jquery中的jQuery UI框架和jQuery Eas ...

  4. JS基础学习——闭包

    JS基础学习--闭包 什么是闭包 闭包的定义如下,它的意思是闭包使得函数可以记住和访问它的词法范围,即使函数是在它声明的词法范围外执行.更简单来讲,函数为了自己能够正确执行,它对自己的词法范围产生闭包 ...

  5. js面向对象学习 - 对象概念及创建对象

    原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...

  6. js数组学习整理

    原文地址:js数组学习整理 常用的js数组操作方法及原理 1.声明数组的方式 var colors = new Array();//空的数组 var colors = new Array(3); // ...

  7. JS作用域面试题总结

    关于JS作用域问题,是面试的时候面试官乐此不疲的面试题,有时候确实是令人抓狂,今天看到一个讲解这个问题的视频,明白了那些所谓的“原理”顿时有种豁然开朗的感觉~~~ 1.js作用域(全局变量,局部变量) ...

  8. js入门学习~ 运动应用小例

    要实现的效果如下: 鼠标移入各个小方块,实现对应的效果(变宽,变高,移入透明,移出恢复)~~ (且各运动相互之前不干扰)  主要是练习多个物体的运动框架~~ --------------------- ...

  9. js作用域问题

    <script type="text/javascript"> alert(i);//Uncaught ReferenceError: i is not defined ...

随机推荐

  1. PHP面向对象学习六 多态

    OOP的模式并不仅仅是把很多函数和功能集合起来,目的而是使用类,继承,多态的方式描述我们生活中的一种情况.从而使得我们的代码更具有“物”的意义.帮助我们减少一些重复性的代码和条件语句的判断.   运算 ...

  2. 内存和flash存储的区别

    http://bbs.21ic.com/icview-202550-1-1.html 一.内存 我们一般说的内存指的是DRAM,其主要特点是断电会丢失数据,可读写 二.ROM 断电不会丢失数据,数据只 ...

  3. 使用C#实现FTP的文件上传和下载【转】

    参考博文:http://blog.163.com/mity_rui@126/blog/static/1098136182013101525615577/  

  4. Tom and paper

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5224 题意: 给出矩形的面积,求出最小的周长. 样例: Sample Input 3 2 7 12   ...

  5. [LintCode] Restore IP Address 复原IP地址

    Given a string containing only digits, restore it by returning all possible valid IP address combina ...

  6. awesome-scala

    https://github.com/lauris/awesome-scala Awesome Scala  A community driven list of useful Scala libra ...

  7. ZK 长时操作带进度条

    LongProcess.zul: <?xml version="1.0" encoding="UTF-8"?> <window id=&quo ...

  8. 关于VS打包程序无法弹出主界面的问题

    代码中的程序很正常,VS打包之后,无法弹出主界面的问题. 这种问题,一般是缺少程序加载所必须的东西,包括dll,配置文件等. (1)程序主界面使用的是DevExpress,DevExpress的相关类 ...

  9. 2016HUAS暑假集训训练2 E - I Hate It

    Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老 ...

  10. EDI - Biztalk Setting

    1. Applications: