var scope = "全局变量"; function test() { document.writeln(scope + "<br/>"); //全局变量 var scope = "局部变量"; document.writeln(scope + "<br/>"); //局部变量 }; test();
时间: 2024-01-29 12:02:41 浏览: 58
这段代码输出的结果为:
undefined
局部变量
这是因为在test函数内部定义了一个名为scope的局部变量,在变量声明前使用了document.writeln(scope),此时局部变量还未被赋值,因此输出undefined;而在变量赋值后,输出局部变量的值"局部变量"。如果想要输出全局变量的值,可以将变量声明提升至test函数前面,或者直接使用全局变量的值。
相关问题
<script> function Student(grade , subject){ this.grade= grade; Student.subject= subject; } s1 = new Student(5, 'Java'); document.writeln('s1的subject属性:' + s1.subject +"<br />"); document.writeln('Student的subject属性:' + Student.subject +"<br />"); s1.subject= 'Ruby'; document.writeln('s1的subject属性:' + s1.subject +"<br />"); </script>
这段代码定义了一个名为Student的构造函数,它有两个参数grade和subject,同时也定义了一个静态属性subject。创建了一个名为s1的对象,它的grade属性为5,subject属性为'Java'。接着输出了s1的subject属性以及Student的subject属性。然后将s1的subject属性值改为'Ruby',并输出s1的subject属性。最终输出的结果是:
s1的subject属性:Java
Student的subject属性:Java
s1的subject属性:Ruby
function test(name){ this.name=name; return "你好," +this.name +'<br/>'; } var rval = test('Tom'); document.writeln( rval ); var obj = new test('Mary'); for(var i in obj){ document.writeln(i+":"+obj[i]); }
这段代码的输出结果为:
你好,Tom
name:Mary
首先,调用test函数并传入参数'Tom',返回字符串"你好,Tom",并将其赋值给变量rval,输出该字符串。
然后,使用new关键字创建test函数的实例对象obj,并传入参数'Mary'。此时,test函数内部的this指向创建的实例对象obj,将参数name赋值给实例对象的属性name。
最后,使用for...in循环遍历实例对象obj的属性,输出name属性及其值"Mary"。注意,函数内部的return语句只会影响函数的返回值,并不会影响函数内部this指向的对象。
阅读全文