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>
  • 相关阅读:
    layer 刷新某个页面
    C# Server.MapPath的使用方法
    .net mvc + layui做图片上传(二)—— 使用流上传和下载图片
    ASP.NET MVC4.0 后台获取不大前台传来的file
    安卓手机修改host
    mvc 页面 去掉转义字符
    educoder数据库实训课程-shell语句总结
    python selenium实现自动操作chrome的某网站数据清洗【此篇为jupyter notebook直接导出.md】
    LeetCode_27移除元素【数组】
    LeetCode_26 删除排序数组中的重复项【数组】
  • 原文地址:https://www.cnblogs.com/kester/p/6227207.html
Copyright © 2011-2022 走看看