标签:防止 erro block 返回值 接受 解析 set date eval
    // 1.1接受一个数组参数,指定需要转成字符串的属性,第二个参数指定,只转a属性。
    JSON.stringify({ a: 1, b: 2 }, [‘a‘])
    // ‘{"a":1}‘
    
    // 1.2接受函数参数,转化对象的键和值
    function f12(key, value) {
      if (typeof value === "number") {
        value = 2 * value;
      }
      return value;
    }
    JSON.stringify({ a: 1, b: 2 }, f12)
    // ‘{"a":2,"b":4}‘
    
    // 1.3只拿自己想要的值,如果处理函数返回undefined或没有返回值,這個属性就沒了啊哈哈。
    function f13(key, value) {
      if (typeof (value) == "string") {
        return undefined;
      }
      return value;
    }
    JSON.stringify({ a: "abc", b: 123 }, f13)
    // ‘{"b":123}‘
    
    // 1.4給數據添加可讀性
    var d = { a: 1, b: 2 }
    JSON.stringify(d, null, 2);
    // "{
    //   "a": 1,
    //   "b": 2
    // }"
    
    // 1.5只输出你你想要的keys,加強版
    var e = { a: 1, b: 2, c: 3, d: 4 }
    JSON.stringify(e, ["a", "d"], 4);
    // "{
    //     "a": 1,
    //     "d": 4
    // }"
    
    // 1.5還可以這樣玩一下
    JSON.stringify({ a: 1, b: 2, c: 3 }, null, ‘|----‘);
    // "{
    // |----"a": 1,
    // |----"b": 2,
    // |----"c": 3
    // }"
    
    // 1.6關於JSON.parse你也可以試試看喲
    const myInput = ‘   ‘
    if (myInput && myInput.trim()) { console.log(‘這個輸入框不為空‘) }
    function e() {
      return
      {
        a: "e"
      }
    }
    console.log(e()) // undefined
    let z = ‘z‘
    let m = ‘m‘
    [z, m] = [m, z]
    console.log(z, m) // Uncaught ReferenceError: m is not defined
    let z1 = ‘z‘;
    let m1 = ‘m‘;
    [z1, m1] = [m1, z1];
    console.log(z1, m1); // m z
    var arr = [1, 2, 3, 4, 5];
    var num = 3;
    arr.forEach(function (v) {
      if (v == num) {
        break;
      }
      console.log(v);
    });
    // Uncaught SyntaxError: Illegal break statement
    var arr = [1, 2, 3, 4, 5];
    var num = 3;
    arr.forEach(function (v) {
      if (v == num) {
        return;
      }
      console.log(v);
    });
    // VM62:7 1
    // VM62:7 2
    // VM62:7 4
    // VM62:7 5
    
    // 解決如下,使用数组的另外两个方法some()与every():
    var arr = [1, 2, 3, 4, 5];
    var num = 3;
    arr.some(function (v) {
      if (v == num) {
        return true;
      }
      console.log(v);
    });
    // VM65:7 1
    // VM65:7 2
    // true 跳出循環啦~~~~
    var arr = [1, 2, 3, 4, 5];
    var num = 3;
    arr.every(function (v) {
      if (v == num) {
        return false;
      } else {
        console.log(v);
        return true;
      }
    });
    // 1
    // 2
    // false 跳出循環啦~~~~
    var ccc = { a: { t: 123 } }
    function setC() { ccc[‘b‘] = 111 }
    ccc && ccc.a && ccc.a.t && setC()
    function setArg() {
      console.log(arguments) // Arguments(4)
      console.log([].slice.call(arguments)) // Array(4) ----[1,2,3,‘4‘]
    }
    setArg(1, 2, 3, ‘4‘)
    var q = { a: 1, s: 2, d: 3 };
    Object.prototype.w = function () { };
    for (var key in q) {
      if (q.hasOwnProperty(key)) {
        console.log(‘for in搭配hasOwnProperty方法‘, ‘對象的key:‘, key, ‘對象的value:‘, q[key]);
    }
      console.log(‘for in方法‘, ‘對象的key:‘, key, ‘對象的value:‘, q[key]);
    }
    Object.keys(q).forEach(key => {
      console.log(‘forEach方法‘, ‘對象的key:‘, key, ‘對象的value:‘, q[key]);
    })
    Object.keys(q).some(key => {
      if (key === ‘e‘) {
        return true; // some  true时跳出 循环.
      }
      console.log(‘some方法‘, ‘對象的key:‘, key, ‘對象的value:‘, q[key]);
    })
    Object.keys(q).every(key => {
      if (key === ‘e‘) {
        return false; // every  false 跳出 循环
      } else {
        console.log(‘every方法‘, ‘對象的key:‘, key, ‘對象的value:‘, q[key]);
        return true;
      }
    })
    // for in搭配hasOwnProperty方法 對象的key: a 對象的value: 1
    // for in方法 對象的key: a 對象的value: 1
    // for in搭配hasOwnProperty方法 對象的key: s 對象的value: 2
    // for in方法 對象的key: s 對象的value: 2
    // for in搭配hasOwnProperty方法 對象的key: d 對象的value: 3
    // for in方法 對象的key: d 對象的value: 3
    // for in方法 對象的key: w 對象的value: ? () { }
    // forEach方法 對象的key: a 對象的value: 1
    // forEach方法 對象的key: s 對象的value: 2
    // forEach方法 對象的key: d 對象的value: 3
    // some方法 對象的key: a 對象的value: 1
    // some方法 對象的key: s 對象的value: 2
    // some方法 對象的key: d 對象的value: 3
    // every方法 對象的key: a 對象的value: 1
    // every方法 對象的key: s 對象的value: 2
    // every方法 對象的key: d 對象的value: 3
