亲 你看错答案了吧
undefined
NaN
10
应该吧

解决方案 »

  1.   

    (1)这个应该是undefined 吧,a有东西才是对象
    (2)数字除以字符串是非数字,所以是NaN
    (3)=后面的v相当于undefined,而null和 undefined被认为是 false,而10为true,所以这个返回的是10,相当于
    v=v? v:10
      

  2.   

    你好,第一个我看错了,第三个应该是undefined
      

  3.   

    var v=v||10;    输出 undefined,因为赋值没有返回值,这题又没问v的值是多少?var v=v||10; v      
    这样输出才是10
      

  4.   

    楼主你好 我的理解是:
    1:  var a ; 默认初始化为undefined,因此 typeof a 得到的结果也是undefined。 楼主描述的结果为object,不知道你用的哪个console,我在chrome和IE11下尝试为undefined。 按照你的结果,a被默认初始化为 null ,typeof null  返回的是object
    2: 10%“0”  结果应该是NaN 没错, 但是我看楼上的解答不太严密, “0”在和number类型进行操作的时候被转换为数值0  , 对0取余数操作,结果就是非数值。(补充:对NaN的所有算术操作返回都是NaN,NaN和任何值都不相等,包括自身NaN)
    3: var v = v||10; 结果确实是undefined。 但是v 值确实为10。 v ||10 中 v 为 undefined,但是转换为NaN 。NaN逻辑或上10 ,得到的值是10;
    说的不好,具体为啥NaN是这样的,恐怕得再细节一点, 我在看JS高级程序设计。
      

  5.   

    1>.ECMAScript的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的的数据,ECMAScript默认未初始化的值会保存一个特殊的值--undefined
    2>.NaN即非数值,是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出异常了),所以第二个你懂的
    3>.你那个undefined不知道是怎么出来的,如果是打印v的值,应该是10,当要给变量v赋值的时候,先会去到全局或者你这段代码定义的局部环境中去找这个v值,如果v值定义了,那就把这个v值copy(基本类型是copy,引用类型可就不是copy了)给你现在这个v值,未定义会把10赋给这个v
      

  6.   

    第三题只是定义了v,但是没有返回值,所以是undefined,这个undefined和v没有关系
      

  7.   

    第三题只是定义了v,但是没有返回值,所以是undefined,这个undefined和v没有关系我感觉还是理解上有错误
      

  8.   

    您说的对,请问第二个问题该怎么理解呢?
    在ECMAScript中有定义:If the dividend is an infinity, or the divisor is a zero, or both, the result is NaN.http://www.ecma-international.org/ecma-262/5.1/#sec-11.5.3