zoukankan      html  css  js  c++  java
  • JS中的eval函数

    1.eval() 函数作用:可以接受一个字符串str作为参数,并把这个参数作为脚本代码来执行。

    2.参数情况:
    (1)如果参数是一个表达式,eval() 函数将执行表达式;
    (2) 如果参数是Javascript语句,eval()将执行 Javascript 语句

    3.注意:
    (如果执行结果是一个值就返回,不是就返回undefined,如果参数不是一个字符串,则直接返回该参数)

    4.语法:eval(string),

    5.案例:

    eval(“var a=1”);//声明一个变量a并赋值1。

    eval(“2+3”);//执行加运算,并返回运算值。

    eval(“mytest()”);//执行mytest()函数。

    eval("{b:2}");//声明一个对象。如果想返回此对象,则需要在对象外面再嵌套一层小括如下:eval("({b:2})");

    注意:使用eval来解析JSON格式字符串的时候,会将{}解析为代码块,而不是对象的字面量
    //1.在JSON格式的字符串前面拼接上 “var o =”
    //2.把JSON格式的字符串使用()括起来,就不会将{}解析为代码块,而是表达式

    6.函数作用域:eval()函数并不会创建一个新的作用域,并且它的作用域就是它所在的作用域,有时候需要将eval()函数的作用域设置为全局,当然可以将eval()在全局作用域中使用,这个时候可以用window.eval()的方式实现。

    7.Function和eval有什么区别?

    共同点:都可以讲字符串转化为js代码

    不同点:Function创建出来的函数,并不会直接调用,只有当手动去调用创建出来的函数的时候才,eval把字符串转化为代码后,直接就执行了。

  • 相关阅读:
    快速幂模板
    部分有关素数的题
    POJ 3624 Charm Bracelet (01背包)
    51Nod 1085 背包问题 (01背包)
    POJ 1789 Truck History (Kruskal 最小生成树)
    HDU 1996 汉诺塔VI
    HDU 2511 汉诺塔X
    HDU 2175 汉诺塔IX (递推)
    HDU 2077 汉诺塔IV (递推)
    HDU 2064 汉诺塔III (递推)
  • 原文地址:https://www.cnblogs.com/huhewei/p/12466967.html
Copyright © 2011-2022 走看看