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>
  • 相关阅读:
    【转】Elasticsearch 聚合数据结果不精确,怎么破?
    C# ling to sql group by分组查询
    c# JArray将返回json字符串集合 转为集合
    .netcore 获取请求客户端IP
    IP转long与string相互转化方法
    C# 操作datatable校验重复行,并显示行号
    springboot 以多模块形式集成Dubbo部署RPC服务
    windows 下搭建dubbo环境搭建
    spring 创建多模块项目,找不到jar包
    使用ZKUI Web页面管理zookeeper
  • 原文地址:https://www.cnblogs.com/kester/p/6227207.html
Copyright © 2011-2022 走看看