javascript中name这个变量貌似有点不好理解。

查看:62
本文介绍了javascript中name这个变量貌似有点不好理解。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

问题引发自我给name赋值之后无论怎么刷新页面这个值都不变,让有有点怀疑js变量的生命周期了!也是偶然碰到的。上一段测试代码,一开始没有定义name,也没有赋值,但是typeof name 是 string。后来打印出window对象,发现对象中有name这个属性,而且是个空字符串,那么也好理解。但是为什么赋值之后,这个值不是初始化为空字符串而是一直存在呢?

<!DOCTYPE html>
<html>
<head>
    <title>web</title>
    <meta charset="utf-8">
</head>
<body>

<button id="test">赋值</button></br>
<button id="show">显示</button></br>
<script>
//console.log(typeof name);


    var name;

    document.getElementById('test').onclick = function() {
        name = 'hello word';
    }
    

    document.getElementById('show').onclick = function() {
        alert(name);
    }

    //console.log(window);


</script>
</body>
</html>

解决方案

name你赋值的时候,name='hello word';其实是window.name='hellow world';然后你在看一下window.name的定义是 Gets/sets the name of the window.
我的理解时此时你给这个窗口设置了名称,所以不管你怎么刷新,窗口没有关闭,名称就在;这倒不是js变量的生命周期问题

这篇关于javascript中name这个变量貌似有点不好理解。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