<script type="text/javascript">
var outObj = {
type :"java"
}
function innerM(){
var p;
alert(p);//undefined
alert("k:"+k);//error--innerObj未定义
alert(outObj.jack);//undefined
alert(innerObj.jack);//error--innerObj未定义
} innerM(); </script>
<script type="text/javascript">
alert(typeof(false) === 'boolean'); //true
alert(typeof(0) === 'number'); //true
alert(typeof("") === 'string'); //true
alert(typeof(null) === 'object'); //true
alert(typeof undefined === 'undefined'); //true
</script>
 <script type="text/javascript">
alert(false == undefined); //false
alert(false == null); //false
alert(false == 0); //true
alert(false == ""); //true
alert(null == undefined); //true
</script>
<script type="text/javascript">
alert(false.toString()); // "false"
alert("".charAt(0)); // ""
alert((0).toExponential(10)); // 0.0000000e+0
alert(undefined.toString()); // throw exception "undefined has no properties"
alert(null.toString()); // "null has no properties"
</script>
 <script type="text/javascript">
alert(String(false)); // "false"
alert(String("")); // ""
alert(String(0)); // 0.0000000e+0
alert(String(undefined)); // "undefined"
alert(String(null)); // "null" alert(decodeURI(undefined));// "undefined"
alert(decodeURI(null));// "null"
</script>
 <script type="text/javascript">
//假值和空值作为if条件分支
//假值和空值有一个共性,那就是在 作为if的条件分支时,均被视为false ;应用"!"操作之后得到的均为true。
//这是因为,这几个对象均被视为各自类型中的无效值或空值。因此if分支中这些对象均被视为false对待。如下示例代码:
var ar = [undefined,false,0,"",null];
for(var i = 0,len = ar.length; i < len; i++){
if(ar[i]){
alert("你不应该看到此对话框!");
}
}
</script>

<script type="text/javascript">
//undefined和null对象无非是两个特殊对象,undefined表示无效对象,null表示空对象。
//如果变量显式或者隐式(由Javascript引擎进行赋值)地被赋予了undefined,
//那么代表了此变量未被定义,如果被赋予null值,则代表此变量被初始化为空值。
//在Javascript中,变量是通过var声明,=赋值符进行定义(初始化变量所指向的对象)。
//当然,如果声明一个全局变量(作为window属性)可以不使用var关键字。变量可以在声明的同时进行定义。
//变量如果声明了但是没有初始化,那么Javascript引擎会将此变量自动指向undefined对象。
//这里需要注意,我们在上面引用window.abcd时,弹出的是undefined;而直接引用abcd变量时,却抛出了一个异常。
//这是由于Javascript引擎对于没有显式指定对象链的变量,会尝试从最近的作用域开始查找变量,
//查找失败,则退到父级作用链进行查找。如果均查找失败,则抛出"变量未定义"的异常。 var undefinedVariable,nullVariable = null;
alert(undefinedVariable); // "undefined"
alert(window.undefinedVariable); // "undefined"
alert(window.abcd); // "undefined"
alert(nullVariable); // "null"
alert(abcd); // throw exception "abcd is not defined"
</script>
 <script type="text/javascript">
//这两个值在进行数字运算的时候也有不同。
alert(1+undefined); // "NaN"
alert(1+null); // "1"
</script>
<script type="text/javascript">
alert("!undefined......" + (!undefined));
alert("undefined==false......" + (undefined==false));
</script>

