javascript小知识点
2024-08-24 16:09:54
大家对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>
最新文章
- Android Studio获取SHA1和MD5方法
- ROS的单线程Spinning和多线程Spinning
- mac 终端(terminal) 启动tomcat
- 【C语言入门教程】2.8 C 语言的预处理命令
- Consuming a Web Service in AX 2012
- 今天想用jquery来实现div的拖放功能
- 上线踩坑引发的处理方式---lsof,strace
- java Timer(定时调用、实现固定时间执行)
- 如何查看Linux操作系统版本
- mac ide
- Delphi文件映射
- SGU 149. Computer Network( 树形dp )
- 张高兴的 Windows 10 IoT 开发笔记:使用 MAX7219 驱动 8&#215;8 点阵
- 关于JS中变量提升的规则和原理的一点理解
- [转]关于OpenGL的绘制上下文
- [Swift]LeetCode817. 链表组件 | Linked List Components
- zookeeper的单实例和伪集群部署
- 19.0-uC/OS-III内存管理
- 自己遇到的ajax调用ashx文件无法获取返回值的一种情况
- 多线程(Thread,Runnable)
热门文章
- Linux下添加硬盘,分区,格式化详解
- HTTP 详解一 -- 转
- 让我们一起Go(九)
- MyBatis知多少(4)MyBatis的优势
- LeetCode——Merge k Sorted Lists
- mysqldump: Couldn&#39;t execute &#39;show table status &#39;解决方法
- python反转字符串(简单方法)及简单的文件操作示例
- 订餐APP第一次sprint+燃尽图
- dp - Google Code jam Qualification Round 2015 --- Problem B. Infinite House of Pancakes
- 支付宝支付集成,上传RSA公钥一直显示格式错误