猿问

加性操作符疑问

1、JavaScript高级程序设计中第48页

“如果有一个操作数是对象、数值或布尔值,则调用它们的toString()方法取得相应的字符串值,然后再应用前面关于字符串的规则”


function test(){

    var a=true;

    alert(10+a)

}

test()

如果按照书上讲的运行出来的结果应该是10true

但实际上运行结果是11

2、


function rewrite(num1,num2){

    arguments[1]=100;

    alert(arguments[0]+num2)

    alert(num2)

    alert(arguments[1])

    

}

rewrite(10)

(1)这里的arguments[1]与num2的值不一致,书上说是因为arguments对象的长度由传入参数个数决定(P66)。我不懂这两者有什么关联?

(2)alert(arguments[0]+num2)为什么输出是NaN,而不是10undefined,书上说的是“对于undefined和null,则分别调用String()函数并取得字符串‘undefined’和‘null’”(P48)

以上的书页都是指JavaScript高级程序设计


料青山看我应如是
浏览 566回答 0
0回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答