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

在javascript中如何将字符串转成变量或可执行的代码?

有这样一个需求:当前作用域内有未知的一些变量,其中一个函数中可以拿到某个变量名字符串,怎么能在函数内通过传进来的字符串取到作用域链中的变量值,示例小 demo 如下: const name = '周小黑...' const age = 18 /** * @param {String} e 变量名字符串 * @returns value 通过变量名字符串在作用域链中取到的变量值 */ function...主要有三种方式: eval() 函数 eval() 函数会将传入的字符串当做 JavaScript 代码进行执行,所以下面的字符串可以正确取到变量对应的值,eval 对比 new Function 和...setTimeout 定时器 setTimeout 的第一个参数我们平时都是传一个函数,它其实也是可以传字符串进去的,在浏览器中是可以正常执行的,在node环境中会报错。...实际上浏览器中也是不推荐这么用的,另外需要注意的是字符串中的变量只能访问全局作用域,不能访问局部作用域,如果全局作用域中没有,就是 undefined。

86630

好程序员分享javascript中数组化的一般见解

好程序员分享javascript中数组化的一般见解,数组化浏览器中存在许多类数组对象,往往对类数组操作比较麻烦,没有数组那些非常方便的方法,在这种情况下,就有了数组化方法。   ...数组化的一般方法   1.第一种也是我们最常见的的方法,[].slice.call方法   function toArray(obj){ 1.   ...//Array.prototype.slice.call(); 3.   }   Ps:这种方法,其实就是引用方法,注释的部分为完全写法,返回的就是一个数组对象。   ...2.第二种方法借鉴的是jq中的makeArray方法   function makeArray(obj){ 1.   var target = []; 2.   if(obj !...;   target[0] = obj; 1.   }else{//如果不是以上那些元素,通过循环把obj中每一个赋给target的每一个索引; 2.

17010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Node.js 全局对象(下)

    执行 main.js 文件,代码如下所示: $ node main.js 程序开始执行: 计数: 10 获取数据: 0ms 程序执行完毕 ---- process process 是一个全局变量,即 global...4 argvargv 属性返回一个数组,由命令行执行脚本时的各个参数组成。它的第一个成员总是node,第二个成员是脚本文件名,其余成员是脚本文件的参数。...7 env返回一个对象,成员为当前 shell 的环境变量 8 exitCode进程退出时的代码,如果进程优通过 process.exit() 退出,不需要指定退出码。...5 getgid()获取进程的群组标识(参见 getgid(2))。获取到得时群组的数字 id,而不是名字。注意:这个函数仅在 POSIX 平台上可用(例如,非Windows 和 Android)。...注意:这个函数仅在 POSIX 平台上可用(例如,非Windows 和 Android)。 9 getgroups()返回进程的群组 iD 数组。

    1.5K20

    【前端面试题】03—200+道常见JavaScript基础面试题上(附答案)

    它将参数成员添加到数组的顶部下面给出一段示例代。...call从第二个参数开始,每一个参数会依次传递给调用函数;apply的第二个参数是数组,数组的每一个成员会依次传递给调用函数。...42、在 JavaScript中什么是类(伪)数组?如何将类(伪)数组转化为标准数组?...var x=l, y=2, z= X+y; 59、什么是未声明和未定义的变量? 未声明的变量是程序中不存在且未声明的变量。如果程序尝试读取未声明变量的值,则会在运行时遇到错误。...未定义的变量是在程序中声明但尚未给出任何值的变量如果程序尝试读取未定义变量的值,则返回未定义的值60.:如何编写可动态添加新元素的代码? 下面给出一段示例代码 <!

    4.7K10

    React 中必会的 10 个概念

    但是还有另一种更加简洁的方法来创建 React 函数组件。 ? 「箭头函数」是您在 JavaScript 和 React 应用程序中最多见的函数。...有多种方式可用于编写箭头函数。我们将在这里介绍一些常见的内容,以帮助您入门。 ? 介绍了基本语法,让我们了解如何将箭头函数与 React 一起使用。...如 MDN 网站文档所述,类主要是语法糖,而不是 JavaScript 现有的基于原型的继承。有些属性值得一提,因为它们与使用常规函数编写的类不太相同。 ?...这是一个可以与对象以及数组一起使用的概念。分解是简化 JavaScript 代码的一种简便方法,因为它使我们可以在一行中将数据从对象或数组中拉出。...数组解构与对象解构相似,不同之处在于我们按照数据在数组中出现的顺序将数据一一拉出。 让我们直接来看看它在 React 应用程序中的用法。 ? 三元运算符 三元运算符用作 if 语句的简洁方式。

    6.6K30

    分享63个最常见的前端面试题及其答案

    Hoisting是 JavaScript 在编译阶段将变量和函数声明移动到各自作用域顶部的过程。这允许在代码中声明变量和函数之前使用它们。...16、解释let、var和const之间的区别 let 和 const 是在 ES6 中引入的,而 var 从 JavaScript 的早期版本开始就可用了。...ES6 集合提供了自动重复消除、高效的成员资格测试、顺序独立性和方便的集合操作等优点。 30、集合与数组有什么区别? 集合不能包含重复值,而数组可以。当唯一性很重要时,集合很有用。...31、你能举一个解构对象或数组的例子吗? 解构允许您将对象或数组中的值提取到不同的变量中。例如:解构允许您将对象或数组中的值提取到不同的变量中。...37、您能说出对于 JavaScript 应用程序来说很重要的两种编程范例吗 原型继承和函数式编程是 JavaScript 中两个重要的编程范式。 38、什么是函数式编程?

    8.6K21

    分享 63 道最常见的前端面试及其答案

    Hoisting是 JavaScript 在编译阶段将变量和函数声明移动到各自作用域顶部的过程。这允许在代码中声明变量和函数之前使用它们。...16、解释let、var和const之间的区别 let 和 const 是在 ES6 中引入的,而 var 从 JavaScript 的早期版本开始就可用了。...ES6 集合提供了自动重复消除、高效的成员资格测试、顺序独立性和方便的集合操作等优点。 30、集合与数组有什么区别? 集合不能包含重复值,而数组可以。当唯一性很重要时,集合很有用。...31、你能举一个解构对象或数组的例子吗? 解构允许您将对象或数组中的值提取到不同的变量中。例如:解构允许您将对象或数组中的值提取到不同的变量中。...37、您能说出对于 JavaScript 应用程序来说很重要的两种编程范例吗 原型继承和函数式编程是 JavaScript 中两个重要的编程范式。 38、什么是函数式编程?

    34930

    使用MSHTML解析HTML页面

    在GUI程序中很容易就获取这个接口,获取它的方法很容易就可以在网上找到,在这主要说一下如何通过一段HTML字符串来生成对应的IHTMLDocument2接口。...这个数组主要用来进行VC与VB的交互,以便VB程序能够很方便的使用COM接口。...在使用这个数组时不需要关注它的具体成员,VC提供了具体的接口来使用它,在初始化它的时候只需要调用下面几个: a)SafeArrayCreateVector:这个函数用来创建一个对应的数组结构。...调用CComDispatchDriver接口的GetIDOfName,传入JavaScript函数名称,获取JS函数对应的元素接口,这个函数会通过一个输出参数输出一个DISPID类型的变量。...对象中可以有不同的属性,不同的属性对应不同的值,类似于一个字典结构,当返回这个类型,并且我们知道这个对象中的相关属性名称的时候可以通过下面的方法来获取各个属性中的值: 1.

    3.6K30

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

    所以,函数中局部变量的访问速度总是最快的,而全局变量通常是最慢的(优化Javascript引擎,如Safari在某些情况下可用改变这种情况)。   ...当try块发生错误的时,程序自动转入catch块,并将所有局部变量推入第二个作用域链对象中,只要catch之块执行完毕,作用域链就会返回到原来的状态。...如前所言,对象成员的访问比直接量和局部变量访问速度慢,在某些浏览器上比访问数组还慢,这与Javascript中对象的性质有关。   ...有四种数据访问类型:直接量,变量,数组项,对象成员。对它们我们有不同的性能考虑。 直接量和局部变量的访问速度非常快,而数组项和对象成员需要更长时间。...一般而言,我们通过将经常使用的对象成员,数组项,和域外变量存入局部变量中。然后,访问局部变量的速度会快于那些原始变量。

    82220

    吊打面试官系列:说说反射的用途及实现?

    这两者,都可用来对类进行加载。差别在于: Class#forName(…) 方法,除了将类的 .class 文件加载到JVM 中之外,还会对类进行解释,执行类中的 static 块。...java.lang.reflect.Array 提供了动态创解决数组和访问数组的静态方法,该类中的所有方法都是静态方法。 反射的优缺点 ? 优点 可以在程序运行的过程中,操作这些对象。...访问成员变量的值 使用反射可以获取类的成员变量的对象代表,成员变量的对象代表是 java.lang.reflect.Field类的实例,可以使用他的getXyy()方法来获取指定对象上的值,也可以使用setXyy...()方法来动态修改指定对象上的值,其中xyy是成员变量。...操作数组 数组也是一个度一项,可以通过反射来查看数组的各个属性的信息,比如 ingt [] intArr=new Int[10]; Sysytem.out.prinlt("数组类型:"+intArr.getClass.getComponentType

    60220

    利用 vscode snippets 和项目成员一起提高开发效率

    ,可以通过数组指定多个 body 是填入到编辑器的内容 description 是 snippets 的描述 其中 body 部分可以通过 ${} 的方式指定光标位置、顺序、占位字符串、可用的值等,有...比如 abc-123.js 的文件, 我们通过 $TM_FILENAME 取到文件名,然后把后缀去掉转成大写填入 ${TM_FILENAME/(.*)\\....在插件的 package.json 中配置下即可: { "contributes": { "snippets": [ { "language": "javascript...当有一些项目级别的代码片段可以共享的时候,完全把这个文件提交到远程 git 仓库,然后项目成员都可以共享这些 snippets 设置。对于一些模版代码比较多的项目,还是比较有意义的。...,在 .vscode 下的 xx.code-snippets 中,完全可以提交到 git 仓库,和其他成员共享。

    2.2K20

    JavaScript 混淆与逆向必读之 AST 节点类型名词基础

    代码混淆有几个优点: •操作门槛低,有现成可用且免费的混淆产品;•混淆效果好,混淆后真的是连亲妈都不认识;•浏览器能够正常解析混淆后的代码,一万行以内的小规模混淆对性能影响不大;•混淆带来的性能影响可以通过其他优化降低...上图的语法树中表明了程序主体、声明类型、标识符、字面量等信息,由此我们可以得出: •var - VariableDeclarator 变量声明;•nick - Identifier 标识符;•vansenb...类型 上面列举了常用的几个 AST 解析库,虽然各个库解析同一份代码得到的结构不完全一致,但用于表示节点类型的名词几乎都是一致的,例如 VariableDeclaration 代表这是变量声明语句、CallExpression...上图代码包含了 JavaScript 语法中常用的语句,例如变量声明、函数声明、三元表达式、if 控制流语句、switch 控制流、函数调用、赋值语句、数组声明、for 循环等。...1+2 14 MemberExpression 成员表达式 通常指调用对象的成员,例如 console 对象的 log 成员 15 ArrayExpression 数组表达式 通常指一个数组,例如 [

    1.8K20

    前端之JavaScript

    方法来获取页面上设置了id属性的元素,获取到的是一个html对象,然后将它赋值给一个变量,比如: javascript"> var oDiv = document.getElementById...; } } 数组及操作方法   数组就是一组数据的集合,javascript中,数组里面的数据可以是不同类型的。...'7,8,9'三个元素 alert(aList); //弹出 1,2,7,8,9,4 多维数组 多维数组指的是数组的成员也是数组的数组。...var aList = [[1,2,3],['a','b','c']]; alert(aList[0][1]); //弹出2; 批量操作数组中的数据,需要用到循环语句 循环语句 程序中进行有规律的重复性操作...; } 变量作用域 变量作用域指的是变量的作用范围,javascript中的变量分为全局变量和局部变量。 1、全局变量:在函数之外定义的变量,为整个页面公用,函数内部外部都可以访问。

    1.9K40

    前端面试02-JavaScript

    javascript权威指南:null 和 undefined 都表示 “值的空缺”,你可以认为 undefined 是表示系统级的、出乎意料的或类似错误的值的空缺,而null是表示程序级的、正常的或在意料之中的值的空缺...javascript高级程序设计:在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。null值则是表示空对象指针。...在Javscript中,解析器在向执行环境中加载数据时,对函数声明和函数表达式并非是一视同仁的,解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问),至于函数表达式,则必须等到解析器执行到它所在的代码行...作用域(scope) 作用域是指程序源代码中定义变量的区域,简单来说,一段程序代码中所用到的变量并不总是有效的,而限定这个变量的可用性的代码范围就是这个变量的作用域。...arr.slice(); //方法可从已有的数组中返回选定的元素。 arr.join(); //方法用于把数组中的所有元素放入一个字符串。

    1.1K10

    Web前端开发高级前端技术(高级开发程序篇)

    优化前端效果,可以删除多余容器元素,让代码层次少,避免使用table进行页面的布局,换成用div+css的样式布局。 css代码优化,在各个浏览器中,相同元素解析的结果不同,就需要手动重置一些样式。...console.log,即通过在JavaScript中添加console.log(msg) msg为需要打印的信息,可以是变量,字符串,变量类型可以是数组,对象,数字等等。...alert和console.log一样,alert通过在JavaScript中添加alert(msg),Msg为需要弹窗的信息,值得一提的是这个弹框是强制阻塞的,只要关闭该弹窗才能解除阻塞,所以要谨慎使用...()返回一个数组,包括对象自身的所有的可枚举属性 数组的扩展 方法方法描述 copyWithin(target,start,end)在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组...它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。

    2.3K10

    Java 反射机制详解

    反射概述 什么是反射 将类的各个组成部分封装为其他对象的过程就叫做 反射,其中 组成部分 指的是我们类的 成员变量(Field)、构造方法(Constructor)、成员方法(Method)。...安全问题:使用反射时要求程序必须在一个没有安全限制的环境中运行,如果程序有安全限制,就不能使用反射。...Class 对象的使用 获取成员变量 方法 说明 Field[] getFields() 返回包含一个数组 Field对象反射由此表示的类或接口的所有可访问的公共字段类对象 Field getField...而获取或设置成员变量值时,可以通过 get/set 方法来操作,具体操作方法如下。 // 假设我们获取到的 Field 为上面的 id,获取和设置 id 的值就可以通过如下操作来进行 // 1....field2 = class1.getDeclaredField("age"); System.out.println(field2); } } 观察上面的结果可知,该方法可用于获取指定的成员变量

    19820

    JavaScript实用手册

    程序接受并处理用户输入的数据 ③. 程序返回处理结果 (2). JavaScript 典型用途3 个 ①. 客户端表单验证 ②. 数据计算 ③. 动画效果 2....运算符和表达式 程序: 人的想法在计算机中的执行 运算符: 程序中模拟人的想法的特殊符号 表达式: 变量和运算符组成的一条程序语句 15....数组是在内存中连续存储多个数据的存储空间,只要存储多个相关的数据,都要放在数组中,数组便于批量管理和操作多个相关的数据 程序=数据结构+算法,因此好的数据结构可极大提高程序的执行效率 创建数组的三种方法...作用域(scope): 变量的可用范围 ①. 全局作用域对象 window,全局变量的优点是可重复使用,随处可用,缺点是极 易造成全局污染,程序中尽量避免使用全局变量 ②.......this.属性名... } JS 中的对象可在任何时候添加新属性和方法,如果要赋值的属性不存在,不会报错, 而是在对象中动态添加该属性,JS 中对象的本质,就是关联数组,其实访问成员可用这 种形式

    3.4K10
    领券