zoukankan      html  css  js  c++  java
  • js经典试题之常用的方法

    js经典试题之常用的方法

    1、下面代码输出的值

    let s = "bob"
    const replaced = s.replace('b', 'l')
    replaced === "lob"
    s === "bob"
    

    答案: true true

    解析:replace 只会替换第一个匹配的字符串,如果你想替换所有匹配的字符串,你可以使用带/g标志的正则表达式 。

    "bob".replace(/b/g, 'l') === 'lol' // 替换所有匹配的字符串
    

     

    2、深度拷贝兼容写法

    function deepCopy(obj) {
        if (typeof obj !== 'object') return obj;
        if (typeof window !== 'undefined' && window.JSON) { // 浏览器环境下 并支持window.JSON 则使用 JSON
            return JSON.parse(JSON.stringify(obj));
        } else {
            let newObj = obj.constructor === 'Array' ? [] : {};
            for(let key in obj) {
                newObj[key] = typeof obj[key] === 'object' ? deepCopy(obj[key]) : obj[key];
            }
            return newObj;
        }
    }
    
    let obj = {a: 1, b: [12]};
    let newObj = deepCopy(obj);
    newObj.b[1] = 100;
    console.log(obj);
    console.log(newObj);
    

      

     

  • 相关阅读:
    几种简单的博弈 1
    Luogu P2789 直线交点数
    搜索题简记
    并查集的妙用
    [qbzt寒假]线段树和树状数组
    [qbzt寒假]hash
    [qbzt寒假]Trie字典树
    博客阅读须知
    洛谷P1842 [USACO05NOV]奶牛玩杂技——题解
    2020SDOI游记
  • 原文地址:https://www.cnblogs.com/momozjm/p/8459052.html
Copyright © 2011-2022 走看看