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

javascript如何字符串转成变量或可执行代码

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

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

【说站】JavaScript定义函数两种方法

/javascript"> /*I总结: 1.函数名可以做变量使用,可以赋值,可以值 2.函数名当参数,传递给另一个函数  */ //==================js函数两种定义方式和函数变量赋值...================ //在javascript定义一个函数就可以理解成定义了一个变量 //js变量时弱类型哦。...//----------1 //function add1(){ //alert("add1"); //} //那么函数作为一个变量,就可以作为参数,是add1指向了这个代码块在内存存储首地址  var...var addtt=add1;//函数名当变量使用,可以赋值,也可以值 //addtt 指向了函数体 addtt(); //==================js函数两种定义方式和函数变量赋值=... 以上就是JavaScript定义函数两种方法,希望对大家有所帮助。

85620

java参数传递-值传递、引用传递

参数可以是对象引用,而 Java 应用程序是按值传递对象引用。 Java 应用程序变量可以为以下两种类型之一:引用类型或基本类型。当作为参数传递给一个方法时,处理这两种类型方式是相同。...两种类型都是按值传递;没有一种按引用传递。 按值传递和按引用传递。按值传递意味着当一个参数传递给一个函数时,函数接收是原始值一个副本。因此,如果函数修改了该参数,仅改变副本,而原始值保持不变。...按引用传递意味着当一个参数传递给一个函数时,函数接收是原始值内存地址,而不是值副本。因此,如果函数修改了该参数,调用代码原始值也随之改变。...1、对象是按引用传递 2、Java 应用程序有且仅有的一种参数传递机制,即按值传递 3、按值传递意味着当一个参数传递给一个函数时,函数接收是原始值一个副本 4、按引用传递意味着当一个参数传递给一个函数时...这里有一点要澄清是,这里传对象其实也是值,因为对象就是一个指针,这个赋值是指针之间赋值,因此在java中就将它说成了引用。(引用是什么?不就是地址吗?

4.6K20

Python学习笔记之函数参数传递 值还是引用

在学完Python函数那一章节时,很自然就会想到Python函数参时值呢?还是引用?或者都不是? ...a作为参数传递给函数,这时a和var都指向内存中值为1对象。...代码2; def Bar(var): var.append(1) b = [] print(b) Bar(b) print(b) 这段代码把b传递给函数Bar,那么b...那么Python参数传递是值,还是引用呢?准确回答:都不是。之所以不是值,因为没有产生复制,而且函数拥有与调用者同样对象。而似乎更像是C++引用,但是有时却不能改变实参值。...所以只能这样说:对于不可变对象,它看起来像C++值方式;对于可变对象,它看起来像C++按引用传递。 参考

1.9K30

Java值调用

int变量num传递给change()方法,change()方法接收到后值改变为20。...值传递:基本类型变量在被传递给方法时,传递是该变量值(即复制自己值传递给方法)。 引用传递:引用类型变量在被传递给方法时, 传递是该变量引用(即自己所指向内存地址)。...在值调用实际参数被求值,其值被绑定到函数对应变量上(通常是把值复制到新内存区域)。...值调用:在值调用,实际参数被求值后传递给被调函数。也就是说值调用是实参在被传给函数之前就被求值一种求值策略。 在Java体现 那什么叫实参在被传给函数之前就被求值呢?求是谁值呢?...因为列表是可变append方法改变了m。而赋值局部变量l行为对外面作用域没有影响(在这类语言中赋值是给变量绑定一个新对象,而不是改变对象)。

3.5K20

【说站】javascript复杂类型如何

javascript复杂类型如何参 说明 1、在实参传递给形参过程,复杂数据类型传递给形参是实参地址,而非对象实例。 2、函数形参也可以看作是一个变量。...当我们引用类型变量递给形参时,我们实际上将变量保存在栈空间中堆地址复制给形参。形参和实参实际上保存在同一个堆地址,所以操作是同一个对象。... p 在栈存储 地址p,变量 p 指向 地址p         // 3.而真正对象实例{new Person('刘德华'); name = '刘德华'}存放在堆         // 4.变量 ...// 5.第一个输出:刘德华         console.log(p.name);         // 6.变量 p 传递给形参 x,即将 地址p 传递给形参 x         // 7.然后变量...'}         // 13.第四个输出:'张学友'         console.log(p.name);      以上就是javascript复杂类型参方法,希望对大家有所帮助

85940

vuejs组件以及父子组件间通信

,数据渲染到页面中去 首先要理解父组件和子组件,他们是一个相对概念 在上述示例代码,根组件(app)模板内代码都属于父组件,而通过Vue.compont()或者局部注册组件都是子组件 所谓父组件向子组件值...,这个值传递其实就是数据,特定是实参数 在上述代码,input框被包裹在父组件,input框输入值是数据,通过v-model进行双向数据绑定,通过inputVal这个变量保存,经过按钮点击操作后...指令绑定自定义属性值方式,父组件数据,可以通过v-for循环列表拿到数据 在上面的时例代码,通过自定义一个content变量属性用来接收父组件数据,v-bind:content="item"...,这个item是父组件list数组列表项,它是把list每一项值赋值给item,然后通过这个item,通过v-bind方式传给这个todo-list组件,通过content这个变量....deleteitem 注意:如果你直接this.list = []的话,那么点击一项时,整个都会删除,明显不符合需求,所以同样需要有个索引值,那么同样,父组件传递给子组件一个索引值就可以了,通过props

20.4K10

从零开始学 Web 之 Vue.js(六)Vue组件

: 模块化: 是从代码逻辑角度进行划分;方便代码分层开发,保证每个功能模块职能单一; 组件化: 是从UI界面的角度进行划分;前端组件化,方便UI组件重用; 二、定义组件 1、定义全局组件 定义全局组件有三种方式...3、模板字符串,定义到 template 标签: <!...componentId:为需要显示组件名称,为一个字符串,可以使用变量指定。 componentId: 'login' // 默认显示登录组件。 <!...这里还通过子组件方法参数来保存父组件数据到子组件数据。 2、父组件向子组件方法 既然父组件可以向子组件传递数据,那么也可以向子组件传递方法。...$emit 第二个参数是子组件data数据,那么父组件方法就可以获得子组件数据,这也是把子组件数据传递给父组件方式。

2.2K40

看Zepto如何实现增删改查DOM

content可以是append描述所有类型 zeptojs_api 例子 1. html() ⇒ string 2. html(content) ⇒ self 3. html(function...this[0] : null) 当html参数时候。...对当前选中元素集合进行遍历设置,先保存当前元素到originHtml变量,再将当前元素置空,并将funcArg函数执行之后返回html插入到当前元素。...this.pluck('textContent').join("") : null) } text实现方法与html比较类似有些不同是没有参数时候,html是获取第一个元素text则是当前所有元素...contents.wrapAll(dom) : self.append(dom) }) } 需要注意是这个函数和前面的wrapAll和wrap有点不一样,这里强调当前元素内容(包括元素节点和文本节点

1.5K10

Asp.net利用JQuery弹出层加载数据

点击一个链接就弹出一个层,然后再加载一些投票信息,旁边区域变成灰色不可用状态。其实这不算什么高深技术,只要在ASP.NET利用JQuery结合一般处理程序ASHX即可搞定了。...context.Response.ContentType = "text/plain";             //context.Response.Write("Hello World");             //获取外部进来变量值...输入如下代码: /*当DOM加载完毕之后就自动为两个链接添加Click事件*/ $("document").ready(function() {     $("a[href=javascript]")... margin:0 auto;  margin-top:100px;  width:200px;  height:150px;   z-index:99;  display:none; } 我们在网站首页里面源码输入如下代码...点击中间弹出层链接可以回到最初状态。整个过程页面都没有刷新!

2.8K20

JavaScriptapply、call、bind区别与用法

apply()、call()和bind()方法都是Function.prototype对象方法,而所有的函数都是Function实例。三者都可以改变this指向,函数绑定到上下文中。 1....用法 这三个方法用法非常相似,函数绑定到上下文中,即用来改变函数this指向。 2.1 普通写法 ? 2.2 call 与apply方法用法 ?...不同之处在于,在给调用函数传递参数时,apply()是数组,call()参数是逐个列出。 2.3 bind()用法 ? bind方法传递给调用函数参数可以逐个列出,也可以写在数组。...bind方法与call、apply最大不同就是前者返回一个绑定上下文函数,而后两者是直接执行了函数。因此,以上代码也可以这样写: ?...应用场景 3.1 求数组最大和最小值 ? 3.2类数组转化为数组 ? 3.3 数组追加 ? 3.4 判断变量类型 ? 3.5 利用call和apply做继承 ?

1.1K20

Vue 相关学习笔记(二)

一定要在实例上注册了才能在html文件中使用 'my-component': Child } }) Vue 调试工具 Vue组件之间值 父组件向子组件值...-- 这里所有组件标签嵌套内容会替换掉slot 如果不值 则使用 slot 默认值 --> 有bug发生 <alert-box...实现组件更新数据功能 上 输入框默认数据动态渲染出来 输入框失去焦点时候 更改商品数量 子组件不推荐操作数据 把这些数据传递给父组件 让父组件处理这些数据 父组件接收子组件传递过来数据并处理...输入框默认数据动态渲染出来 # 2....> 接口调用方式 原生ajax 基于jQueryajax fetch axios 异步 JavaScript执行环境是「单线程」 所谓单线程,是指JS引擎负责解释和执行JavaScript代码线程只有一个

