在浏览器中,变量一旦声明为基本类型,则再也无法为其添加其他属性,示例如下:

//  变量一旦声明为基本类型,则无法添加属性
var username = 'yiifaa'
username.from = 'china'
//  输出为undefined
console.log(username.from)

改为严格模式,再测试如上代码:

"use strict";
var username = 'yiifaa'
username.from = 'china'
console.log(username.from)

执行上面的代码,则直接提示如下错误:

Uncaught TypeError: Cannot create property 'from' on string 'yiifaa' at 1.html:21

可见,基本类型无法添加属性,切换为Object.defineProperty方式,依旧提示错误:

var username = 'yiifaa'
Object.defineProperty(username, 'from', {value : 'china'
})
console.log(username.from)

错误信息如下:

Uncaught TypeError: Object.defineProperty called on non-object
at Function.defineProperty (<anonymous>)
at 1.html:17

很明确的错误提示信息,无法为非对象类型定义属性。

如果,确实要为String添加自定义属性,则需要修改声明方式,如下:

var username = new String('yiifaa')
//  输出为object
console.log(typeof username)

现在username变量已支持自定义属性的添加了。

结论

不同的变量声明方式会导致变量具有不同的特性,如String()与new String()、Boolean()与new Boolean(),基本类型与否,则决定了以后的操作范围。

JS基本类型与无法定义的属性相关推荐

  1. JS基础类型的属性赋值问题

    在Javascript中,变量的类型一旦声明为基础类型,如果再为基础类型的变量添加属性,则其新建的属性不可存储,会自动销毁,基本流程如下: 1. 首先将基础类型临时转换为Object类型,并备份好基础 ...

  2. js如何操作表格(常用属性方法汇总)

    js如何操作表格(常用属性方法汇总) 一.总结 一句话总结: 二.表格相关的属性和方法 1.1 Table 对象集合 cells[] 返回包含表格中所有单元格的一个数组. 语法:tableObject ...

  3. 第一记: JS变量类型判断(VUE源码解读)

    学习摘要 : 以前总是对js变量类型的判断模糊不清楚,今天看到vue源码后才恍然大悟原来大神都是这样弄的,所以加以总结,写的不好的请大神们多多吐槽吐槽!!!!!! Vue 源码 /* 获取值的原始类型 ...

  4. 【笔记】js Function类型 内部方法callee

    运用function实现阶乘 以往的做法是如下的 function factorial(num){if(num <= 1){return 1;}else{return num * factori ...

  5. ML之PLiR之LARS:利用LARS算法求解ElasticNet回归类型(包括类别编码+属性重要程度排序)问题(实数值年龄预测)

    ML之PLiR之LARS:利用LARS算法求解ElasticNet回归类型(包括类别编码+属性重要程度排序)问题(实数值年龄预测) 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 x ...

  6. 判断一个js对象,是否具有某个属性

    一个对象,想必我们关注的最多的应该是它上面的属性有哪些吧.那么,怎么判断一个对象是否具有某个属性呢? 1 /*下面是一个对比,看看在判断是否包括一个键上面,Object结构和Set结构的写法不同.*/ ...

  7. js布尔类型+数字判断_C ++中的布尔数据类型

    js布尔类型+数字判断 In this article, we'll take a look at the Bool datatype in C++. 在本文中,我们将介绍C ++中的Bool数据类型 ...

  8. html js修改readonly,js控制html元素的readonly属性

    html元素假设为只读,那么其readonly="readonly",我们现在想通过js来改变readonly属性为可以输入. 初始时,两个输入框都是只读.点击change按钮后, ...

  9. js如何修改对象的padding属性

    js如何修改对象的padding属性 $(".process_body").css("padding","16px 5px 5px 16px" ...

最新文章

  1. 什么是Servlet?
  2. 综合实例_管线综合支吊架施工实例赏析,工艺流程全面
  3. Could not find a version that satisfies the requirement requests (from version : )
  4. python可以开发驱动吗_Python机器学习实践:测试驱动的开发方法
  5. python io密集 多线程_python多进程和多线程究竟谁更快(详解)
  6. 【OCP题库-12c】最新CUUG OCP 071考试题库(72题)
  7. 计算机管理用户拒绝访问,win10系统管理员账户拒绝访问怎么办
  8. html 在线播放器,实现简易html视频播放器的方法
  9. Dao接口返回数组_在内存只有10M的空间中申请一块5M的数组空间,会导致OOM吗?...
  10. getPhoneNumber:fail Error: 用户绑定的手机需要进行验证,请在客户端完成短信验证
  11. 【实验室集训大作业】JDBC实现宠物商店
  12. CentOS7 配置R语言及Rstudio-serve
  13. 计算机考研1000题pdf,2020考研张宇1000题(数一、二、三全).pdf
  14. 阿里云之发送验证码(2)
  15. 苹果x来电闪光灯怎么设置_手机上使用的记事备忘便签软件怎么设置来电提醒功能?...
  16. 架构师之路(18)讲解秒杀系统设计
  17. 贪财好色,做个俗人。
  18. CodeM2018游记
  19. PC端和移动端微信加入群聊测试用例设计点
  20. js+jQuery实现智慧党建相关费用纯前端计算公式实现

热门文章

  1. 古龙群侠传 服务器维护,【图片】【原创】古龙群侠传最全流程攻略~~【环家的那只熊吧】_百度贴吧...
  2. 【分布式】分布式环境下如何保证数据库和缓存的双写一致性?看完我明白了!!
  3. Mixly for Mac米思齐安装过程遇到的问题(已解决)
  4. 360浏览器过滤网站广告解决办法
  5. 溱潼中学2021高考成绩查询,溱潼中学新学年校长寄语
  6. 传智播客成都java培训老学员福利
  7. 上海科技大学计算机浙江分数线,2018上海科技大学录取分数线
  8. JavaScript读书笔记(三)布尔值,null,undefined,全局对象,包装对象
  9. bat 输入密码_不记得密码了?教你查看设备保存的账号密码,绝对干货
  10. 曲线救国的就业路线是否合理?