JavaScript 学习记录二(未定义的变量和未赋值的变量)

本文探讨了JavaScript程序设计中两种不同类型的未定义变量:未声明的变量不会引起错误,但会隐式声明在全局作用域中;而已声明但未赋值的变量,在读取时会得到默认值undefined。通过简单的代码示例,解释了这两种变量的不同处理方式。
在javascript程序设计中,有两种不同类型的未定义变量。
一种未定义的变量是从来没有声明过的,尝试读这种未经声明的变量会引起运行时的错误。未被声明的变量(undeclared variable)就是未定义的,因为这样的变量根本不存在。但是,[color=red]给未声明的变量赋值并不会引起错误,相反,程序会在全局作用域中隐式的声明它。[/color]
第二种未定义的变量是已经被声明了但是永远都不会被赋值的变量。如果要读这样的变量的值,将会得到一个默认值,即undefined。

document.write(a);
var a = 'gao';
document.write(a);
document.write(u);
u = 'mei';
document.write(u);

很短的结束了。
字符变量未赋值时的情况因编程语言而异: ### C/C++ 在 C/C++ 中,如果是局部字符变量未初始化,它的值是未定义的,包含的是内存中原来的随机值。示例代码如下: ```c #include <stdio.h> int main() { char a; printf("未赋值的字符变量 a 的值(以整数形式输出): %d\n", a); return 0; } ``` 而如果是全局字符变量或者静态局部字符变量,未初始化时会被自动初始化为 0(对应 ASCII 码的空字符 `'\0'`)。示例代码如下: ```c #include <stdio.h> char global_a; int main() { static char static_a; printf("全局未赋值的字符变量 global_a 的值(以整数形式输出): %d\n", global_a); printf("静态局部未赋值的字符变量 static_a 的值(以整数形式输出): %d\n", static_a); return 0; } ``` ### Java Java 中,类的成员变量如果是字符类型,未赋值时会被自动初始化为 `'\u0000'`(即 Unicode 编码为 0 的字符)。但如果是方法内的局部字符变量,必须显式赋值后才能使用,否则会编译报错。示例代码如下: ```java class CharacterVariableExample { char member_a; public static void main(String[] args) { CharacterVariableExample example = new CharacterVariableExample(); System.out.println("类的成员字符变量 member_a 的值: " + example.member_a); // 下面这行代码会编译报错,因为局部变量未初始化 // char local_a; // System.out.println(local_a); } } ``` ### Python Python 没有严格意义上的字符类型,只有字符串类型。如果只是定义一个变量未赋值,该变量没有指向任何对象,使用时会引发 `NameError` 异常。示例代码如下: ```python try: print(a) except NameError as e: print(f"错误信息: {e}") ``` ### JavaScriptJavaScript 中,变量声明但未赋值时,其值为 `undefined`。示例代码如下: ```javascript let a; console.log("未赋值变量 a 的值: ", a); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值