位置: 编程技术 - 正文

JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题(js给input添加属性)

编辑:rootadmin

推荐整理分享JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题(js给input添加属性),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js设置input属性必填项,js给input添加属性,input怎么调用js函数,js给input添加属性,javascript给input赋值,javascript中input怎么用,javascript中input怎么用,javascript给input赋值,内容如对您有帮助,希望把文章链接给更多的朋友!

 在自己做东西时,遇见了一个问题。就拿博客园的首页右边的搜索举例吧,用控制台操作。

  

  

  现在我需要从另外一个地方将数据传给input,让其在一刷新的时候就显示数据。

  这不难啊,于是我按照我的理解做了

  代码如下:

  

  此时,id为zzk_q的值应该为 测试 ,即input框内应该显示 测试 。但结果。。

  

  咦,为什么没有变呢,不对啊,又来来回回变着法子试一下,还是不行,当然代码基本还是那样子的。突然想起我以前遇见过这样子的问题,仔细回想当时解决的方法(看样子当时没理解透,只是找到方法就过去了),想起来了,我试一下,代码如下:

  看结果:

 

  这次成了。第一次遇见这个问题时没有细想,成功了就跳过了。但这次我开始想为什么呢?为什么呢?怎么会这样啊,没办法理解啊。然后我自己在哪里来回折腾,但还是想不明白。同样是赋值这俩者有什么差别吗?差别在哪里啊?后来才知道是值类型和引用类型,当然是别人给我指出来的(……)。

  然后我就去找这方面的东西看,发现这东西我看过,汗。

  自年Javascript被标准化以来,它定义了六种基本类型。直到ES6,JS程序中任何一个值都属于以下几种类型之一。

&#;Undefined &#;Null &#;Boolean &#;Number &#;String &#;Object

  不过,ES6又加了一个基本类型:Symbol 类型。这个没多大了解,不作讨论,等以后熟悉再说吧,又要学。

  在JavaScript的变量中,有俩种类型的值:基本类型和引用类型的值。基本类型值(也有人称为值类型)是简单地数据段,它是按值访问的,并对其中的值进行操作。而引用类型值值那些有可能有多个值构成的对象。赋值的时候,解释器必须确定值是基本类型还是引用类型。

  基本数据类型有:Undefined、Null、Boolean、Number、String。引用类型是保存在内存中的对象,即Object,对象是方法和属性结合。

  1.类型值的动态属性

JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题(js给input添加属性)

  这是引用类型:

  这个例子中,我们先创建了一个空对象,然后将其保存在person变量中,然后给对象添加了一个属性name,而且给这个属性赋值了一个字符串“foo”,然后输出,可以看到输出了字符串foo,然后我们将这个属性删除,输出undefined。这些说明,我们可以动态的给对象添加属性和方法,如果不销毁对象或者删除属性,将会一直存在。

  这是基本类型:

  在这个中,我们将一个字符串"foo",保存在一个name变量中,然后也给它添加了一个属性age,并赋值,然后输出,像我以前想的那么该输出,但实际情况是undefined。

  这个是否可以理解为基本类型的值是不可变的,而引用类型是可以动态改变的。

  2.复制变量值

  和上面说的一样,基本类型是按值访问的。而引用类型呢,在JavaScript和其它语言不同,允许直接访问内存中的位置,也就是说我们不可以直接操作对象的内存空间,那怎么办呢?在操作对象时,实际上是对操作对象的引用,引用类型的值是按引用对象访问的。引用类型的存储需要内存的栈内存和堆内存共同完成,栈内存保存变量标识符和指向堆内存中该对象的指针,也可以说是该对象在堆内存的地址。

  先看例子:

 从一个变量向另一个变量复制基本类型的值,我们会在变量对象上重新创建一个新值,然后把该值复制到新变量分配的位置上。这俩个值是完全对立的,对俩个变量进行其他操作是互不影响的。它们应该是保存在栈内存中,如下图所示:

 

  看一下引用类型:

  当从一个变量想另一个变量复制引用类型的的值时,也会将该值复制一份放到新的空间中。但是就跟上面说的一样,引用类型的存储要栈内存和堆内存一起完成,这个值实际上是一个指针,而这个指针指向存储在堆中的一个对象。复制操作结束后,俩个变量实际上是同一个指针,也就是引用同一个对象。所以,改变其中的一个变量,另一个变量也会随之改变。如下图:

参看 JavaScript高级程序设计。

  这样一梳理,就对一开始的问题有些明白了,开头那个错误,一开始,取到input的value(此时为空),复制给title,然后以改变title期望改变input的value。但input的value(可以看成一个变量)就是一个基本类型,复制后,它俩完全独立了,互不影响。再说成功的,将value拿出来,先将input(对象)复制给title,然后给title添加value属性,并赋值,此时俩个指向同一个对象,改变一个,也会影响另外一个。恩,就这样子。

  虽然很多知识从书上或其他地方看了一遍或多遍,但是等你真正遇到时感觉好奇怪。怎么会这样,然后自己去找答案。等找到或是别人指出后,才发现这个以前看见过,有些甚至自己解决过(不能说解决,只能说没有深究,没有彻底弄懂)。还有一些大学的基础都忘的七七八八了(本来就学的不好)。连栈内存和堆内存都去搜了一下。恩,既然决定走这条路了,就好好学习吧。

  最后:

