2024年Web前端最全JSON数据格式及其在WEB开发中的应用(1),前端工程师面试题汇总

总结

我在成长过程中也是一路摸爬滚打,没有任何人的指点,所以走的很艰难。例如在大三的时候,如果有个学长可以阶段性的指点一二,如果有已经工作的师兄可以告诉我工作上需要什么,我应该前面的三年可以缩短一半;后来去面试bat,失败了有5、6次,每次也不知道具体是什么原因,都是靠面试回忆去猜测可能是哪方面的问题,回来学习和完善,当你真正去招人的时候,你就会知道面试记录是多么重要,面试官可以从面试记录里看到你的成长,总是去面试,总是没有成长,就会被定义为缺乏潜力。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

image
image

  • D,Dart,Delphi,E,Fantom,FileMaker,Fortran,Go,Groovy,Haskell,Java,JavaScript,LabVIEW,Lisp,LiveCode,LotusScript,LPC,Lua

  • M,Matlab,Net.Data,Nim,Objective C,OCaml,PascalScript,Perl,Photoshop,PHP,PicoLisp,Pike,PL/SQL,PowerShell,PureBasic,Puredata,Python,

  • R,Racket,Rebol,RPG,Rust,Ruby,Scheme,Squeak,Symbian,Tcl,Visual Basic,Visual FoxPro

json与ajax
  • Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术;

  • 虽然 Ajax 先出来了,但是目前前后端的ajax通讯几乎都是json格式的了。

json与xml
  • JSON 和 XML的对比

1. 可读性: JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。

2. 可扩展性: XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。

3. 编码难度: XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。其实手工拼json其实也是个有挑战的活儿

4. 解码难度: XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。

5. 流行度: XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。

json与xml互相转换

JSON的格式必须是数组或者对象,其属性支持一下类型:

  • boolean: true, false

  • number: 0, 1, 2, 3

  • string: “abc”

  • object: null, {}, {“a”: “b”}

  • array: [], [1, 2]

严格的语法约束
  • 不能有ascii之外的字符,汉字应使用”\u6c49”格式;

  • 然而在utf-8流行的时代,汉字不编码已不是啥大问题了;

  • 不能有注释,行注释与块注释都不可以;

  • 字符串中不能有TAB,使用”\t”表示;

  • 对象中的所有的key都必须添加双引号,所有的字符串类型的value也都必须是双引号格式的;

json与js
  • 因为JSON源于JS,所以JSON在JS中具有得天独厚的优势;

  • 因为JS是web环境下B端开发语言的不二之选,所以JSON在WEB中大行其道;

  • 优势:

1. JS的语法子集,合法的JSON代码在JS中也是合法的JS代码,内嵌JSON传输随处可见,jsonp的原理便是基于此前提的;

2. 解析JSON数据的成本足够小,eval,json.js, JSON.parse(str)

3. 各种封装库直接透传json格式,导致json诞生之后迅速取代xml在数据传输中的地位;

4. JSON序列化在JS中也非常容易,json.js,JSON.stringify(json/*, null, "\t"*/);

eval解析json问题:

var str = “{“name”:“value”}”;

// 方法1

var json = eval(“(” + str + “)”); // 存在诸如 XSS 攻击风险

// 方法2

var json;

eval("json = " + str);

JSON在其他语言中的序列化问题
  • 这里不说解析(反序列化),只要是”合法的”JSON数据,解析库使用的正确,并且二者相匹配,不应该有问题;

  • 关于格式化问题:格式化是为了方便调试,生产环境中,应避免使用;

  • nodejs: 和浏览器中基本一致;

  • PHP: json_encode,json_decode(PHP 5 >= 5.2.0, PECL json >= 1.2.0)

  • Ruby: @json = @data.to_json, @data = JSON.parse(json)

  • Java:

  • JSON-java: JSONXXX.fromObject(str), obj.toString()

JSONObject jsonObj = JSONObject.fromObject(jsonString);

JSONArray jsonArr = JSONArray.fromObject(jsonString);

  • google-gson: gson.toJson, gson.fromJson
JSON与其他语言之间的类型对应关系

| json | js | php | ruby | java |

| — | — | — | — | — |

总结

阿里十分注重你对源码的理解,对你所学,所用东西的理解,对项目的理解。

最新阿里蚂蚁金服四面(已拿offer)Java技术面经总结

最新阿里蚂蚁金服四面(已拿offer)Java技术面经总结

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

最新阿里蚂蚁金服四面(已拿offer)Java技术面经总结

ttps://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)**

最新阿里蚂蚁金服四面(已拿offer)Java技术面经总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值