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>
  • 相关阅读:
    HDU 5446 CRT+Lucas+快速乘
    awk的用法
    【福利】小程序开发资源干货汇总
    前端css常用的选择小汇
    前端css常用的选择小汇
    前端,Java,产品经理,微信小程序,Python等资源合集大放送
    前端,Java,产品经理,微信小程序,Python等资源合集大放送
    bootstrap+fileinput插件实现可预览上传照片功能
    bootstrap+fileinput插件实现可预览上传照片功能
    Jquery前端分页插件pagination同步加载和异步加载
  • 原文地址:https://www.cnblogs.com/kester/p/6227207.html
Copyright © 2011-2022 走看看