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

如何在不使用if then或case swtich的情况下访问对象[javascript]

在不使用if then或case switch的情况下访问对象,可以使用以下方法:

  1. 使用对象的属性作为函数名:可以将对象的属性设置为函数,然后通过调用属性名来访问对象。例如:
代码语言:txt
复制
const obj = {
  method1() {
    console.log("Method 1");
  },
  method2() {
    console.log("Method 2");
  }
};

const methodName = "method1";
obj[methodName](); // 输出 "Method 1"
  1. 使用对象的属性作为索引:可以将对象的属性设置为索引,然后通过索引来访问对象。例如:
代码语言:txt
复制
const obj = {
  prop1: "Property 1",
  prop2: "Property 2"
};

const propName = "prop1";
console.log(obj[propName]); // 输出 "Property 1"
  1. 使用函数映射表:可以使用一个函数映射表,将对象的属性映射到对应的函数。例如:
代码语言:txt
复制
const obj = {
  method1() {
    console.log("Method 1");
  },
  method2() {
    console.log("Method 2");
  }
};

const methodMap = {
  method1: obj.method1,
  method2: obj.method2
};

const methodName = "method1";
methodMap[methodName](); // 输出 "Method 1"

这些方法可以在不使用if then或case switch的情况下访问对象,并且可以根据具体的需求选择适合的方法。

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

相关·内容

14万字 | 400多道JavaScript 面试题及详细答案(建议收藏)

222 使用 swtich case 需要遵循什么约定? 223 什么是原始数据类型? 224 访问对象属性不同方式有哪些? 225 什么是函数参数规则? 226 什么是错误对象?...271 常用缩小工具有哪些? 272 你如何使用 javascript 执行表单验证? 273 如何在没有 javascript 情况下执行表单验证?...421 如何在没有任何额外括号情况下调用 IIFE? 422 可以在 switch case使用表达式吗? 423 忽略承诺错误最简单方法是什么?...JavaScript switch case 语句用于决策目的。在某些情况下使用 switch case 语句会比 if-else 语句更方便。...返回顶部 回到第100题 回到第200题 ---- 222.使用 swtich case 需要遵循什么规定? 以下是应注意规定列表, 1.表达式可以是数字字符串类型。

12.7K20

Java面试葵花宝典打印版【4】

因此传递给 switch 和 case 语句参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。...由于Java不支持多继承,而有可能某个类对象使用分别在几个类对象里面的方法属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高灵活性,因为接口中没有任何实现代码。...由于有个垃圾回收机制,Java中对象不再有“作用域”概念,只有对象引用才有“作用域”。垃圾回收可以有效防止内存泄露,有效使用可以使用内存。...垃圾回收器通常是作为一个单独低级别的线程运行,不可预知情况下对内存堆中已经死亡或者长时间没有使用对象进行清楚和回收,程序员不能实时调用垃圾回收器对某个对象所有对象进行垃圾回收。...浏览器响应方法(cookies,头信息等) out对象是javax.jsp.JspWriter一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。

22030

经典笔试题-Java基础篇

3)封装:封装是把过程和数据包围起来,对数据访问只能通过已定义界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装对象,这些对象通过一个受保护接口访问其他对象。...因此传递给switch 和case语句参数应该是int、short、char 或者byte。long,string 都不能作用于swtich。...垃圾回收器通常是作为一个单独低级别的线程运行,不可预知情况下对内存堆中已经死亡或者长时间没有使用对象进行清楚和回收,程序员不能实时调用垃圾回收器对某个对象所有对象进行垃圾回收。...【基础】 答:由于Java 不支持多继承,而有可能某个类对象使用分别在几个类对象里面的方法属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高灵活性,因为接口中没有任何实现代码。...【基础】 答:可以继承其他类实现其他接口,在swing 编程中常用此方式。 45、内部类可以引用他包含类成员吗?有没有什么限制?【基础】 答:一个内部类对象可以访问创建它外部类对象内容。

73120

Web前端面试敲重点知识,14个TypeScript核心基础面试题和答案

string:表示文本值,例如“javascript”、“typescript”等 number:表示数值, 1、2、25、36 等 boolean:表示一个变量,它可以具有“真”“假”值 image.png...void 表示变量没有类型,它充当与任何相反类型,它在返回值函数中特别有用 如果变量是 void 类型,则只能将 null undefined 值分配给该变量。...函数是执行特定代码代码块 函数可以有选择地接受一个多个参数,处理它们,并有选择地返回一个值。 image.png 8、如何在 TypeScript 中创建对象 ?...TypeScript 提供了三个关键字来控制类成员可见性 public:您可以在 class 外任何地方访问公共成员。默认情况下,所有类成员都是公共。...protected:受保护成员仅对包含该成员子类可见。扩展容器类外部代码无法访问受保护成员。 private:私有成员仅在类内部可见,没有外部代码可以访问私有成员。

