对象使用和属性
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对象常用属性: 属性 说明 ...
遍历对象属性的方法主要有以下几种: 1. **for...in循环**: 这是最常用的遍历对象属性的方式。`for...in`循环会遍历对象的所有可枚举属性,包括其原型链上的属性。例如: ```javascript let obj = {name: '...
本文档聚焦于Excel中的VBA对象及其属性和方法,提供了针对Application对象的详细属性和方法查询集,这些内容对于使用VBA进行Excel开发的用户来说非常有用。 Application对象是VBA中最重要的对象之一,它是Excel的...
这个"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`工具类提供了一种通用的方式来比较两个对象的属性,而`...
在本例中,我们利用`Type`类的`GetProperties`方法获取了`Student`类的所有公共属性,然后通过`PropertyInfo`对象获取属性名和数据类型。此外,`SetValue`方法使我们能够在运行时修改对象的属性值,展示了反射机制的...
Ajax 基本对象是指在异步 JavaScript 和 XML(AJAX)技术中使用的基本对象,该对象提供了一些属性和方法来处理 XML 的 DOM 元素和遍历 XML 的 DOM 元素。下面是 Ajax 基本对象的属性和方法的详细介绍: 属性 Ajax ...
总的来说,“选中对象,获取邻接对象属性值”是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中进行对象属性值的校验,以及相关的工具和源码分析。 首先,对象属性值的校验通常在对象创建(构造函数)或属性赋值时进行。这是为了确保对象的状态始终符合预设的业务规则。例如,一个...
这里,我们使用了`Worksheets`对象的引用,`Range`对象的`Sum`方法,以及字符串连接和`Format`函数,这些都是Excel VBA中的常见操作。 此外,VBA还支持集合概念,如`Worksheets`就是一个`Worksheet`对象的集合。你...
(1)创建测试页面,在chapter08项目的WebContext根目录中,编写一个testattribute.jsp页面,以观察各个域对象属性事件监听器的作用。 (2)在cn.itcast.chapter08.listener包中,编写一个名为MyAttributeListener的...
了解这些对象的属性、方法和事件对于使用ADO进行数据库操作至关重要。通过合理地配置和调用,开发者可以实现高效的数据库交互,包括读取、写入、更新和删除数据。同时,了解相关的常数有助于更精确地控制数据库操作...