使用字符串参数javascript声明变量

时间:2014-07-27 01:12:45

标签: javascript

根据我的理解,当您声明变量时,语法将如下所示:

var testing = "testing";

这是变量声明。我很困惑我的函数中的这个声明实际上是如何工作的:

function hello(testing){
  testing = "this works?"
  return testing;
}
hello('what');

我将字符串参数传递给hello。在我看来,我正在做这样的事情:

"what" = "this works?"
return "what"

在这种情况下,标识符是一个字符串。是标识符(在这种情况下是"什么")类型被转换,它是如何忽略'什么'是一个字符串?难道这不是语法错误吗?

4 个答案:

答案 0 :(得分:2)

你必须掌握变量和值之间的区别。

当你调用hello('what')时,你将值'what'传递给函数。该值被赋值给变量'testing'。 'testing'是一个变量,它是对内存中包含值'what'的位置的引用,而不仅仅是'what'。因此,该函数可以自由地为变量测试分配一个新值(即'this works?'),它将该值存储在内存中的相同位置。

答案 1 :(得分:2)

就像你写的那样:

function hello(var testing)

除了var在这里是自动的,你不能写它。

一旦你以这种方式思考,一切都会变得更加清晰。 :)

答案 2 :(得分:0)

函数中的参数是变量。

function hello(testing) {
  testing = "this works?"

的工作原理与

相同
var testing;
testing = "this works?"

答案 3 :(得分:0)

你误解了,testing是变量,"what"是变量内的值,当你做

testing = "this works";

您只需将值"this works“分配给变量testing,而不是值"what"