undefined和not defined的区别

经研究发现,两者之间有很大的区别,不知从英语讲,这两者都有啥区别,研究结果如下 
测试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 可以翻译成 未定义的
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值