11.4K10

42个实用JavaScript优化技巧

result = data["abc"] === undefined 直接访问元素(对象样式) let result = array.abc === undefined; 9、如何在JavaScript...有很多需求,我们需要根据条件更改某些颜色CSS。 如何在JavaScript中完成?...在较早JavaScript版本中,这是通过使用apply方法完成。 该apply()方法调用具有给定this值函数,并arguments以数组(类似数组对象形式提供。...if(data.prop === undefined) { alert("it is: `undefined`"); } 要检查对象是否实际上没有这样属性,并尝试访问它时,默认情况下将返回undefined...在大多数情况下,我们确实检查数组长度,但是,如果要检查对象长度怎么办?以下两种方法是获取对象长度最佳方法。

11.7K20

300 秒快速了解 Java 9 - 16 新特性

导致我们现在完全跟不上 Java 发布节奏,我司目前还停留在 Java 8,甚至部分老系统还在使用 Java 7,根本不能轻易升级。..., Java 10"; 不过这个只是语法糖,编译后变量还是有类型使用时还是考虑下可维护性问题,不然写多了可就成 JavaScript 风格了 Java 11(2018年9月) Lambda 中自动类型推断...语法,但并不能在 -> 之后写复杂逻辑,JAVA 12 带来了 swtich更完美的体验,就像 lambda 一样,可以写逻辑,然后再返回: typeOfDay = switch (dayOfWeek...里最常见一个异常了,但这玩意提示实在不友好,遇到一些长一点链式表达式时,没办法分辨到底是哪个对象为空。...现在直接增加了一套安全堆外内存访问接口,可以轻松访问堆外内存,再也不用搞 Unsafe 骚操作了。

43020

第十四届蓝桥杯集训——JavaC组第十一篇——switch

基础示例: String类型switch示例 switch枚举判断 巧用break 石头剪刀布 测试代码: ---- swtich概述 Switch在一些计算机语言中是保留字,其作用大多情况下是进行判断选择...以C语言来说,switch(开关语句)常和case break default一起使用。...代码中虽然没有限制if else能够处理分支数量 ,但当分支过多时,用 if else处理会不太方便 ,所以对于这种情况,实际开发中一般使用switch语句代替 。...这是一个很标准switch用法,有break,还有default,在什么情况下跳出,在什么情况下结束运行,都很清楚说明了,但是朋友们在写这个代码时候,有可能会忘记加入break 或者忘记加入default...flag = true; // 立个flag备用 int rnd = (int) (1 + Math.random() * 3); System.out.print("请输入【剪刀】、【石头】

35440

ES6之块级作用域

let 差不多,但是 const 一定要初始化, 初始化是会报错。..., bar: 3} 暂时性死区 使用 let const 声明变量,在声明没有到达之前,访问该变量都会导致报错,就连一直以为安全 typeof 也不再安全。...任何在暂时性死区内访问变量企图都会导致“运行时”错误(runtime error)。只有执行到变量声明语句时,该变量才会从暂时性死区内被移除并可以安全使用。...,被广泛认可变量声明方式是:默认情况下应当使用 let 而不是 var 。...在默认情况下使用 const ,而只在你知道变量值需要被更改情况下使用 let 。这在代码中能确保基本层次不可变性,有助于防止某些类型错误。 思考题 两个思考题,我会把答案放在评论中。

58540

类加载机制

加载最终产品是位于堆区中 Class 对象,Class 对象封装了类在方法区内数据结构,并且向 Java 程序员提供了访问方法区内数据结构接口。...类加载器并不需要等到某个类被“首次主动使用”时再加载它,JVM 规范允许类加载器在预料某个类将要被使用时就预先加载它,如果在预先加载过程中遇到了 .class 文件缺失存在错误,类加载器必须在程序首次主动使用该类时才报告错误...,开发者可以直接使用该类加载器,如果应用程序中没有自定义过自己类加载器,一般情况下这个就是程序中默认类加载器。...结合日志,在 transform 40 行才报错, 这一行刚好是 swtich 代码块开始地方, 经过查证,发现 JVM 会在 swtich enum 中 case 数量大于一定值时,将这个代码块编译出一个匿名类...URLClassLoader 在被 close 后无法被用于 加载新资源,但是已经被 load 类 和资源仍然可以访问

