经研究发现,两者之间有很大的区别,不知从英语讲,这两者都有啥区别,研究结果如下

测试os:ubuntu

测试浏览器:chrome

测试案例1

console.log(a)

报错 ReferenceError: a is not defined

测试案例2

var a

console.log(a)

无报错,但是输出undefined

测试案例2

var b = {};

console.log(b.a)

无报错,但是输出undefined

测试案例3

function c() {

}

var d = new c();

console.log(d.a)

无报错,但是显示undefined

关于typeof

以上所有用来测试的对象用typeof 返回的都是 String("undefined")

关于或运算 ||

var d = a||3

报错 a not defined

var a;

var d = a || 3

结果:d==3

var c = 22 || 44

c==22

var c = false || 33

c == 33

if(x) {

}

报错

var x

if(x) {

}

if内不执行

总结:

js中有两种undefined 虽然用typeof 返回都是 String("undefined")

其中 定义之后,但是未经任何操作或者某对象的一个未定义的属性,都属于 可以拿来运算的 undefined ,可以用来当作逻辑运算

第二种的变量,完全没有定义,而且没有任何背景的(x.a,虽然x无a属性,但是给x面子),属于报错类型不能被使用,除非用typeof函数



js中的或运算,并不返回bool值,而是返回js对两边条件最后一个计算的值,比如 1||2 1为真,2不需要计算,所以 1||2 == 1 a||1 报错

var a; a|| 1 == 1;



找了本辞典翻译了一下

undefined可以翻译成:不明确的,也就是不知道用来干嘛的

而 not defined 可以翻译成 未定义的

javascript中的undefined 和 not defined的更多相关文章

  1. javascript中常见undefined与defined的区别

    在JavaScript中相信“undefined”与“defined”对大家来说都肯定不陌生,但是又不是很清楚它们的区别,先看两个demo我们再说, 例1. console.log(parms); / ...

  2. JavaScript 中的undefined and null 学习

    JavaScript 中的undefined and null learn record from the definitive guide to html5 JavaScript 中有两个特殊值:u ...

  3. javascript中的undefined,null,"",0和false的云集

    在各种各样的数据类型中,我们都会为其定义一个"空值"或"假值",比如对象类型的空值null,.NET Framework中数据库字段的空值DBNull,bool ...

  4. JavaScript中的Undefined / Null 类型相关说明

    1,综述: ※Undefined 和 Null是JavaScript中的两种数据类型(其他的类型还有:Boolean, String, Number, Object). ※Undefined类型只有一 ...

  5. Javascript中的undefined、null、""、0值和false的区别总结

    在程序语言中定义的各种各样的数据类型中,我们都会为其定义一个"空值"或"假值",比如对象类型的空值null,.NET Framework中数据库字段的空值DBN ...

  6. javascript中的undefined与null的区别

    一.相似性 在JavaScript中,将一个变量赋值为undefined或null,老实说,几乎没区别. var a = undefined; var a = null; 上面代码中,a变量分别被赋值 ...

  7. Js中的undefined和not defined

    1.undefined 已经声明,但未赋值 2.not defined 未声明,报错

  8. javascript中NAN undefined 和null

    null 表示无值,而 undefined 表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性. NaN 属性是代表非数字值的特殊值.该属性用于指示某个值不是数字.可以把 Num ...

  9. javascript 中not defined 和undefined有什么区别

    概念上的解释:undefined是javascript语言中定义的五个原始类中的一个,换句话说,undefined并不是程序报错,而是程序允许的一个值.not defined是javascript在运 ...

随机推荐

  1. Linux--Centos7开机启动 mysql5.7.19

    参考:http://www.cnblogs.com/Anker/p/3551508.html

  2. shell中sparksql语句调试、执行方式

    1.命令方式执行sparksql查询 SQL="use mydatatable;;select count(1) from tab_videousr_onlne where p_regiio ...

  3. 加速软件源更新和安装 ubuntu 软件中心

    Linux mint 12 修改加速软件源更新和安装 ubuntu 软件中心 由于 linux mint 12 是基于 ubuntu 的,可以使用 ubuntu 的源(Ubuntu 11.10 代号 ...

  4. C++内联函数作用及弊端

    为什么要使用内联函数? 因为函数调用时候需要创建时间.参数传入传递等操作,造成了时间和空间的额外开销.C++追求效率所以引入了内联的概念. 通过编译器预处理,在调用内联函数的地方将内联函数内的语句Co ...

  5. 17.3.12--time模块

    import time  #导入time模块 应用的时候有两种方式来表示时间: 1)时间戳 2)格式化的时间str(字符串)   3)元祖(struct_time)以及calendar 2---tim ...

  6. this, 闭包,箭头函数

    闭包写法 //后台每个执行环境都有一个表示变量的对象---变量对象 //例如compare()函数调用 //compare的执行环境而言,其作用域链包含两个变量对象 本地活动对象 全局活动对象 全局变 ...

  7. osi七层模型专题

    OSI模型,即开放式通信系统互联参考模型,是国际标准化组织提出的一个试图是各种计算机或者通信系统在世界范围内互联为网络的标准框架.整个模型分为七层,物理层,数据链路层,网络层,传输层,会话层,表示层, ...

  8. JetBrains Phpstorm 、 PyCharm 2019 最新破解码亲测可用

    Phpstorm 2019 破解码最新亲测可用 6ZUMD7WWWU-eyJsaWNlbnNlSWQiOiI2WlVNRDdXV1dVIiwibGljZW5zZWVOYW1lIjoiSmV0cyBHc ...

  9. ubuntu18安装pytorch1.3

    环境: ubuntu18 anaconda 创建一个新的环境 conda create -n env_name python=version 激活并进入环境中 conda activate env_n ...

  10. 哈夫曼编码的理解(Huffman Coding)

    哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,可变字长编码(VLC)的一种.Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最 ...