对象使用和属性
JavaScript 中所有变量都是对象,除了两个例外 null 和 undefined。
false.toString() // 'false'
[1, 2, 3].toString(); // '1,2,3'
function Foo(){}Foo.bar = 1;Foo.bar; // 1
一个常见的误解是数字的字面值(literal)不是对象。这是因为 JavaScript 解析器的一个错误, 它试图将点操作符解析为浮点数字面值的一部分。
2.toString(); // 出错:SyntaxError
有很多变通方法可以让数字的字面值看起来像对象。
2..toString(); // 第二个点号可以正常解析
2 .toString(); // 注意点号前面的空格
(2).toString(); // 2先被计算
对象作为数据类型
JavaScript 的对象可以作为哈希表使用,主要用来保存命名的键与值的对应关系。
使用对象的字面语法 - {} - 可以创建一个简单对象。这个新创建的对象从 Object.prototype 继承下面,没有任何自定义属性。
var foo = {}; // 一个空对象// 一个新对象,拥有一个值为12的自定义属性'test'var bar = {test: 12};
访问属性
有两种方式来访问对象的属性,点操作符或者中括号操作符。
var foo = {name: 'Kitten'}foo.name; // kittenfoo['name']; // kittenvar get = 'name';foo[get]; // kittenfoo.1234; // SyntaxErrorfoo['1234']; // works
两种语法是等价的,但是中括号操作符在下面两种情况下依然有效 - 动态设置属性 - 属性名不是一个有效的变量名(译者注:比如属性名中包含空格,或者属性名是 JS 的关键词)
译者注:在 JSLint 语法检测工具中,点操作符是推荐做法。
删除属性
删除属性的唯一方法是使用 delete 操作符;设置属性为 undefined 或者 null 并不能真正的删除属性, 而仅仅是移除了属性和值的关联。
var obj = { bar: 1, foo: 2, baz: 3};obj.bar = undefined;obj.foo = null;delete obj.baz;for(var i in obj) { if (obj.hasOwnProperty(i)) { console.log(i, '' + obj[i]); }}
上面的输出结果有 bar undefined 和 foo null - 只有 baz 被真正的删除了,所以从输出结果中消失。
属性名的语法
var test = { 'case': 'I am a keyword so I must be notated as a string', delete: 'I am a keyword too so me' // 出错:SyntaxError};
对象的属性名可以使用字符串或者普通字符声明。但是由于 JavaScript 解析器的另一个错误设计, 上面的第二种声明方式在 ECMAScript 5 之前会抛出 SyntaxError 的错误。
这个错误的原因是 delete 是 JavaScript 语言的一个关键词;因此为了在更低版本的 JavaScript 引擎下也能正常运行, 必须使用字符串字面值声明方式。
分享到:
相关推荐
codesys面向对象的方法属性动作接口是指在codesys中实现面向对象编程的方法、属性和动作接口。这种接口允许用户在codesys中实现面向对象编程,使用继承、多态和封装等面向对象编程的基本概念。 在codesys中,方法、...
本文主要讲解了如何在JavaScript中删除对象的某个属性,并通过实际案例详细解释了delete操作符的使用方法。...在实际应用中,开发者需要合理利用delete操作符,以便有效地控制对象属性的存取和内存管理。
1、Window对象属性 每个对象都有自己的属性,顶级对象Window是所有其他子对象的父对象,它可以出现在每个页面上,并且可以咋单个JS应用程序中被多次使用。 下表列出了一些Window对象常用属性: 属性 说明 ...
这篇博文“MyBatisDemo && JAVA把一个对象的全部属性复制到另一个相同的对象”探讨的是如何在Java编程中实现对象属性的深度复制。MyBatis是一个流行的Java持久层框架,它简化了数据库操作,而对象复制则是处理业务...
需要注意的是,JavaScript引擎可能有不同的实现,导致在某些环境下,即使使用了上述方法,对象属性的顺序也可能不一致。因此,如果依赖属性顺序,最好的做法是避免直接依赖对象的默认行为,而是采用数组或其他数据...
这个"ASP对象属性参考手册"显然是一个关于ASP中核心对象及其属性的详细指南。在ASP中,有几个关键的对象,它们是Web应用程序的核心组成部分,包括Request、Response、Session、Application、Server和ObjectContext等...
微信小程序两种为对象属性赋值的方式 对应config.wxml 阶段一 对应config.js data:{ //定义对象 configs:{} } //方式一 switchChange:function(e){ //为对象的某一属性赋值 configs.config1={ }; ...
总结起来,`Java对象属性数据比较,返回变化数据`这个主题涉及到Java的面向对象特性,包括对象、属性、以及反射API的使用。`ObjectCompareUtil`工具类提供了一种通用的方式来比较两个对象的属性,而`...
总的来说,“选中对象,获取邻接对象属性值”是GIS应用中常见的操作,它结合了空间分析和属性查询的能力。通过SuperMap .NET的iObject和SpatialQuery类,开发者可以方便地实现这一功能,从而在实际项目中实现更复杂...
java list根据对象的某个属性的值去重,java list根据对象的某个属性的值去重java list根据对象的某个属性的值去重
解决解决对象不支持此属性或方法工具,当运行弄个程序,提示对象不支持此属性,即可以使用该工具
受 ES5 的限制,Vue.js 不能检测到对象属性的添加或删除。 请参照https://v1-cn.vuejs.org/guide/reactivity.html 解决方式: 通过vue的this.$set(object, key, value)方法 通过Object.assign()重新创建一个对象, ...
- **类**:类是创建对象的模板,定义了对象的属性(数据成员)和方法(函数成员)。 - **属性**:属性是对象的状态,即对象中存储的数据。 - **方法**:方法是对象的行为,是与对象相关的操作或函数。 2. **在AM...
在本主题中,我们将深入探讨如何在控制台中检查JavaScript对象的方法和属性,这对于理解和解决问题至关重要。 首先,理解JavaScript对象的基本概念是至关重要的。对象是键值对的集合,这些键可以是字符串或符号,而...
这篇文章将探讨如何在Java中进行对象属性值的校验,以及相关的工具和源码分析。 首先,对象属性值的校验通常在对象创建(构造函数)或属性赋值时进行。这是为了确保对象的状态始终符合预设的业务规则。例如,一个...
(1)创建测试页面,在chapter08项目的WebContext根目录中,编写一个testattribute.jsp页面,以观察各个域对象属性事件监听器的作用。 (2)在cn.itcast.chapter08.listener包中,编写一个名为MyAttributeListener的...
了解这些对象的属性、方法和事件对于使用ADO进行数据库操作至关重要。通过合理地配置和调用,开发者可以实现高效的数据库交互,包括读取、写入、更新和删除数据。同时,了解相关的常数有助于更精确地控制数据库操作...
在本文中,我们将深入探讨Silverlight中的对象和属性,并通过实用示例来帮助您更好地理解和应用这些概念。 首先,让我们了解Silverlight的核心对象。在Silverlight中,UI元素是构建用户界面的基本组成部分,例如...
本文档聚焦于Excel中的VBA对象及其属性和方法,提供了针对Application对象的详细属性和方法查询集,这些内容对于使用VBA进行Excel开发的用户来说非常有用。 Application对象是VBA中最重要的对象之一,它是Excel的...
vba的对象属性大全