47910

一文熟悉 Go 分支结构(if - else-if - else、switch)

ifif 语句是 Go 中最常用、最简单分支控制结构,它分为单分支、双分支以及多分支三种用法。if 语句会根据布尔变量布尔表达式,在两个多个分支中选择一个执行。...由于是在 if 语句中声明变量,因此变量作用域也只在 if 语句中,外部无法访问这些变量。...switch 分支当 if 分支使用当 switch 分支后面不带常量、变量布尔表达式等时,其效果与 if 分支类似。...在 switch 语句中声明变量和 if 一样,我们也可以在 switch 语句中声明变量,变量作用域也只在 swtich 语句中,外部无法访问这些变量。...小结本文对两种分支结构(if、switch)进行了介绍,也举例说明了一些特殊用法。如果代码存在着复杂 if 多分支结构,不妨用 swtich 进行改造,也许代码可读性会更高。

16700

盘点一下 Python 和 JavaScript 主要区别(详细)

每当你看到网站Web应用程序或与之交互时,即在“幕后”使用JavaScript。...如何在Python中命名变量 在Python中,我们应该使用 snake_case 命名样式。 根据Python样式指南: 变量名与函数名遵循相同约定。...例如,在内容是一个对象情况下,这意味着对象内容(例如,它属性)可以被更改。...我们用花括号将循环主体括起来,然后缩进它。 ? 在JavaScript中,我们还有 for .. in 循环可循环访问对象属性。...你可以使用比函数定义中定义参数更少更多参数来调用函数。默认情况下,为缺少参数分配 undefined 值,并且可以使用 arguments 对象访问其他参数。

6.2K30

Beetl 基础知识

引用属性 属性引用是模板中重要一部分,beetl支持属性同javascript支持方式一样,如下: Beetl支持通过”.”号来访问对象属性,如果javascript一样。...如果User对象有个getName()方法,那么在模板中,可以通过${xxx.name}来访问 如果模板变量是数组或者List类,这可以通过[] 来访问${userList[0]} 如果模板变量是Map...类,这可以通过[]来访问${map[“name”]},如果key值是字符串类型,也可以使用${map.name}.但不建议这么使用,因为会让模板阅读者误以为是一个Pojo对象 Beetl也支持Generic...但建议这么做,因为容易让阅读模板的人误认为这是一个Map类型 Beetl 还可以定义额外对象属性,而无需更改java对象,这叫着虚拟属性,,对于所有集合,数组,都有共同虚拟属性size.虚拟属性是...”12.45”,trim(date,’yyyy’)返回”2017” trunc 截取数字,保留指定小数位,trunc(12.456,2) 输出是12.45.推荐使用,因为处理float有问题,兼容原因保留了

1.5K10

Beetl 基础知识

引用属性 属性引用是模板中重要一部分,beetl支持属性同javascript支持方式一样,如下: Beetl支持通过”.”号来访问对象属性,如果javascript一样。...如果User对象有个getName()方法,那么在模板中,可以通过${xxx.name}来访问 如果模板变量是数组或者List类,这可以通过[] 来访问${userList[0]} 如果模板变量是Map...类,这可以通过[]来访问${map[“name”]},如果key值是字符串类型,也可以使用${map.name}.但不建议这么使用,因为会让模板阅读者误以为是一个Pojo对象 Beetl也支持Generic...但建议这么做,因为容易让阅读模板的人误认为这是一个Map类型 Beetl 还可以定义额外对象属性,而无需更改java对象,这叫着虚拟属性,,对于所有集合,数组,都有共同虚拟属性size.虚拟属性是...”12.45”,trim(date,’yyyy’)返回”2017” trunc 截取数字,保留指定小数位,trunc(12.456,2) 输出是12.45.推荐使用,因为处理float有问题,兼容原因保留了

1.2K10

100个最常问JavaScript面试问答-第4部分(共10部分)

100个最常问JavaScript面试问答-第4部分 问题31.参数对象可用于ES6 arrow functions吗? 问题32.如何在没有原型情况下创建对象? 问题33....如果您环境支持其余语法,我们可以解决此问题。 const four = (...args) => args; 这会将所有参数值自动放入数组中。 问题32.如何在没有原型情况下创建对象?...答:我们可以使用来创建没有原型对象Object.create method。...JavaScript中this作用域是什么? JavaScript这个关键字引用了它所属对象。 根据使用位置不同,它具有不同意义。 在方法中,这是指所有者对象 在函数中,这是指全局对象。...如果比较中任何一个值都可以是这些特定值(0, “”, [] – 空数组),请不要用==,而使用===。 在其他所有情况下,您都可以放心使用==。

