zoukankan      html  css  js  c++  java
  • javascript小知识点

    大家对input中的value值研究的透彻么,今天看到一篇博客,很神奇  然后研究了一下input中的value值到底对应的是啥值

    1、input中的value,这是大家在开发中进场遇到的一个问题

    <input type="button" value="kester" onclick = "alert(value)">

    这种情况下,会弹出测试的弹窗内容为“kester”

    2、但是在请看一下的一种情况

    <script>
    var value=123;
    </script>
    <input type="button" onclick = "alert(value)">

    心里在想,这种情况下value找不到,是不是沿着作用域找到上一层的document,应该弹出“123”,结果是错误的,然而弹出来的是一个空值

    3、value确实是找不到么?答案却否定的。

    在调试工具下,查看的this的属性是有一条记录的:value:“”,这样证实了value为空值,例下代码

    <input type="button" onclick = "console.log(this)">

    4、所以,在input中,value是永远存在的,不存在找不到的情况,赋值了value就是被赋值的值,没有赋值的value为空,这个大家都应该清楚的

    5、举个例子

    <script>
    var val=123;
    </script>
    <input type="button" onclick = "console.log(val)">

    value的伪装兄弟是val。val现在input对象上找,没有找到,沿着作用域在document对象上找,找到弹出123

    6、不论val=123被写在前面还后面,都是可以访问到的,因为这是一个点击事件,当在出发这个点击事件的时候,页面已经解析了js

    <input type="button" onclick = "console.log(val)">
    <script>
    var val=123;
    </script>

    7、是这样吗?但其实把声明放在后面是不靠谱的,如果之间还有其他<script>代码,由于网络原因无法访问到,由于<script>有阻塞作用,会阻塞后面代码,会报错。

    <input type="button" onclick = "alert(val)">
    <script src="http://www.qq.com/test.js"></script>
    <script>
    var val=123;
    </script>
  • 相关阅读:
    Unity3D系列教程--使用免费工具在Unity3D中开发2D游戏 第一节
    第十三周项目2:形状类族中的纯虚函数
    js中的null和undefined
    javaScript Windows相关
    Array和ArrayList的异同点
    汉语-词语-人才:T型人才
    图书-计算机-软件编程:《程序员的自我需要》
    智力-智力测试-门萨:百科
    智力开发-早教:七田真
    经济-AMA:百科
  • 原文地址:https://www.cnblogs.com/kester/p/6227207.html
Copyright © 2011-2022 走看看