PS:(集合和引用类型、基本数据类型赋值不一样)一个简单的java问题 先后的赋值问题

list里面的对象加进去就改不了,但是可以修改对象里面的属性值。

简单string里面的值就改变不了

结果:

切记:最好还是按正常来写,避免混淆

JavaScript的History API使搜索引擎抓取AJAX内容 大家在浏览Facebook的相册时有没有发现,页面局部刷新的同时地址栏的地址也改变了,而且不是hash的方式。它使用的就是HTML5history新增的几个API,作为wi

JS与jQuery遍历Table所有单元格内容的方法 本文实例讲述了JS与jQuery遍历Table所有单元格内容的方法。分享给大家供大家参考,具体如下:用JS去遍历Table的所有单元格中的内容,可以用如下JS代码

JavaScript中的return语句简单介绍 return语句在js中非常的重要,不仅仅具有返回函数值的功能,还具有一些特殊的用法,下面就结合实例简单介绍一下return语句的作用。一.用来返回控制

标签: js给input添加属性

本文链接地址:https://www.jiuchutong.com/biancheng/387106.html 转载请保留说明!

上一篇:JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例(javascript原生函数的源代码)

下一篇:JavaScript的History API使搜索引擎抓取AJAX内容

  • 增值税专用发票有效期是多长时间
  • 机动车统一发票税率多少
  • 个税补缴纳
  • 缴注册印花税怎么做账
  • 外包和离岸外包一样吗
  • 没有购置税发票有影响吗
  • 一般纳税人销售自己使用过的汽车
  • 兼营行为税务处理例子
  • 员工出差火车票可以抵扣进项吗
  • 结转销项税额至未交增值税的结转系数
  • 开了零税率的发票怎么办
  • 高新技术企业如何融资
  • 购买税控盘的钱能全额抵扣增值税吗
  • 打井行业
  • 税控服务费全额抵扣文件
  • 宽带费增值税
  • 开票商品税收分录怎么写
  • 公司投资另一家公司怎么做科目
  • 上年多计提附加税调整了,今年怎么调整
  • 银行要求的补偿性余额所占比例为20%
  • 采购发票主要包括什么可以根据什么单据流转生成
  • 开电子发票是填不含税单价吗
  • 报表上应交税费是负数是什么意思
  • 高新创投企业所得税税率
  • 转让金融商品应交增值税怎么算
  • quicktimeplayer.exe - quicktimeplayer是什么进程 有什么用
  • 公众号采集文章手机操作
  • 水利建设基金是税还是费
  • 司机公里补助用不用交个税
  • 预算会计的特点包括
  • PHP:date_default_timezone_get()的用法_Date Time函数
  • 用友财务软件使用视频教程
  • 基建账并账规定
  • 起征点适用于
  • 事业单位营业执照
  • 残保金计税基数是什么
  • 购买固定资产的运费计入什么科目
  • 个人所得税要缴纳一万多怎么办
  • mysql数据库三种复制类型
  • 有形动产租赁属于现代服务业吗
  • 其他综合收益影响所得税费用吗
  • db2入门
  • mysql日期和时间分开存的 索引
  • 单位买车和个人买车交税有何不同
  • 冲去年管理费用
  • 加计减免其他收入怎么填
  • 施工单位购买材料能直接进成本吗
  • 损益明细表计提企业所得税
  • 明细分类核算的依据是什么
  • 发票抬头公司报销的该怎么写
  • 不开票收入怎么做账
  • 物流行业会计核算特征有哪些
  • wbs是什么文件
  • win7虚拟内存怎么设置
  • windows10cortana搜索框
  • mac 的 safari 浏览器
  • win7怎么看最近访问位置
  • macos终端命令
  • 打开win七
  • 软件生态圈是什意思
  • win7 64位旗舰版电脑鼠标如何才能设置成左手操作?设置鼠标为左手操作的方法
  • win10桌面是什么样的
  • perl pop push shift unshift实例介绍
  • jquery弹出新窗口
  • shell包含文件
  • fortune命令
  • shell脚本技巧
  • unitytest
  • javascript框架的作用
  • jquery 表格插件
  • JQuery给select添加/删除节点的实现代码
  • sql怎么增删改
  • 现在开票可以不去税务局吗
  • 四川医保网上怎么缴费支付宝
  • 慈善组织可能会出现哪些问题
  • 我国现行税法体系中采用多次课征的税种是
  • 四川省地方税务局关于城镇土地使用税困难减免
  • 广东省电子税务局app下载官网
  • 新企业会计准则长期待摊费用
  • 人社局要求社保补缴
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设