2015.11.30 HTML5真题练习

HTML5学堂:每天一道题,强壮程序员!今日主要涉及昨日题目的解答,以及一道涉及函数的形参实参、arguments对象的题目

HTML5真题【2015.11.29】答案解析

昨日真题题目如下,问的是result和username,分别是多少?

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>HTML5学堂 - H5course</title>
<meta name="viewport" content="width=device-width,user-scalable=no">
<link rel="stylesheet" href="model/css/reset.css">
</head>
<body>
<div class="wrap"></div>
<script>
  var username = 'HTML5学堂';
  var result = '返回结果';
  function joinIt(result) {
      result = result + 'http://www.h5course.com';
  }
  username = joinIt(username);
  console.log(result);
  console.log(username);
</script>
</body>
</html>

本题目的答案是:result结果依旧是'返回结果',而username结果为undefined。

答案解析:本题目主要涉及作用域和函数返回值的问题。

关于result:首先,我们在全局中定义了一个result变量。其次,在函数当中,我们使用了形参,形参名也是result,由于函数是一个局部作用域,所以,形参的result相当于是在局部作用域当中创建了一个空间,用于存储result。

局部作用域中的result与全局中的result是不同的两个。在作用域的概念当中,全局是不能访问局部的,换句话说,局部内容的变化是不会影响到全局变量的。在这个效果当中,无论函数中的result如何变化,都不会影响到全局下的result,因此,result值为'返回结果'。

关于username:在代码当中,我们将一个函数的运行结果赋值给了username。此处需要注意的是,函数的运行结果是函数的返回值,也就是return的内容,当一个函数没有书写return,返回内容时,默认返回的是undefined。

相关知识:return语句的用法(函数的返回值)

HTML5真题【2015.11.30】题目

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>HTML5学堂 - H5course</title>
<meta name="viewport" content="width=device-width,user-scalable=no">
<link rel="stylesheet" href="model/css/reset.css">
</head>
<body>
<div class="wrap"></div>
<script>
  function changeName(oldNum, newNum){
      newNum = 5;
      console.log(arguments.length * oldNum + arguments.callee.length * arguments[1]);
  }
  changeName('12');
</script>
</body>
</html>

关于每日代码练习题的答案和解析,我们会在明日文章当中,发布相关答案以及基本原理。

原文发布于微信公众号 - HTML5学堂(h5course-com)

原文发表时间:2015-12-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏积累沉淀

JDK动态代理的底层实现原理

JDK动态代理的底层实现原理      动态代理是许多框架底层实现的基础,比如Spirng的AOP等,其实弄清楚了动态代理的实现原理,它就没那么神奇了,下面就来...

4837
来自专栏ml

java多线程的常用方法(以及注意事项)

1 /* 2 * 线程的常用方法 3 * 1.start(); 4 * 2.run(); 5 ...

2816
来自专栏Java爬坑系列

【Java入门提高篇】Day12 Java代理——Cglib动态代理

  今天来介绍另一种更为强大的代理——Cglib动态代理。   什么是Cglib动态代理?   我们先回顾一下上一篇的jdk动态代理,jdk动态代理是通过接口来...

20610
来自专栏移动开发的那些事儿

JVM内存区域与OOM

当虚拟机在执行方法testMethod的时候,这时候就会在Java虚拟机栈上创建一个栈帧,然后入栈,然而在testMethod方法内又不断的递归调用testMe...

1102
来自专栏web前端教室

大白话-constructor

昨天跟大家聊了javascript的prototype,其实它很简单的嘛,就是给函数添加自定义方法的。 prototype这种方式在需要复用函数比较多的时候,会...

2066
来自专栏java一日一条

一个Java对象到底占用多大内存

大家可以用这个代码边看边验证,注意的是,运行这个程序需要通过javaagent注入Instrumentation,具体可以看原博客。我今天主要是总结下手动计算J...

571
来自专栏老马说编程

(66) 理解synchronized / 计算机程序的思维逻辑

上节我们提到了多线程共享内存的两个问题,一个是竞态条件,另一个是内存可见性,我们提到,解决这两个问题的一个方案是使用synchronized关键字,本节就来讨论...

2465
来自专栏java一日一条

理解Java Integer的缓存策略

本文将介绍 Java 中 Integer 缓存的相关知识。这是 Java 5 中引入的一个有助于节省内存、提高性能的特性。首先看一个使用 Integer 的示例...

521
来自专栏轮子工厂

5. 很“迷”的字符与字符串

最近一直在为自己的浏览量而担忧啦,都快被厂长大人约谈了……我真的有尽力在写稿子哦,所以也请各位老铁,如果觉得我的文章还不错就转发到朋友圈或者微信群之类的,让更多...

1062
来自专栏企鹅号快讯

选择python不再迷茫,让大牛告诉你python2和python3 该选谁

1. print不再是语句,而是函数,比如原来是 print 'abc' 现在是 print('abc')但是 python2.6+ 可以使用 from __f...

2067

扫码关注云+社区