为什么要使用序列化了,不管是在接收后台数据还是前台向后台传数据时,很多时候都需要使用序列化和反序列化。
在向后台传数据时,我们有时候需要使用
序列化,此时的str就是序列化后的字符串;
var str = JSON.stringify(data);在接收后台数据时,我们可以通过反序列化来进行反序列化
var dstr = JSON.parse(str);下面6种值转化为布尔值时为false,其他转化都为true
①undefined(未定义,找不到值时出现)
②null(代表空值)
③false(布尔值的false,字符串"false"布尔值为true)
④0(数字0,字符串"0"布尔值为true)
⑤NaN(无法计算结果时出现,表示"非数值";但是typeof NaN===“number”)
⑥""(双引号)或’’(单引号) (空字符串,中间有空格时也是true)
这是一个面试经常被问到的一个问题,我就简单说下什么情况下会出现undefined和null ①undefined js有一个神奇的现象就是变量提升
console.log(a); var a = 1;这样写的话,按照正常的逻辑会认为会报错 可是最后打印如下: 这里就存在一个变量提升的问题,js会将声明变量的那段代码进行位置的提升 解析成:
var a; console.log(a); a = 1;因此,undefined就是声明但是没有赋值的情况下才会出现 备注:在es6不会再出现变量提升这种情况
②null null的话,通常是获取不到节点或者节点中的属性的时候才会出现