根据我的理解,当您声明变量时,语法将如下所示:
var testing = "testing";
这是变量声明。我很困惑我的函数中的这个声明实际上是如何工作的:
function hello(testing){
testing = "this works?"
return testing;
}
hello('what');
我将字符串参数传递给hello。在我看来,我正在做这样的事情:
"what" = "this works?"
return "what"
在这种情况下,标识符是一个字符串。是标识符(在这种情况下是"什么")类型被转换,它是如何忽略'什么'是一个字符串?难道这不是语法错误吗?
答案 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"