首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用'[]'表示法访问javascript对象成员而不是点符号的原因是什么?

在JavaScript中,使用[]表示法访问对象成员而不是点符号(.)的原因是为了遵循基于原型的面向对象编程(OOP)范式。在OOP中,对象是使用点符号(.)来表示的,但对象中的属性或方法并不直接表示为点符号,而是表示为方括号[]中的键名。这样做的目的是为了提高代码的可读性和可维护性,以及遵循某些JavaScript编码规范。

另外,使用[]表示法访问对象成员也具有动态性质,可以在运行时动态设置或获取对象的属性或方法。而使用点符号(.)则表示的对象属性或方法在编译时就已经确定,无法在运行时动态更改。

因此,在JavaScript中,使用[]表示法访问对象成员而不是点符号(.)的原因是为了遵循基于原型的面向对象编程范式,提高代码的可读性和可维护性,以及具有动态性质。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JavaScript 编程精解 中文第三版 六、对象秘密

如果你确实有一个简单对象,出于某种原因需要将它视为一个映射,那么了解Object.keys只返回对象自己键,不是原型中那些键,会很有用。...这会导致属性名称求值,就像方括号属性访问表示一样,这允许我们引用一个持有该符号绑定。...有时候你想直接向你构造器附加一些属性,不是原型。 这样方法将无法访问类实例,但可以用来提供额外方法来创建实例。 在类声明内部,名称前面写有static方法,存储在构造器中。...通过将属性放到它们原型中,可以充分利用这一,给定类型所有值在原型中分享它们属性。 class表示提供了一个显式方法,来定义一个构造器及其原型。...你可以定义读写器,在每次访问对象属性时秘密地调用方法。 静态方法是存储在类构造器,不是其原型中方法。

1.7K60

09-2 读取、写入和执行