97641

3. 流程控制语句

直到遇到break关键字执行完所有的case及default执行语句,跳出当前switch-case结构 使用注意点: switch(表达式)中表达式值必须是这几种类型 : byte , short...子句中敞亮值互不相同 break语句用来执行完一个case分支后使程序跳出swtich语句块 , 如果没有break , 程序会顺序执行到switch结尾 default子句是可选 , 同时 , 位置也是灵活...循环语句 理解:循环语句具有在某些条件​满足情况下,反复执行​特定代码功能。...关键字break 和 continue使用 适用范围 在循环结构中使用作用 相同点 break switch-case 循环结构 一旦执行,就结束(跳出)当前循环结构...Scanner : 键盘输入功能实现 键盘输入代码四个步骤 导包 创建Scanner类型对象 调用Scanner类相关方法 释放资源 注意 : 需要根据相应方法 , 来输入指定类型值 , 入股输入数据类型与要求类型匹配时

11910

Javascript入门学习

第一课 1:javascript主要特点 解释型:不需要编译,浏览器直接解释执行 基于对象:我们可以直接使用JS已经创建对象 事件驱动:可以对以事件驱动方式相应客户端输入,无须经过服务器端程序...安全性:不允许访问本地硬盘,不能将数据写入到服务器上 跨平台:js依赖浏览器本身,与操作系统无关 第二课 如何在网页中写Javascript 1:在页面中直接嵌入Javascript     <script...var score=[45,56,45,78,78,65];     由于数组本质上为Array对象,则可用运算符new来创建新数组,     var score=new Array(45,65,78,8,45...);     访问数组中特定元素可通过该元素索引位置index来实现,如下面语句声明     变量返回数组score中第4个元素     var m=score[3]; 第五课 变量定义与使用 1:...只有当两个操作数值都为true时候,结果才会true     ||逻辑

2.1K70

卷不动了?300 秒快速了解 Java 9 - 16 新特性,助你脱离内卷

导致我们现在完全跟不上 JAVA 发布节奏,我司目前还停留在 JAVA 8,甚至部分老系统还在使用 JAVA 7,根本不能轻易升级。..., Java 10"; 不过这个只是语法糖,编译后变量还是有类型使用时还是考虑下可维护性问题,不然写多了可就成 JavaScript 风格了 JAVA 11(2018年9月) Lambda 中自动类型推断...,但这玩意提示实在不友好,遇到一些长一点链式表达式时,没办法分辨到底是哪个对象为空。...现在直接增加了一套安全堆外内存访问接口,可以轻松访问堆外内存,再也不用搞 Unsafe 骚操作了。...……多奇怪 memorySegment.close(); 不了解 Unsafe 操作堆外内存方式同学,可以参考我另一篇文章《JDK中为了性能大量使用Unsafe类,你会用吗?》

35820

面试必备【含答案】Java面试题系列(一)

点关注,迷路;持续更新Java架构相关技术及资讯热文!!! 1、面向对象特征有哪些?...封装:封装是把过程和数据包围起来,对数据访问只能通过已定义界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装对象,这些对象通过一个受保护接口访问其他对象。...因此传递给switch 和case语句参数应该是int、short、char 或者byte。long,string 都不能作用在swtich上。...例如HibernateSession(一级缓存)中对象属于持久态,垃圾回收器是不会回收这些对象,然而这些对象中可能存在无用垃圾对象,如果不及时关闭(close)清空(flush)一级缓存就可能导致内存泄露...答:静态变量也称为类变量,归全类共有,它不依赖于某个对象,可通过类名直接访问;而实例变量必须依存于某一实例,只能通过对象才能访问到它。

72400

asp.net面试题

internal: 在同一命名空间内可以访问。 2 .列举ASP.NET 页面之间传递值几种方式。 答. 1.使用QueryString, ….?id=1; response....35.能用foreach遍历访问对象需要实现 ________________接口声明 ________________方法类型。 答:IEnumerable 、 GetEnumerator。...因此传递给 switch 和 case 语句参数应该是 int、 short、 char 或者 byte。long,string 都不 能作用于swtich。...47.当一个线程进入一个对象一个synchronized方法后,其它线程是否可进入此 对象其它方法? 不能,一个对象一个synchronized方法只能由一个线程访问。...由于有抽象类,它允许使用接口名作为引用变量类型。通常动 态联编将生效。引用可以转换到接口类型从接口类型转换,instanceof 运算符 可以用来决定某对象类是否实现了接口。

1.1K10
领券