<div id="myDiv"></div>
<script>
if (typeof myDiv === ‘undefined‘) {
  myDiv = ‘測試一下我是不是字符串‘ // 其实这里不会执行到的
}
console.log(myDiv) 
// <div id="myDiv"></div>--输出DOM对象
myDiv = ‘改一改變量感受一下‘
console.log(myDiv) 
// 改一改變量感受一下 
</script>
  const data1 = new Date("2019-01-01")
  // Tue Jan 01 2019 08:00:00 GMT+0800 (台北标准时间)
  // ie某些版本會告訴你語法錯誤
  const data2 = new Date(2019,0,1)
  // Tue Jan 01 2019 00:00:00 GMT+0800 (台北标准时间), IE在用版本還OK
  const data3 = new Date("2019/01/01")
  // Tue Jan 01 2019 00:00:00 GMT+0800 (台北标准时间), IE在用版本還OK
  const userAgent1 = navigator.userAgent.toLowerCase()
  // "mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/71.0.3578.98 safari/537.36"
  function getBroswer(){
      var Sys = {};
      var ua = navigator.userAgent.toLowerCase();
      var s;
      (s = ua.match(/edge\/([\d.]+)/)) ? Sys.edge = s[1] :
      (s = ua.match(/rv:([\d.]+)\) like gecko/)) ? Sys.ie = s[1] :
      (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
      (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
      (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
      (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
      (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
  
      if (Sys.edge) return { broswer : "Edge", version : Sys.edge };
      if (Sys.ie) return { broswer : "IE", version : Sys.ie };
      if (Sys.firefox) return { broswer : "Firefox", version : Sys.firefox };
      if (Sys.chrome) return { broswer : "Chrome", version : Sys.chrome };
      if (Sys.opera) return { broswer : "Opera", version : Sys.opera };
      if (Sys.safari) return { broswer : "Safari", version : Sys.safari };
      
      return { broswer : "", version : "0" };
  }
  var abc = getBroswer();
  console.log("broswer:"+abc.broswer+" version:"+abc.version);
  // broswer:Chrome version:71.0.3578.98
 var str11 = ‘小金:需要替換的地方:1.待替換1,2.待替換2,3.待替換3,4.待替換4,5.待替換5,6.待替換6,7.待替換7,‘
 var newStr11 = str11.replace(‘待替換‘, ‘替換過啦‘)
 console.log(newStr11)
//  小金:需要替換的地方:1.替換過啦1,2.待替換2,3.待替換3,4.待替換4,5.待替換5,6.待替換6,7.待替換7,
// 從以上我們可以看出,只替換了第一個哦~~
let myReg = new RegExp(‘^‘ + escape(‘待替換‘))
// .replace(/%/g, ‘\\‘)
 console.log(myReg)
 
 var newStr12 = str11.replace(new RegExp(‘待替換‘, ‘g‘), ‘替換過啦‘)
 console.log("new RegExp(‘待替換‘, ‘g‘)", newStr12) 
 // new RegExp(‘待替換‘, ‘g‘) 小金:需要替換的地方:1.替換過啦1,2.替換過啦2,3.替換過啦3,4.替換過啦4,5.替換過啦5,6.替換過啦6,7.替換過啦7,
 var res1 = str11.split(‘待替換‘).join(‘替換過啦‘)
 console.log(‘split-join‘, res1) 
 // split-join 小金:需要替換的地方:1.替換過啦1,2.替換過啦2,3.替換過啦3,4.替換過啦4,5.替換過啦5,6.替換過啦6,7.替換過啦7,
欢迎大家指出文章需要改正之处~
如果有更好的方法,欢迎大家提出来,共同进步哟~~
标签:防止 erro block 返回值 接受 解析 set date eval
原文地址:https://www.cnblogs.com/sugartang/p/13290146.html