var undefined = "东方云游";
alert(undefined); // undefined 不一定为undefined ie8(包含ie8)以下会返回 "东方云游"

首先全局作用域的undefined是window下面的一个属性,这个属性对于一般的浏览器是不能被修改的。但是在ie8(包括ie8)以下则可以被修改。

(function(){
var undefined = "东方云游";
alert(undefined); // 东方云游
})()

然后以函数自执行的形式即一个局部环境中定义了一个变量undefined(注意这个时候它不再是window下的属性),其实它和普通的变量没有什么差别,就是一个声明赋值的情况,所以不管在哪个浏览器中输出都是 "东方云游"

也就是说:
全局环境中:undefined是window下的属性,在绝大部分浏览器中是不能被修改的(ie8包括ie8可以被修改)
局部环境中:undefined和普通的变量没有太大的差别,所以可以像其他变量一样使用

jQuery 中:

strundefined = typeof undefined,//新的jQ中直接使用undefined,因为不支持ie678了。
strundefined = "undefined",
那不直接用"undefined"是因为利于压缩么?
是用于避开 分词时对关键字的处理,这是编译原理的东西,一段代码,先进行分词,转换成AST(抽象语法树),简单来说,就是有利于浏览器的JS 引擎对用户代码进行优化。 嗑嗑,undefined不是关键字。 因为这个吧:https://bugs.jquery.com/ticket/14543#comment:2
strundefined was introduced to work around a ​minification issue with UglifyJS that replacedtypeof el.domMethod !== "undefined" with e.domMethod!==void 0, which breaks in IE when el is an XML node (see #13315). The issue has since been fixed, so it's worth looking at the effects on output size of comparing typeof output to variables or constants for all cases. Would you like to tackle this, FarSeeing? http://202.197.191.206:8080/05/text/chapter02/section3/index1_bq.htm 当识别到字母开头的字母数字串时,先查关键字表。若查不到则为标识符,查到则为关键字。词法分析什么的。 大牛真是活词典。。。。

关于undefind的更多相关文章

  1. iOS开发 - OC - duplicate symbol _OBJC / undefind symbol 错误的相关处理

    前言: 作为一个iOS开发,相信大家都会遇到类似于 “duplicate symbol” 的程序报错. 对于很多新手来说,可能会有点手足无措,因为这种类型的报错一般并非是代码的逻辑错误,大部分情况下是 ...

  2. 一个方法中的ajax在success中renturn一个值,但是方法的返回值是undefind?

    https://segmentfault.com/q/1010000003762379 A页面 console.log(handleData("search_list", &quo ...

  3. bug日记之---------js中调用另一个js中的有ajax的方法, 返回值为undefind

    今天做一个OCR授权的需求, 需要开发一个OCR弹框, 让用户选择是否授权给第三方识别公司(旷世科技)保存和识别用户个人信息, 照片等. 其中用到了在一个js的方法中调用另外一个js的方法, 其中有一 ...

  4. JavaScript中Null和undefind区别

    公众号原文 Javascript有5种基本类型:Boolean,Number,Null,Undefined,String:和一种复杂类型:Object(对象): undefined:只有一个值,及特殊 ...

  5. js问题解决——cannot read property style of undefind

    当遇到cannot read property style of undefine的问题如下: 那就说明你设定的这个变量名为空 比如我在文档里写的属性名为list_box 但是我获取的属性名称写错了 ...

  6. 【JS】JavaScript中Null和undefind区别

    1.undefined:只有一个值,及特殊的undefined.在使用var声明变量但未对其初始化时,这个变量的值是undefined,简言之,undefined就是表示变量申明了但未初始化时的值. ...

  7. 使用react-navigation提示undefind is not a function

    在学习react-natrive的时候,看到导航跳转一章,遂试了一下demo: 但是呢,在安卓模拟器上却报错了: 找了许多方法,包括降低版本都不行,后来修改了一下导出就可以了:

  8. 重温js之null和undefind区别

    在JavaScript中存在这样两种原始类型:Null与Undefined.这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined? Undef ...

  9. JS基础_Null和Undefind

    1.Null Null类型的值只有一个值,就是null null专门用来表示一个为空的对象 var a=null; console.log(a);//nulltypeof a //object 2.U ...

随机推荐

  1. 飞镖忍者 quick-cocos2d-x3.2

    经典的入门小游戏.这里用quick-cocos2d-x3.2又一次写一遍,以便熟悉下quick 首先,创建project,假设不会自行百度啊. 1.编译效果例如以下: watermark/2/text ...

  2. WebClient 请求返回的是Gbk编码解决方案

    WebClient client = new WebClient();                client.Headers.Clear();                client.Hea ...

  3. orabbix 报错No suitable driver found for

     orabbix报错如下:   2018-07-11 14:35:20,119 [main] ERROR Orabbix - Error on Configurator for database qa ...

  4. volatile关键字深入理解

    前言: 这个关键字的重点就三个字,就是可见性.但是面试的时候,你说出可见性三个字,基本上满分100的话,最多只能得到20分.剩下的那80分,就要靠你用硬功夫去获得了. 所谓的硬功夫,其实就是要整明白, ...

  5. 10.5 android输入系统_Reader线程_使用EventHub读取事件和核心类及配置文件_实验_分析

    4. Reader线程_使用EventHub读取事件 使用inotify监测/dev/input下文件的创建和删除 使用epoll监测有无数据上报 细节: a.fd1 = inotify_init(& ...

  6. 浅谈求lca

    lca即最近公共祖先,求最近公共祖先的方法大概有3种,其实是窝只听说过3种,这3种做法分别是倍增求lca,树剖求lca和tarjan求lca,但是窝只会前2种,所以这里只说前2种算法了. 首先是倍增求 ...

  7. lua不同模块调用

    一.起因 由于准备把lua加入的系统中,还需把字符串解析json.下了个json的lua,目前还没有搞定.但是一个lua,调用其他lua文件模块,目前刚刚搞定. 暂作记录. 二. 模块调用测试 1. ...

  8. IOS自动化测试 UIAutomation

    一.通过Xcode工具编写运行测试脚本 说明:如果是在IOS模拟器上运行测试用例,需要有被测试应用的源代码才有权限把应用安装到模拟器中,当前示例中使用了自己编写的一个简单Iphone应用,大家也可以直 ...

  9. 解决安装mysql-connector-odbc-5.3.2 错误1918……不能载入安装或转换器库……的BUG

    还是在虚拟机Windows Server 2003上安装mysql-connector-odbc-5.3.2,装着装着就报错了,大致是"错误1918--不能载入安装或转换器库--" ...

  10. UILabel调整字间距

    1.引入 在文件导入 #import <CoreText/CoreText.h> 2.程序 NSMutableAttributedString *attributedString =[[N ...