• 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()则不必担心这个问题。

  • 相关阅读:
    vue-d2admin-axios异步请求登录,先对比一下Jquery ajax, Axios, Fetch区别
    beego 前后端分离登录验证
    Beego没gin配置静态页面方便
    beego-vue URL重定向(beego和vue前后端分离开发,beego承载vue前端分离页面部署)
    Go程序员面试算法宝典-读后感2-链表
    Go程序员面试算法宝典-读后感1
    bee api new
    golang-结构体的使用
    golang-笔记2
    golang-笔记1
  • 原文地址:https://www.cnblogs.com/wangjunqiao/p/5718466.html
Copyright © 2020-2023  润新知