zoukankan      html  css  js  c++  java
  • javascript中的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 可以翻译成 未定义的

  • 相关阅读:
    eclipse转ieda新手教程之-如何从svn导入一个 Maven 项目到 IntelliJ IDEA 2017
    从svn下载maven项目到ieda
    Maven的下载、安装与配置
    java.lang.NoClassDefFoundError: com/google/common
    guava.jar下载
    js,时间格式的验证
    为什么String类型的日期,传到前台变成数字了
    java&oracle日期查询
    java空指针异常
    java获取当前时间的第二天
  • 原文地址:https://www.cnblogs.com/yangkai-cn/p/4016644.html
Copyright © 2011-2022 走看看