JavaScript权威指南(第6版) --- 自学笔记(15) --- 变量声明

变量声明
在js程序中,使用一个变量之前应当先声明。使用关键字var来声明。
(ES6新增了let命令,用来声明局部变量,有兴趣的可以自己百度一下,后续也会单独说明var与let区别。此处只按照书本说明var。)

// 可以一个关键字声明一个,如果声明语句没有给变量指定初始值,它的初始值是undefined。
var i;
var sum;
// 也可以一个关键字声明多个
var a, b;
// 也可以在声明的同时,为变量赋初始值
var msg = "hello world";
var i = 0, j = 1, k = 2;
// for 和 for/in 循环中使用var
for(var i = 0; i < 10; i++) { console.log(i); }
var obj = { x:1, y:2 };
for(var i in obj) { console.log(i + " = " + obj[i]); }


以上写法都是合法的,但是开发过程中,一定要严格按照团队的编码规范来书写代码(规约这个事情,我已经写过很多次了,可见规约的重要性)

注意:我们可以看到js在声明变量的时候,没有指定变量的数据类型,js变量可以是任意数据类型
看下面代码,是完全合法的。

var i = 10;
i = "test";
console.log(i);

重复的声明和遗漏的声明
使用var语句重复声明变量是合法且无害的。

var str;
var str = "a";
var str = "b";
console.log(str); // b

如果你试图读取一个没有声明的变量的值时,会报错。

console.log(str1); // Uncaught ReferenceError: str1 is not defined

在ECMAScript 5严格模式下,给一个未声明的变量赋值也会报错,但是非严格模式下,给一个未声明变量赋值,js实际上会给全局创建一个同名属性,并且可以正确工作,这意味着你可以侥幸不声明全局变量,但是这个不好的习惯可能会造成很多bug,因此应该在使用变量的时候,确保变量声明过。

str1 = 1;
console.log(str1); // 1
// 变量str1 没有声明直接赋值,正常运行,但这个绝对不是好代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值