二、读取、写入和执行 对文件和目录访问权限是按照 读访问、写访问以及执行访问 来定义。 1.文件属性分类 (1)是什么?...组成员:具有读取、写入权限。其它所有用户:没有任何访问权限。 L rwx rwx rwx 符号链接。所有的符号链接文件显示都是伪权限属性。真正权限属性由符号链接所指向实际文件决定。...返回值: ''' (2)八进制数字表示是什么/为什么? 八进制数字表示:指的是使用八进制数字来设置所期望权限。...(3)符号表示 chmod 命令也支持一种符号表示来指定文件模式。 ① 三部分 符号表示分为 3 部分:更改会影响谁、要执行哪个操作、要设置哪种权限。...(注意:指定多种权限时,需用逗号分隔) (4)总结 有的人喜欢使用八进制表示,有的人喜欢符号表示符号表示优点在于允许设置单个属性,不影响其它任何属性。

1.2K20

面试常考知识总结——面试必看

进程如果有一细微不同,那么虚拟地址就会有差异。 socketpair和管道区别有哪些? 答:管道是半双工、socket是全双工 虚拟地址空间如何映射到物理地址空间?...在模板内static函数只可被这一模块内其他函数调用,这个函数适用范围被限制在声明他模板内 在类中static成员变量属于整个类所拥有,对象所有对象只有一份复制 在类中static成员函数属于整个类所拥有...例如就++操作而言,对引用操作直接反应到所指向对象不是改变指向;而对指针操作,会使指针指向下一个对象不是改变所指对象内容。...平衡树(BT) 指的是,任意节点子树高度差都小于等于1。 堆栈溢出一般是什么原因导致? 函数调用层次太深。...内联成员函数:内联函数是在编译时展开,虚函数是为了实现多态,是在运行时绑定。因此内联函数和多态特性相违背。 静态成员函数:首先静态成员函数理论是可继承

81820

01 Java 数据类型和变量

默认使用 int 就够了, 除非预期会出现大于该数值情况使用 long 类型。 若存在 int 转 long 类型情况, 建议添加后缀 L, 不是使用易和数字 1 混淆小写字母 l。...成员变量随着对象建立建立,存在于对象所在堆内存中。 成员变量有默认初始化值。 静态成员变量(类变量) 在定义 class 时,作为成员变量且加了static 关键字。...成员变量 / 类变量(静态成员变量) 成员变量可添加修饰符,包括访问权限修饰符public、private、protected和非访问权限修饰符static、final、native等。...成员变量和静态成员变量(类变量)区别 两个变量生命周期不同。    成员变量随着对象创建存在,随着对象被回收释放。    静态变量随着类加载存在,随着类消失消失。...它声明格式为:final 数据类型 变量名 = 初始值; 常量和变量命名规范 Java 编码规范命名方法采用驼峰,下面分类说明一下。 包名:包名是全小写字母,中间可以由分隔开。

86320

​面试常问16个C语言问题,你能答上来几个?

:不能以分号结束,括号使用,等等) 懂得预处理器将为你计算常数表达式值,因此,直接写出你是如何计算一年中有多少秒不是计算出实际值,是更清晰没有代价。...静态成员函数 (1)静态成员函数和静态数据成员一样,他们都属于类静态成员不是对象成员。 (2)非静态成员函数有this指针,静态成员函数没有this指针。...(3)静态成员函数主要用来访问静态数据成员不能访问非静态成员。 7 关键字const有什么含义?...精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量值,不是使用保存在寄存器里备份。...不管如何,这无符号整型问题答案输出是 ">6"。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。 因此-20变成了一个非常大正整数,所以该表达式计算出结果大于6。

90820

C++语言基础篇(二)

✅作者简介:CSDN内容合伙人,全栈领域新星创作者,阿里云专家博主,华为云云享专家博主,掘金后端评审团成员 前言: 学长出这一系列专栏适合有⼀ C++ 基础,但是⼜不怎么扎实,或者知识串不起来同学...作⽤四: 修饰类:如果 C++ 中对类中某个函数⽤ static 修饰,则表示该函数属于⼀个类⽽不是属于此类任何 特定对象;如果对类中某个变量进⾏ static 修饰,则表示该变量以及所有的对象所有...const 在类中:const 成员变量,只在某个对象⽣命周期内是常量,⽽对于整个类⽽⾔是可以改变。因为 类可以创建多个对象,不同对象其 const 数据成员值可以不同。...所以不能在类声明中初始化 const 数据成员, 因为类对象在没有创建时候,编译器不知道 const 数据成员是什么。const 数据成员初始化只能在类构 造函数初始化列表中进⾏。...C ++ 中 const类成员函数(⽤和意义) 常量对象可以调⽤类中 const 成员函数,但不能调⽤⾮ const 成员函数; (原因对象调⽤成员函数时,在形 参列表最前⾯加⼀个形参 this

56710

50道JavaScript详解面试题,你需要了解一下

2、控制台输出是什么? 答案是输出为10,因为将对象传递给函数时对象相似,仅传递其值,不传递对内存位置实际引用。这就是为什么更改仅影响函数范围内参数原因。 3、控制台输出是什么?...在Line2中,我们使用===运算符来检查两个字符串基元不是字符串对象,因此我们得到True。 5、控制台输出是什么,为什么? 与之前问题类似,我们比较了两个唯一对象。...instanceof需要TypeScript,typeof则不需要。 typeof在右侧使用变量名称, instanceof在左侧和右侧使用值,不是。...24、括号符号可以像符号一样链接吗? 是的,可以,obj.prop1.prop2和obj ['prop1'] ['prop2']是等效。 25、for…in循环中会显示什么类型属性?...34、使用缩减函数从数字数组中找到最小值。 35、JavaScript子程序是什么? 子例程是主例程中遇到函数,然后将其保存到对象并存储以供以后使用

3.5K40

Javascript到Typescript到Node.js

闭包 闭包在Javascript里是很重要概念,很多实现机制都会利用这点。闭包由function确立,子闭包可以访问外部变量,但是外部不能访问字闭包内成员。...每一个function都可以通过设置prototype成员指定它类型原型实例,要注意这里是原型实例不是原型类型。...另外,由于Javascript没有类似protected和private之类关键字。所以在模拟面向对象继承时候,只能使用私有成员(通过var申明)和公有成员(使用this....而使用这个接口地方,编译程序会检查传入变量和常量类型是不是包含接口中声明全部功能,并且类型一致。...在构造函数里,可以使用*super*关键字访问父类成员,而且这个关键字也只能在构造函数里使用

2.3K20

【JS进阶】你真的掌握变量和类型了吗

undefined转为数值时为NaN(非数字值特殊值) JavaScript是一门动态类型语言,成员除了表示存在空值外,还有可能根本就不存在(因为存不存在只在运行期才知道),这就是undefined...0.1二进制 是这么多位不是更多位???...5.4 IEEE 754 IEEE754标准包含一组实数二进制表示。它有三部分组成: 符号位 指数位 尾数位 三种精度浮点数各个部分位数如下: ?...image JavaScript使用是64位双精度浮点数编码,所以它符号位占1位,指数位占11位,尾数位占52位。...image 符号位就是标识正负,1表示负,0表示正; 指数位存储科学计数指数; 尾数位存储科学计数有效数字; 所以我们通常看到二进制,其实是计算机实际存储尾数位。

3.2K30

令人期待 JavaScript 新特性

更多优质文章请猛戳GitHub博客 一、类私有变量 最新提案之一是在类中添加私有变量方法。我们将使用 # 符号表示私有变量。这样就不需要使用闭包来隐藏不想暴露给外界私有变量。...#increment(); // 报错 通过 # 修饰成员变量或成员函数就成为了私有变量,如果试图在 Class 外部访问,则会抛出异常。...目的是为了防止错误发生,如果简单直接访问obj.first.second不对obj和obj.first 进行校验就有可能产生错误。...9000; console.log(m) // 0 四、BigInt JS在Math上一直很糟糕原因之一是,无法精确表示大于数字2 ^ 53,这使得处理相当大数字变得非常困难。...WeakSet 是弱引用对象唯一方:将对象作为键添加到 WeakMap 或 WeakSet 中,是不会阻止它被垃圾回收

41820

V8中推测优化(Speculative Optimization)介绍

V8 会获取 JavaScript 源代码并将其反馈给所谓 "解析器"(Parser),后者会为源代码创建抽象语法树(AST)表示。...图片 在 V8 中,我们有两种可能标记表示: Smi(小整数缩写)和堆对象(HeapObject),后者指向托管堆中内存。...在 32 位架构中,Smi 表示将最小有效位设置为 0,并将 31 位有符号数值向左移 1,存储在字上 31 位。...这样,引擎就会忙于优化和取消优化代码,不是高速运行 JavaScript 代码。...在这里,它甚至没有尝试处理其他数字、字符串、大 ints 或任意 JavaScript 对象只是专注于我们目前看到这类数值。这正是许多 JavaScript 应用程序达到峰值性能关键因素。

34320

前端常见问题分析

所以 0.1 其实存比 0.1 要大一,0.2 也是一样, 0.3 比实际小一些。所以计算 0.1+0.2 时候其实是拿二进制计算,两个都偏大数字相加 误差被近一步放大了。...符号位:在数值类型二进制补码表示中,第一位表示符号位,0 表示正号,1 表示负号。 指数位:在数值类型二进制补码表示中,指数位用来表示科学计数指数部分。...在双精度浮点数中,指数部分使用11个位表示,其中 10 个位表示二进制整数,在运算前需要减去 2^n 形式,剩下一位表示符号,1表示负指数,0表示正指数。...懒加载和预加载:懒加载可以减少初始页面渲染时间,当用户需要访问到某个资源时,才去加载这个资源,预加载可以预先加载即将用到资源,加快用户访问其他页面时速度。...虚拟 DOM:使用 Virtual DOM,实现局部修改视图不是整体重新渲染,减少 DOM 操作。

24751

使用chmod修改文件权限

要查看一组文件文件权限,请使用: ls -lha 在输出第一列中,有10个字符表示权限位。要了解它们之所以被称为权限位原因,请参阅下面的八进制表示法部分。...三个一组中剩余九位分别表示用户,组和全局权限。各个代表含义如下: r:读取 w:写入 x:执行 请注意,符号链接所针对文件访问权限由目标文件控制,不是链接对象控制。...如何使用八进制表示表示文件权限 设置权限另一种方法是通过八进制表示。 以下代码效果与chmod u=rwx,go=rx相同。...两种表示都是等效,您可以选择使用任意一种表单更清楚地表达您权限需求。...权限600指所有者对文件具有完全读写权限,而其他用户无权访问该文件。权限644指文件所有者具有读写权限,系统上成员和其他用户只具有读取权限。

3.8K30

程序员必知常见命名方法

大烤串式主要用于突出强调被命名对象,古老 Cobol 编程语言中经常使用,所以有时也被称为 COBOL-CASE。...匈牙利系统命名是指在 Windows 操作系统中使用匈牙利命名,因 Windows API 被大家熟知。 匈牙利系统命名在匈牙利应用命名之后出现,二者区别主要在于前缀目的不同。...string) Simonyi 提出大多数(但不是全部)前缀本质上是语义,现在来看,一些前缀也表示物理数据类型,例如以 Null 做结尾字符串使用 sz 前缀。...然而,这些前缀仍然是语义上,因为 Simonyi 想法是使用语义化前缀来表示变成语言类型系统无法表达逻辑上数据类型。 Simonyi 建议大多数前缀都是自然语义,但不是所有。...匈牙利命名在 C++ 中被扩展包含变量作用域,由一个下划线隔开: g_nWheels // 全局命名空间成员,整型 m_nWheels // 结构体/类成员,整型 匈牙利命名是一个十分复杂繁琐命名规范

40820

前端系列11集-ES6 知识总结

只是让对象原型写法更加清晰、更像面向对象编程语法 静态方法 static 关键字 该方法不会被实例继承,直接通过类来调用 静态方法中 this 指向类本身,不是实例 静态属性 Class 本身属性...是 Object.entries 逆操作将一个键值对数组转为对象 Iterator 是一种接口,为各种不同数据结构提供统一访问机制 作用 为各种不同数据结构提供统一访问机制 使数据结构成员能够按某种次序排列...操作都变成函数行为 静态方法 数值 二进制和八进制表示 二进制用前缀 0b 或 0B 表示 八进制用前缀 0o 或 0O 表示 数值分隔符 使用下划线 _ 作为分隔符,没有指定间隔位数 注意...不能放在数值最前面或最后面 不能同时两个或两个以上分隔符 小数点前后不能有分隔符 科学计数里面表示指数 e 或 E 前后不能使用 Number...安全整数 Number.MAX_SAFE_INTEGER 表示JavaScript 中最大安全整数2 53 次方 - 1 Number.MIN_SAFE_INTEGER 表示JavaScript

15720

高性能Javascript--高效数据访问

具体而言,访问数组项和对象成员代价要高一些,具体高多少,很大程度上取决于浏览器。一般建议是,如果关心运行速度,那么尽量使用直接量和局部变量,限制数组项和对象成员使用。...意味着现在函数所有局部变量都被推入到第二个作用域链对象中,所以局部变量访问代价变更高了。   正式因为这个原因,最好不要使用with表达式。这样会得不偿失。...toString()函数就是一个book继承自原型对象原型成员。下图表示了它们关系: ?   处理对象成员过程与处理变量十分相似。...如果这些属性不是对象实例成员,那么成员解析还要在每个上搜索原型链,这将需要更多时间。   Summary 总结 在Javascript中,数据存储位置可以对代码整体性能产生重要影响。...有四种数据访问类型:直接量,变量,数组项,对象成员。对它们我们有不同性能考虑。 直接量和局部变量访问速度非常快,数组项和对象成员需要更长时间。

79920

JS进阶 你真的掌握变量和类型了吗

发生小数计算错误具体原因是什么? Symbol特点,以及实际应用场景是什么? [] == ![]、[undefined] == false为什么等于true?代码中何时会发生隐式类型转换?...undefined转为数值时为NaN(非数字值特殊值) JavaScript是一门动态类型语言,成员除了表示存在空值外,还有可能根本就不存在(因为存不存在只在运行期才知道),这就是undefined...计算出 0.1二进制 是这么多位不是更多位???...5.4 IEEE 754 IEEE754标准包含一组实数二进制表示。它有三部分组成: 符号位 指数位 尾数位 三种精度浮点数各个部分位数如下: ?...,1表示负,0表示正; 指数位存储科学计数指数; 尾数位存储科学计数有效数字; 所以我们通常看到二进制,其实是计算机实际存储尾数位。

2.6K30
领券