• JavaScript的Eval与JSON.parse的区别


    JavaScript的Eval与JSON.parse的区别

    json的定义以及用法:

      JSON(JavaScript Object Notation)是一种轻量级的数据格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是Javascript原生格式,这意味着在javascript中处理JSON数据不需要任何特殊的API或工具包,而且效率非常高。

    基本式:varjsonData='{"data1":"Hello,","data2":"world!"}'

    很多json数据存入数组

    {"name":"LiLei","age":19,"sex":"male"},{"name":"HanMei","age":18,"sex":"famale"}]

    总体而言,json是相对比较容易的理解和使用的,但同时存在很多的陷阱,如果不注意的话很容易掉进去。

    json与eval对比:

      json格式非常受欢迎,而解析json的方式通常用JSON.parse()但是eval()方法也可以解析,这两者之间有什么区别呢?

    JSON.parse()之可以解析json格式的数据,并且会对要解析的字符串进行格式检查,如果格式不正确则不进行解析,而eval()则可以解析任何字符串,eval是不安全的。

    例如下面代码:

    function EvalTest() {
    
        var content = "console.log('javascript')";
        eval(content);
    
    }
    
    function JSONTest() {
    var content ="console.log('jvascript')";
    JSON.parse(content);
    
    }

    它们的执行结果为:

      用eval可以解析,并且会在控制台中输入出需要打印的字符串,而用JSON.parse()则解析不了。eval在解析字符串时,会执行该字符串中的代码, 其实console.log并没有什么坏处,可怕的是如果用恶意用户在json字符串中注入了向页面插入木马链接的脚本,用eval也是可以操作的,而用JSON.parse()则不必担心这个问题。

  • 相关阅读:
    Linux ReviewBoard安装与配置
    窗口部件预防式验证
    python-Levenshtein几个计算字串相似度的函数解析
    exactly-once和kafka
    关于回归树的创建和剪枝
    Python神坑:sum和numpy.sum
    Python问题汇总
    ES查询之刨根问底
    安装ES
    KNN手写实践:Python基于数据集整体计算以及排序
  • 原文地址:https://www.cnblogs.com/wangjunqiao/p/5718466.html
Copyright © 2020-2023  润新知