js基础内容求解答
今天看js面向对象编程指南有两道课后题是这样的:
(1)var a; typeof a;
(2)10%"0"
(3) var v=v||10;
输出分别是
(1)Object
(2) NaN
(3)undefined
求各位大神解答一下其中道理,记住类的话就请绕过吧
------解决方案--------------------亲 你看错答案了吧
undefined
NaN
10
应该吧
------解决方案--------------------(1)这个应该是undefined 吧,a有东西才是对象
(2)数字除以字符串是非数字,所以是NaN
(3)=后面的v相当于undefined,而null和 undefined被认为是 false,而10为true,所以这个返回的是10,相当于
v=v? v:10
------解决方案--------------------var v=v
------解决方案--------------------10; 输出 undefined,因为赋值没有返回值
,这题又没问v的值是多少?
var v=v
------解决方案--------------------10; v
这样输出才是10
------解决方案--------------------楼主你好 我的理解是:
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高级程序设计。
------解决方案--------------------
我感觉还是理解上有错误
------解决方案--------------------
我感觉还是理解上有错误