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 条评论
登录 后参与评论

相关文章

来自专栏Pythonista

python中的函数

初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变...

1554
来自专栏老马说编程

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

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

2695
来自专栏水击三千

JavaScript变量作用域

执行环境是JavaScript中比较重要的概念。执行环境定义了变量或者函数有权访问的其他数据决定了他们各自的行为,每个执行环境都有一个与之关联的变量,环境中定义...

2869
来自专栏ml

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

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

2916
来自专栏java一日一条

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

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

721
来自专栏积累沉淀

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

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

5927
来自专栏web前端教室

大白话-constructor

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

2146
来自专栏企鹅号快讯

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

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

2137
来自专栏LinkedBear的个人空间

唠唠SE的面向对象-06——单例模式 原

我们让之前写的Arrays工具类变成非静态的,但又只能保证有且只有一个Arrays的对象

803
来自专栏java一日一条

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

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

831

扫码关注云+社区

领取腾讯云代金券