意外发现一个被忽略的语法

fosjos 2009-07-24 11:47:29
加精
http://topic.csdn.net/u/20090724/10/bd017b97-8dc5-4161-80a0-fd3c9c45587d.html
<script language="javascript" type="text/javascript"> 
var a=3,b=5;
function add(x,y){
return x+y;
}
document.write(" <h2>a+b=",+add <a,b>+" <h2>");
</script>

讨论一下为何是a+b=FALSEFALSE这个结果

希望有人可以找到document.write的相关文档说明(如果要加分,可以提)
...全文
2099 91 打赏 收藏 转发到动态 举报
写回复
用AI写文章
91 条回复
切换为时间正序
请发表友善的回复…
发表回复
QQ22456577 2012-02-18
  • 打赏
  • 举报
回复
有点意思
dxlzanjie 2010-08-26
  • 打赏
  • 举报
回复
为什么 +add 会是NaN呢 。。。
root_lee 2010-08-26
  • 打赏
  • 举报
回复
这种写法不会产生语法错误,所以可以运行
tysilver 2010-08-26
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 xfsnero 的回复:]

document.write本来就能接收个参数,效果等于输出各个参数转化为字符串后串联的结果
JScript code
document.write(
" <h2>a+b=", //输出 <h2>a+b=
+add <a, //+add为NaN,NaN<a为false,//输出false
b>+" <h2>" //+" <h2>"为NaN,b>NaN为false,//输出false
); /……
[/Quote]
这个~
wlwwp 2010-08-26
  • 打赏
  • 举报
回复
mark
a371243190 2010-08-26
  • 打赏
  • 举报
回复
学习经过
csucdl 2010-08-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cb1156 的回复:]
< 和 > 被作为比较符号了..
囧啊....
[/Quote]

同意
luojihaidao 2010-07-21
  • 打赏
  • 举报
回复
学习~
luojihaidao 2010-07-21
  • 打赏
  • 举报
回复
document.write(" <h2>a+b=",+add <a,b>+" <h2>");

" <h2>a+b=" , +add <a , b>+" <h2>" 是三个表达式。


document.write(" a",'b',"c",'d'); 会输出 abcd.
地狱羔羊 2010-07-21
  • 打赏
  • 举报
回复
document.write("aa""bb""cc");//报错
document.write("aa","bb","cc"); //输出aabbcc
document.write(" <h2>a+b=",+add <a,b>+" <h2>"); //输出" <h2>a+b="+表达式(+add <a)比较的结果+表达式(b>+" <h2>")比较的结果
alert(+add <a)//false
alert(b>+" <h2>")//false
Wings_JK 2010-07-21
  • 打赏
  • 举报
回复
应该等同于document.write(" <h2>a+b=");
document.write(+add < a);
document.write(b > +"<h2>");
even0220 2010-07-21
  • 打赏
  • 举报
回复
mark·········
NDDavid 2010-07-21
  • 打赏
  • 举报
回复
MARK 关注
zhyzdl 2010-07-21
  • 打赏
  • 举报
回复
值得瞻仰阿
Chris333 2010-07-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 fosjos 的回复:]
http://topic.csdn.net/u/20090724/10/bd017b97-8dc5-4161-80a0-fd3c9c45587d.html

HTML code
<script language="javascript" type="text/javascript">
var a=3,b=5;
function add(x,y){
return x+y;
} ……
[/Quote]

我觉得吧 应该是被解析成了(" <h2>a+b=" , +add) <a (返回false)
和b>(+" <h2>") 也返回false 不知道对不对呢?
xxmiaoyong126com 2010-07-20
  • 打赏
  • 举报
回复
主要还是JS的自动转换数据类型吧,
NAN转化为布尔就是FALSE
諾临風 2010-07-20
  • 打赏
  • 举报
回复
偶两个塔,不敢说话!
hlq_zist 2010-07-20
  • 打赏
  • 举报
回复

/*相继输出a,b,c三个单词,逗号为分隔号*/
document.write("a","b","c");
/*逗号为分隔号,“<h2>a+b=”为一字符,“add <a”为一
*字符,为算术运算值FALSE;“b>+" <h2>"”为另一运算
*符,为FALSE。其实,最终得到的字符串是:“<h2>a+b=FALSEFALSE”,没有了后面的“</h2>”
*我这样解释,不知道楼主满意不?
**/
document.write(" <h2>a+b=",+add <a,b>+" <h2>");
journey_q 2010-07-14
  • 打赏
  • 举报
回复
加号被认为是连接字符的+ 而不是运算符号+了?
heike1235 2010-07-14
  • 打赏
  • 举报
回复
我是来拿分的
加载更多回复(71)

87,914

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