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" ...
最新文章
- .net使用websocket
- 如何使用Android SDK开发Android应用?
- Java学习笔记二十六:Java多态中的引用类型转换
- 数据库逻辑删除的sql语句_通过数据库的眼睛查询sql的逻辑流程
- Scikit-Learn与回归树
- Asynchronous HTTP Requests in Android Using Volley
- Linux中/etc/fstab /etc/mtab /proc/mounts这三个文件的分析与比较
- Dev-C++/Cpp使用入门详解
- Blender全新毛发工具演示露出,预计9月份正式更新
- 帮嫦娥五号登月的AI还能用来玩游戏,20行Python代码带你领略强化学习的风采
- Linux编程学习笔记-多进程编程
- 网络图片地址直接转Base64
- Unity-URP学习笔记(八)使用RendererFeature制作屏幕后期-高斯模糊
- Java版俄罗斯方块
- 蓝奏云软件库源码分享下载(后端源码)
- 修改CheckBox选择框、设置选择框颜色
- 使用本地CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box创建三个k8s集群虚拟机
- 音圈电机工作原理与直线电机的对比
- Jdk1.8 Collectors类使用详解(实用干货)
- linux kill进程 不发送fin,linux – FIN省略,FIN-ACK发送