为什么第二个alert没有反应

来源:1-1 为什么学习JavaScript

卡兰尼克

2016-12-30 16:14

<!DOCTYPE HTML>

<html> 

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>热身</title>

</head>

<body>

  <script type="text/javascript">

      function num(eve,event){

          num=eve*event

          return num}

          

      document.write(num(10,2)) 

      alert(num(20,11));

  </script>

</body>

</html>

屏幕上会显示20,但是alert这个不会弹出来

写回答 关注

4回答

  • 也许是永远
    2017-02-10 10:50:56

    刚百度了一下~是优先级的问题,在document.write()读取后,把后面所有的当作文档读取了,所以后面的应该是读不出来的  alert放在document前面就是可以的了~

  • 慕瓜9573798
    2016-12-30 23:21:27

    函数名和 内部的变量名 都叫num 是不合适的;在第一次调用 函数num的时候就将 num改变了,再次使用num就会出错,只要将他们其中一个的名字修改一下就ok了

  • 慕虎7796147
    2016-12-30 16:50:11

    你的script怎么在body 里面,还有你的document.write(num(10,2))  后面没有;

    卡兰尼克

    script可以放在body里面

    2016-12-30 22:46:21

    共 1 条回复 >

  • 卡兰尼克
    2016-12-30 16:41:55

    return的作用到底是干嘛的?没有return 直接把alert放在函数内部也可以有作用啊

    。。。不是很懂return到底起到什么作用

    慕瓜9573...

    首先 一个函数运行起来后,都会存在一个 return 值以供外部使用,其值默认为 undefined ;在函数内的 num 只能在函数内访问,外部是不能直接访问的,只能通过 return 出来后才能被外部使用;将alert 放在函数内部,使用的是内部的num 所以是可以的

    2016-12-30 23:18:49

    共 1 条回复 >

JavaScript入门篇

JavaScript做为一名Web工程师的必备技术,本教程让您快速入门

739816 学习 · 9566 问题

查看课程

相似问题