JS基本类型与无法定义的属性
在浏览器中,变量一旦声明为基本类型,则再也无法为其添加其他属性,示例如下:
// 变量一旦声明为基本类型,则无法添加属性
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基本类型与无法定义的属性相关推荐
- JS基础类型的属性赋值问题
在Javascript中,变量的类型一旦声明为基础类型,如果再为基础类型的变量添加属性,则其新建的属性不可存储,会自动销毁,基本流程如下: 1. 首先将基础类型临时转换为Object类型,并备份好基础 ...
- js如何操作表格(常用属性方法汇总)
js如何操作表格(常用属性方法汇总) 一.总结 一句话总结: 二.表格相关的属性和方法 1.1 Table 对象集合 cells[] 返回包含表格中所有单元格的一个数组. 语法:tableObject ...
- 第一记: JS变量类型判断(VUE源码解读)
学习摘要 : 以前总是对js变量类型的判断模糊不清楚,今天看到vue源码后才恍然大悟原来大神都是这样弄的,所以加以总结,写的不好的请大神们多多吐槽吐槽!!!!!! Vue 源码 /* 获取值的原始类型 ...
- 【笔记】js Function类型 内部方法callee
运用function实现阶乘 以往的做法是如下的 function factorial(num){if(num <= 1){return 1;}else{return num * factori ...
- ML之PLiR之LARS:利用LARS算法求解ElasticNet回归类型(包括类别编码+属性重要程度排序)问题(实数值年龄预测)
ML之PLiR之LARS:利用LARS算法求解ElasticNet回归类型(包括类别编码+属性重要程度排序)问题(实数值年龄预测) 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 x ...
- 判断一个js对象,是否具有某个属性
一个对象,想必我们关注的最多的应该是它上面的属性有哪些吧.那么,怎么判断一个对象是否具有某个属性呢? 1 /*下面是一个对比,看看在判断是否包括一个键上面,Object结构和Set结构的写法不同.*/ ...
- js布尔类型+数字判断_C ++中的布尔数据类型
js布尔类型+数字判断 In this article, we'll take a look at the Bool datatype in C++. 在本文中,我们将介绍C ++中的Bool数据类型 ...
- html js修改readonly,js控制html元素的readonly属性
html元素假设为只读,那么其readonly="readonly",我们现在想通过js来改变readonly属性为可以输入. 初始时,两个输入框都是只读.点击change按钮后, ...
- js如何修改对象的padding属性
js如何修改对象的padding属性 $(".process_body").css("padding","16px 5px 5px 16px" ...
最新文章
- 什么是Servlet?
- 综合实例_管线综合支吊架施工实例赏析,工艺流程全面
- Could not find a version that satisfies the requirement requests (from version : )
- python可以开发驱动吗_Python机器学习实践:测试驱动的开发方法
- python io密集 多线程_python多进程和多线程究竟谁更快(详解)
- 【OCP题库-12c】最新CUUG OCP 071考试题库(72题)
- 计算机管理用户拒绝访问,win10系统管理员账户拒绝访问怎么办
- html 在线播放器,实现简易html视频播放器的方法
- Dao接口返回数组_在内存只有10M的空间中申请一块5M的数组空间,会导致OOM吗?...
- getPhoneNumber:fail Error: 用户绑定的手机需要进行验证,请在客户端完成短信验证
- 【实验室集训大作业】JDBC实现宠物商店
- CentOS7 配置R语言及Rstudio-serve
- 计算机考研1000题pdf,2020考研张宇1000题(数一、二、三全).pdf
- 阿里云之发送验证码(2)
- 苹果x来电闪光灯怎么设置_手机上使用的记事备忘便签软件怎么设置来电提醒功能?...
- 架构师之路(18)讲解秒杀系统设计
- 贪财好色,做个俗人。
- CodeM2018游记
- PC端和移动端微信加入群聊测试用例设计点
- js+jQuery实现智慧党建相关费用纯前端计算公式实现
热门文章
- 古龙群侠传 服务器维护,【图片】【原创】古龙群侠传最全流程攻略~~【环家的那只熊吧】_百度贴吧...
- 【分布式】分布式环境下如何保证数据库和缓存的双写一致性?看完我明白了!!
- Mixly for Mac米思齐安装过程遇到的问题(已解决)
- 360浏览器过滤网站广告解决办法
- 溱潼中学2021高考成绩查询,溱潼中学新学年校长寄语
- 传智播客成都java培训老学员福利
- 上海科技大学计算机浙江分数线,2018上海科技大学录取分数线
- JavaScript读书笔记(三)布尔值,null,undefined,全局对象,包装对象
- bat 输入密码_不记得密码了?教你查看设备保存的账号密码,绝对干货
- 曲线救国的就业路线是否合理?