7.31 签到,js 全局预处理笔记

js 解析与执行过程:

      一、全局:

           1、预处理阶段 :

                1、LexicalEnviroment === window {1、预处理 var   |   2、function xxx //预处理申明的函数}    // 注: 不预处理 函数表达式的方法 创建的 函数    : var g = function () ;
                2、ECMA - 262 VariableEnvironment

                

           2、执行阶段:

    console.log(a);                                    // 4、输入的是预处理阶段的 function a{return 6;}
    function a(){
     return  document.documentElement.OffsetWidth;     // 1、首先预处理function a()
    }
    function a(){
     return  6;                                        // 2、覆盖function a()
    }
     var a = 3;                                        // 3、var 申明变量优先级低于 function,所以无效
     a = 3;                                            // 4、表达式a = 3,是执行阶段,覆盖为a = 3;
    console.log(a);                                    // 5、输出顺序执行的 a = 3;

  

      二、函数:

时间: 2024-10-19 14:27:20

7.31 签到,js 全局预处理笔记的相关文章

JS的解析与执行过程—(全局预处理阶段)

问题:有如下代码 1 var a = 1; 2 function pop() { 3 alert(a); 4 var a = 5; 5 } 6 pop();//执行结果,弹出undefined 这段代码的执行结果为undefined,为什么呢? JS的解析与执行并不是读一行,处理一行,读一行,处理一行这样进行的,而是分为两个阶段: 1.预处理阶段: 2.执行阶段: 然后分别以全局和函数内部的局部代码而言: 1.全局预处理 在解析JS代码的时候,首先会创建一个全局LexicalEnviroment

js便签笔记(12)——浏览TOM大叔博客的学习笔记 part2

1. 前言 昨天写了<js便签笔记(11)——浏览TOM大叔博客的学习笔记 part1>,简单记录了几个问题.part1的重点还是在于最后那个循环创建函数的问题,也就是多个子函数公用一个闭包数据的问题.如果觉得有兴趣,可以再重新翻出来看看. 今天继续把剩下的问题写完. 2. 作用域链 学js的人,即使初级入门的也都知道“原型链”,但是“作用域链”,可能好多人没有听说过.大部分人都知道或者听说过“闭包”,但是可能有好多人不知道闭包其实和作用域链有莫大的联系.如果理解闭包不从作用域链开始理解,那么

js 的 总结 笔记

js 的 总结 笔记 一.词法结构 1.区分大小写 2.注意 // 单行 /* 多行注释 */ 3.字面量(直接量 literal) 12 //数字 5.8 // 小数 "hello" 'hello' true /js/gi //正则 null //空 {x:1,y:2} [1,2,3,4] 4.标示符(变量)和保留字 5.分号可以省略但是可能会产生问题,js会自动补; var y = x+f (a+b).toString() 等价于 var y = x+f(a+b).toString

js基础学习笔记(一)

* 在js编写过程中,尽量保持统一使用单引号 'XXXX': * 所有变量都要声明 var,避免全局函数调用的冲突: 1.1    输出内容 docment.write(‘aileLi’); 改变某ID元素样式 docment.getElementById(‘ID’).style.color=’样式参数’; 1.2   输出弹出框 alert(‘aileLi’); 1.5  什么是变量?  从字面上看,变量是可变的量: 从编程角度讲,变量是用于存储某种/某些数值的存储器. 定义变量使用关键字va

7:Node.js 全局对象

原文出自:http://www.w3cschool.cc/nodejs/nodejs-global-object.html Node.js 全局对象 JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可 以在程序的任何地方访问,即全局变量. 在浏览器JavaScript 中,通常window 是全局对象, 而Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性. 我们在Node

js/jquery学习笔记

javascript简介 JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言. 不同于服务器端脚本语言,例如PHP与ASP,JavaScript是客户端脚本语言,也就是说JavaScript是在用户的浏览器上运行,不需要服务器的支持而可以独立运行 . JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行.解释语言的弱 点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语

全局预处理与执行,作用域与作用域链

一.全局预处理 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <p>全局预处理:首先会创建一个词法环境(Lexical Environment),然后扫面全局里用var声明的变量和 用声明的方式创建的函数即functio

分享:json2.js源代码解读笔记

1. 怎样理解"json" 首先应该意识到,json是一种数据转换格式,既然是个"格式",就是个抽象的东西.它不是js对象,也不是字符串,它仅仅是一种格式,一种规定而已. 这个格式规定了如何将js对象转换成字符串.以及转换成如何的字符串--序列化 -- JSON.stringify 接口: 以及怎样将一个有效字符串转换成js对象--反序列化-- JSON.parse 接口: 2. 关于作者 json作者是 道格拉斯.克劳福德 ,是一位js大牛,写过一本<jav

JS公开课笔记一

JS公开课笔记 没特别说明就是和Java语言一样. JS变量:弱类型语言 1.在JS中,true表示1,false表示0.和Java不一样. 2. var y: 提示undefined: 3.如果alert(y+10)://提示NaN 表示 非法值. 4.JS没有字符和字符串区别,所以使用""和'' 是一样. 5. var arr = new Array(3); arr[0] = 'abc'; arr[1] = 123; arr[3] = false; alert(arr); 是正确的