黑马程序员技术交流社区

标题: 求学术派大神来解答javascript的问题 [打印本页]

作者: 小Zeor………    时间: 2014-2-18 22:12
标题: 求学术派大神来解答javascript的问题
下面给出两段代码 执行结果一样,但是不同的意义在何处?
代码一:
  1. script language = "javascript">

  2.         var square = new Function("x","y","var sum; sum = x*x+y*y;

  3. return sum;");
  4.         alert(square(3,2));
  5. </script>
复制代码

代码二:
  1. <script language = "javascript">
  2.         function square(x,y)
  3.         {
  4.                 var sum ;
  5.                 sum = x*x + y*y;
  6.                 return sum;       
  7.         }
  8.         alert(square(3,2));
  9. </script>
复制代码


这两段代码不同,但是就我看来,看不出第一种写法的意义何在啊?
作者: 小Zeor………    时间: 2014-2-18 22:30
继续自顶
作者: kkopopo    时间: 2014-2-18 22:55
mark一下!!! 没有深究!  只要区别以为一个是声明式函数,一个是赋值式函数,区别在于在JS的预编译期,声明式函数将会先被提取出来,然后才按顺序执行js代码。具体执行你自己测试一些,这个问题关乎于你想让user打开网页的速度问题吧!      我的跟着学习一下没有深究! 有大大给个专业回答!
作者: why168    时间: 2014-2-18 23:42
代码一:使用Function构造函数来定义函数,存在一定的性能问题。第一次是常规的解析这条语句,第二次要把函数里的字符串解析成实际的函数。
代码二:常用的函数声明。
最好不用代码一的写法。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2