jjs 产生undefined的情况的更多相关文章

  1. JS下计算当前日期(当天)后N天出现NAN或者undefined的情况

    前言: 帮客户做一个订单系统,需要一个日期1,一个日期2,默认情况下日期1为当天,日期2为明天,只是当时有些疑惑的是日期2偶尔会出现NAN的情况,今天在segmentfault.com看到了同样的问题 ...

  2. [Effective JavaScript 笔记]第54条:将undefined看做“没有值”

    undefined值很特殊,每当js无法提供具体的值时,就会产生undefined. undefined值场景 未赋值的变量的初始值即为undefined. var x; x;//undefined ...

  3. undefined类型

    undefined类型 只有一个特殊的值 undefined   在使用var声明变量但未对其加以初始化,这个变量的值就是undefined 值是undefined的情况: 1.显示声明并初始化变量值 ...

  4. 关于js中undefined的判断

    在开发中遇到一个情景,当添加用户的时候不需要传入用户id,如果是修改那么需要传入id,因为用的是angular框架,参数是早就定义好了的,那么在新增用户的时候就会出现undefined的情况,之前我一 ...

  5. JavaScript推断undefined的技巧

    两种方法: 处理变量为undefined的情况: v = v||null;    //假设v为undefined,则其值变为null 双感叹号:!!,把null/undifined/0转换为bolle ...

  6. 数据类型总结——null和undefined

    相关文章 简书原文:https://www.jianshu.com/p/c3e252efe848 数据类型总结——概述:https://www.cnblogs.com/shcrk/p/9266015. ...

  7. 处理 JS中 undefined 的 7 个技巧

    摘要: JS的大部分报错都是undefined... 作者:前端小智 原文:处理 JS中 undefined 的 7 个技巧 Fundebug经授权转载,版权归原作者所有. 大约8年前,当原作者开始学 ...

  8. ie ajax 跨域情况遇到的各种问题

    jQuery.support.cors = true; http://blog.csdn.net/jupiter37/article/details/25694289 jQuery ajax跨域调用出 ...

  9. ?.可选链操作符( ?. ) 可选链运算符可防止抛出 TypeError: Cannot read property ’xxx' of undefined。

    可选链操作符( ?. )允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效.?. 操作符的功能类似于 . 链式操作符,不同之处在于,在引用为空(nullish ) (null ...

随机推荐

  1. class如何命名更规范

    相信写css的人都会遇到下面的问题: 糟糕,怎么命名这个class,好像不太贴切,要是冲突了怎么办,要不要设计成通用一点... 而改别人css代码的时候则会一直有个疑问:这个class到底是只在这个地 ...

  2. javascript必知必会之prototype

    本博客所有内容采用 Creative Commons Licenses 许可使用. 引用本内容时,请保留 朱涛, 出处 ,并且 非商业 . 点击 RSS 进行订阅.(推荐使用 google reade ...

  3. 仅当使用了列的列表并且 IDENTITY_INSERT 为 ON 时,才能为表'SpeType'中的标识列指定显式值

     尊重原著作:本文转载自http://blog.163.com/lao12qi12345%40126/blog/static/1179155120101122113316187/ 情况描述 在表Tab ...

  4. Oracle User Management FAQ翻译及学习笔记

    转载 最近了解到AME 的东西,很迫切,先转载一篇 [@more@] Oracle User Management FAQ翻译及学习笔记 写在前面 本文主要是翻译的英文版的Oracle User Ma ...

  5. mysql explain 命令简解

    参考官方文档地址: http://dev.mysql.com/doc/refman/5.7/en/explain.html 为什么用explain . 如果你的页面返回结果很慢,你就需要使用expla ...

  6. solaris11.2下编译QT-配置命令

    1.make 版本为:GNU Make 3.82 2.gcc版本是:3.4.3(pkg install ...) 2.直接./configue是不行的 解决:./configue -platform ...

  7. web 之MVC

    MVC 把一个应用的输入.处理.输出流程按照Model, View, Controller 的方式进行分离,这样一个应用被分为三层:模型层.视图层.控制层. 1.View 2.Controller 在 ...

  8. JQuery DataTables Editor---只修改页面内容

    近来在工作中需要对JQuery DataTables进行增,删,改的操作,在网上找了一些资料,感觉比较的好的就是(http://editor.datatables.net/)文章中所展示的操作方法(如 ...

  9. "创业"半年

                作为一个程序员, 因为受够了”给别人实现梦想太累”的念头, 又受到”外面给出更高薪水”的诱惑, 果断离职创业. 但原本是要创业的, 过了半年, 变成了失业, 这其中到底经历了哪 ...

  10. Eclipse安装Weblogic插件

    1.启动Eclipse,打开window>References>server>Runtime server. 2.点击“add”按钮,添加新的web服务器. 注:上图Oracle是W ...