JS作用域和预编译(转载 学习中。。。)

  1. JS在页面加载过程中顺序执行。但是分块预编译、执行。
  2. JS在执行前会进行类似”预编译”的操作,而且先预声明变量再预定义函数。
  3. 此时注意,是声明,不是定义,如:var a = 1; 在预编译中,只是执行了”var a”没有赋值,即在预编译结束时a 为undefined。
  4. (注意)并不是先全文编译完在执行,而是块编译,即一个script块中,预编译再执行,然后(按顺序)下一个script块,预编译再执行,但此时上一个块中的数据都是可以用的,但下一个块中的函数,声明的变量都是不可用的。
  5. 变量没声明就引用,会报错,但对象方法,对象变量没声明,是undefined
  6. 在函数中变量不声明就赋值,会被认为是全局变量,用var声明后为函数变量
  7. 在执行函数时时也是先编译后执行,但要注意函数定义中(即大括号中)的代码即使有错只要函数不执行,就不会有影响,但一执行函数,开始函数预编译就会出错。
时间: 2024-10-16 14:22:47

JS作用域和预编译(转载 学习中。。。)的相关文章

fatal error C1854: 无法覆盖在创建对象文件.obj”的预编译头过程中形成的信息

原因: 将stdafx.cpp 的预编译头属性  由 创建预编译头(/Yc) 改成了 使用预编译头(/Yu) 解决: 改回为 创建预编译头(/Yc) 参考文档 http://blog.csdn.net/you_lan_hai/article/details/6966038 fatal error C1854: 无法覆盖在创建对象文件.obj"的预编译头过程中形成的信息

JavaScript 开发进阶:理解 JavaScript 作用域和作用域链(转载 学习中。。。)

作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理.今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望能帮助大家更好的学习JavaScript. JavaScript作用域 任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期.在JavaScript中,变量的作用域有全局作用域和局部作用域两种. 1.  全局作用域(Global S

js - 基础 之 预编译总结

js运行步骤 语法解析(检查有无语法错误) 预编译 解释运行(将 js 翻译成计算机识别的语言(0.1组成),翻译一行执行一行) 预编译 [全局]: 创建 GO( Grobal Object ) 对象 找变量声明 找函数声明 [函数]: 创建 AO( Activation Object ) 对象(执行上下文): 找形参和变量声明,将形参和变量名作为 AO 对象的属性名,值为 undefined(有重复的名称只写一个即可): 将形参与实参值统一(用实参的值替换 undefined): 在函数体中找

hibernate预编译SQL语句中的setParameter和setParameterList

使用预编译SQL语句和占位符参数(在jdbc中是?),能够避免因为使用字符串拼接sql语句带来的复杂性.我们先来简单的看下,使用预编译SQL语句的好处.使用String sql = "select * from Student where name=" + name;如果name的值是1或 "aty"或"aty'aty",就会产生下面错误的sql --ORA-01722 invalid number select * from student w

为什么每个前端开发者都要理解页面的渲染?(转载 学习中。。。)

文章转载自:开源中国社区 [http://www.oschina.net] 今天我要将关注点放到页面渲染以及其重要性上.虽然已经有很多文章提到过这个主题了,但大部分信息都是零碎的片段.为了思考这件事情,我需要研究很多信息的来源.这也就是为什么我觉得我应该写这篇文章的原因.我相信这篇文章对新手会很有用,并且对想刷新和巩固他们已经了解的东西的高手也同样适用. 渲染应该从最开始当页面布局被定义时就进行优化,样式和脚本在页面渲染中扮演着非常重要的角色.专业人员知道一些技巧以避免一些性能问题. 这篇文章不

JS作用域概念-预解析规则

// 作用域: // 域:空间.范围.区域…… // 作用:读.写 script 全局变量.全局函数 自上而下 函数 由里到外 {} 浏览器: “JS解析器” 1)“找一些东西” :var function 参数 a = ... 所有的变量,在正式运行代码之前,都提前赋了一个值:未定义 fn1 = function fn1(){ alert(2); } 所有的函数,在正式运行代码之前,都是整个函数块 JS 的预解析 遇到重名的:只留一个 变量和函数重名了,就只留下函数 2)逐行解读代码: 表达式

(实用篇)php注册和登录界面的实现案例(原文转载学习中)

当初我觉得一个网站上注册和登录这两个功能很神奇,后来自己研究一下发现其实道理很简单,接下来看一下怎么实现的吧.... http://mp.weixin.qq.com/s?__biz=MzIxMDA0OTcxNA==&mid=2654254777&idx=1&sn=76f8b02e5fbcc7041c9e67b459558194&chksm=8caa9964bbdd10722309af194a7ad9d30023d41b71d6a56a57199b73b1d5d989ac50

gulp最佳实践(包含js,css,html预编译,合并,压缩,浏览器自动刷新)

gulp是基于流的自动化构建工具官方网址:http://www.gulpjs.com.cn/ 一.安装需要的模块 1.新建package.json,输入下面的内容 { "name": "autopractice", "version": "1.0.0", "description": "", "main": "index.js", "sc

WebKit渲染基础(转载 学习中。。。)

概述 WebKit是一个渲染引擎,而不是一个浏览器,它专注于网页内容展示,其中渲染是其中核心的部分之一.本章着重于对渲染部分的基础进行一定程度的了解和认识,主要理解基于DOM树来介绍Render树和RenderLayer树的构建由来和方式. 那么什么是DOM?简单来说,DOM是对HTML或者XML等文档的一种结构化表示方法,通过这种方式,用户可以通过提供标准的接口来访问HTML页面中的任何元素的相关属性,并可对DOM进行相应的添加.删除和更新操作等.相关信息可查阅W3C的文档,这里不再赘述. 基