5.5K20

django 模板语言

', locals()) 模板 模板渲染数据 {{ k1 }} {{ k2.0 }} # 取列表第一个值,通过.获取 {{ k3.name }} # 取字典对应key值 # for循环...{{ k1|first|upper }} # 首字母变为大写 {{ k1|truncatewords:"30" }} # 取变量k1前30个字符 {{ item.createTime|date...自定义方法 在内置方法满足不了我们需求时候,就需要自己定义属于自己方法了,自定义方法分别分为filter和simple_tag ① 参: filter默认最多只支持2个参数:可以用{...-- k1当做参数传递给f1函数进行处理 处理方式 f1(k1) --> {{ k1|f1 }} 母版 在一个网站,一些页面顶部,左侧,底部都是一样,这个时候就出现了代码冗余,这个时候就可以这些重复使用代码做成母版,方便在子页面中进行调用

1.2K10

ES6学习之函数

Arguments扩展运算符 在ECMAScript 5我们经常需要使用apply()这类转换工具数组传递给函数,比如采用Math.max()求数组中最大元素,由于该方法不支持数组作为参数,而apply...解构是ES6一个新特性,它允许我们一个对象或数组直接映射到一堆变量上,由于语法和对象或数组十分相近,所以可读性很强,使用起来十分简洁高效。...如果是值,函数内部对于参数改变不会影响到外部变量或对象;如果是引用(指针),在函数内部做修改则会对外部变量和对象造成影响。...从技术层面来讲,javascript参数传递方式全部都是值类型,当我们一个值传递到函数内部时,一个临时局部变量会被创建,形成对这个参数一个拷贝,任何对该值改变都不会影响原有的外部变量。...例如,在下面代码片段,函数调用前后a值都为5。

1.9K20
领券