Javascript语法中的一些小陷阱
Javascript对象,其实也就是使用哈希表实现
原来这样写创建出来的obj是一个对象
在Javascript中没有map噢(也就是在别的语言中常常使用的键值对)
1 | var obj = { |
直接打印上面创建的对象,会打印出
在Node.js中还不会打印出前面的Object
1 | console.log(obj); |
如果这样呢?因为它真的是Javascript对象,我也是现在才知道,不晚!
1 | console.log('obj:' + obj); |
Javascript对象是不是和JSON很像
下面来一段标准的JSON字符串,楼主也是傻逼了,才想通的,呵呵
eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本
然后生成 JavaScript 对象.必须把文本包围在括号中,这样才能避免语法错误:
1 | var txt = '{ "employees" : [' + |
提示: eval() 函数可编译并执行任何 JavaScript 代码。这隐藏了一个潜在的安全问题。
使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做法。
JSON 解析器只能识别 JSON 文本,而不会编译脚本。
在浏览器中,这提供了原生的 JSON 支持,而且 JSON 解析器的速度更快。
较新的浏览器和最新的 ECMAScript (JavaScript) 标准中均包含了原生的对 JSON 的支持。
附上一些可用的代码,如果一些古老的浏览器,可以下载json2.js
作者没用过,自己上百度谷歌一下,我只给github地址
1 | JSON.stringify() // 将Javascript对象转换成json格式的字符串 |
不过 js 这门渣渣语言本来就乱嘛,什么变量提升(传送门 )啊,没有 main 函数啊,变量作用域啊,数据类型常常简单得只有数字、字符串、哈希、数组啊, 这一系列的问题,都不是事儿。
作者是菜鸟中的菜鸟,写博客慢慢记录下来!