浅说js变量

时间:2021-05-18

复制代码 代码如下:




var i;
var index;
var i, index;
var i = 0, index = 2;




var g = 'global';
function check() {
var g = 'local';
console.log(g); // local
}
check();


if (false) {
var test = 2;
function t() {
console.log('t function');
}
}
t(); // t function;
console.log(test); // undefined;



function f() {
console.log(test); // undefined
var test = 'test';
console.log(test); // 'test'
}
// 转化为
function f() {
var test;
console.log(test); // 变量仅声明, 则初始化为 undefined
test = 'test';
console.log(test); // 变量已赋值, 'test'
}

console.log(t); // 直接使用变量 t;
// 注: 直接给变量赋值时, 会隐式的把变量做为全局对待;
var t; // 未赋值变量, undefined;


var a = 3.14;
var b = a;
a = 4;
console.log(a, b); // 4, 3.14;

var a = [1, 2, 3];
var b = a;
a[0] = 99;
console.log(a, b); // 相同; [99, 2, 3];
// 数组是引用类型, 变量a和b 指向同一块内存地址;
// 变量保存基本类型的实际值, 而保存引用类型的引用(类指针);


var s = 'hello';
var u = s.toUpperCase();
s = u; // 不能再获取到 'hello' 值;
// 环境中不再有 'hello' 引用[没有变量指向它]
// (是否进行回收, 是通过是否存在赋值决定的)


声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章