• JS 相关记录(scrollTo,JSON)


    1. window.scrollTo

    window.scrollTo 有2种语法,比较常见的时候 window.scrollTo(x-coord,y-coord ),其中 x轴坐标与y坐标

    第二种为 window.scrollTo(options) (自带动画效果哦)

    1. top 等同于  y-coord
    2. left 等同于  x-coord
    3. behavior  类型String,表示滚动行为,支持参数 smooth(平滑滚动),instant(瞬间滚动),默认值auto,实测效果等同于instant

    2.JSON:

    首先声明一点:

    JSON 是一种语法,用来序列化对象、数组、数值、字符串、布尔值和 null 。它基于 JavaScript 语法,但与之不同:JavaScript不是JSON,JSON也不是JavaScript

    JSON 的标准:

      1.在转换过程parse 中字符中最后一个属性不能有,

      2.不要带有前导0,否则parse会抛出 SyntaxError 异常。如果有小数点最好后面跟着一个数字

      3.只有有限的一些字符可能会被转义;禁止某些控制字符; Unicode 行分隔符 (U+2028)和段分隔符 (U+2029)被允许 ; 字符串必须用双引号括起来

    let code = '"u2028u2029"';
    JSON.parse(code);  // 正常
    eval(code);  // 错误

    方法(大家都知道,但是会有隐藏参数哦~):

      1.JSON.parse(text[, reviver])

        text:要被解析成JavaScript值的字符串,
        reviver可选) :转换器, 如果传入该参数(函数),可以用来修改解析生成的原始值,调用时机在parse函数返回之前
      第一个参数不用说大家都会用,下面示例第二个参数
    JSON.parse('{"p": 5}', function (k, v) {
        if(k === '') return v;     // 如果到了最顶层,则直接返回属性值,
        return v * 2;              // 否则将属性值变为原来的 2 倍。
    });                            // { p: 10 }
    
    JSON.parse('{"1": 1, "2": 2,"3": {"4": 4, "5": {"6": 6}}}', function (k, v) {
        console.log(k); // 输出当前的属性名,从而得知遍历顺序是从内向外的,
                        // 最后一个属性名会是个空字符串。
        return v;       // 返回原始属性值,相当于没有传递 reviver 参数。
    });
    
    // 1
    // 2
    // 4
    // 6
    // 5
    // 3 
    // ""

       说明:在解析的时候解析值会经过一次转换后才会最终返回(解析的顺序是从里到外的,最终到达最外层,如果返回值为undefined,当前解析的属性会被移除),最外层的k是空字符串,所以我们当遇到属性名为空字符串时,一定要返回属性值,否则如果是undefined的话,那么就没救了,啥也解析不出来~

      2.JSON.stringify(value[, replacer [, space]])

        value:将要序列化成 一个JSON 字符串的值。

        replacer 可选 :如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理;如果该参数是一个数组,则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中;如果该参数为null或者未提供,则对象所有的属性都会被序列化;关于该参数更详细的解释和示例,请参考使用原生的 JSON 对象一文。
        space 可选 :指定缩进用的空白字符串,用于美化输出(pretty-print);如果参数是个数字,它代表有多少的空格;上限为10。该值若小于1,则意味着没有空格;如果该参数为字符串(字符串的前十个字母),该字符串将被作为空格;如果该参数没有提供(或者为null)将没有空格。
      
      上面是官方语言,嫌多不想看的看这~  
      value 大家都知道~ 
      replaceer 可以是函数也可是数组:
          函数:针对每个序列化的属性和值进行一次回调 (如果返回undefined,该属性值不会在JSON字符串中输出。)
          数组:至转换数组中标记的属性名,比如一个JSON 对象是 {a:1,b:2} 如果replaceer 参数是['a'] 那么最终解析的字符串就是'"{"a":1}"
      space 指定的缩进,就是美化拉,如果是数字比如7 那就是7个空格(上线为10
      下面是示例:
    var a = {a:1,b:2}
    
    JSON.stringify(a)
    // "{"a":1,"b":2}"
    
    JSON.stringify(a,['a'])
    //"{"a":1}"
    
    JSON.stringify(a,['a'],10)
    //"{
    //          "a": 1
    //}"
    
    JSON.stringify(a,['a'],'woshispace')
    //"{
    //woshispace"a": 1
    //}"
    成灰之前,抓紧时间做点事!!
  • 相关阅读:
    Nginx 模块:--with-http_sub_status_module
    Nginx http请求&日志
    Nginx 目录和配置语法&DNS配置
    Nginx 全局配置
    Nginx 相关操作1
    Nginx入坑基础篇
    杂谈maven工程实践(3)
    杂谈maven工程类型(2)
    杂谈maven相关概念(1)
    Django
  • 原文地址:https://www.cnblogs.com/jony-it/p/10479814.html
Copyright © 2020-2023  润新知