JS学习笔记(持续更新中)

    xiaoxiao2023-10-02  152

    有句话说的话,”学好JS,走遍天下都不怕!“

    一、JSON序列化和反序列化

    为什么要使用序列化了,不管是在接收后台数据还是前台向后台传数据时,很多时候都需要使用序列化和反序列化。

    在向后台传数据时,我们有时候需要使用

    序列化,此时的str就是序列化后的字符串;

    var str = JSON.stringify(data);

    在接收后台数据时,我们可以通过反序列化来进行反序列化

    var dstr = JSON.parse(str);

    二、JS中布尔值为false的六种情况

    下面6种值转化为布尔值时为false,其他转化都为true

    ①undefined(未定义,找不到值时出现)

    ②null(代表空值)

    ③false(布尔值的false,字符串"false"布尔值为true)

    ④0(数字0,字符串"0"布尔值为true)

    ⑤NaN(无法计算结果时出现,表示"非数值";但是typeof NaN===“number”)

    ⑥""(双引号)或’’(单引号) (空字符串,中间有空格时也是true)

    三、JS中undefined和null的区别

    这是一个面试经常被问到的一个问题,我就简单说下什么情况下会出现undefined和null ①undefined js有一个神奇的现象就是变量提升

    console.log(a); var a = 1;

    这样写的话,按照正常的逻辑会认为会报错 可是最后打印如下: 这里就存在一个变量提升的问题,js会将声明变量的那段代码进行位置的提升 解析成:

    var a; console.log(a); a = 1;

    因此,undefined就是声明但是没有赋值的情况下才会出现 备注:在es6不会再出现变量提升这种情况

    ②null null的话,通常是获取不到节点或者节点中的属性的时候才会出现

    最新回复(0)