小知识总结

2017-06-02  本文已影响0人  butterflyq
  1. javaScript事件绑定和普通事件的区别:
    var btn = document.getElementById("btn");
    btn.onclick = function () {
    alert('普通事件1');//不执行
    }
    btn.onclick = function () {
    alert('普通事件2');//弹出
    }

// 上面用普通方法添加两个事件,下面用事件绑定添加两个事件。

    btn.addEventListener('click', function  () {
        alert('事件绑定1');//弹出
    },false);
    btn.addEventListener('click', function  () {
        alert('事件绑定2');//弹出
    },false);
  1. 去除数组中重复的

    function removeDuplicate(arr) {
    var al = arr.length;
    var finalArr = [];
    for (var i = 0; i < al; i++) {
    var tem = arr[i];
    if(finalArr.indexOf(tem) === -1){
    finalArr.push(tem);
    }
    }
    return finalArr;
    }

  2. delete操作符
    delete - JavaScript | MDN
    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/delete
    eg:
    var Employee =
    {
    age: 28,
    name: 'abc',
    designation: 'developer'
    }
    console.log(delete Employee.name); // returns true
    console.log(delete Employee.age); // returns true
    // 当试着删除一个不存在的属性时
    // 同样会返回true
    console.log(delete Employee.salary); // returns true
    eg:

Non-configurable 属性

#######当一个属性被设置为不可设置,delete操作将不会有任何效果,并且会返回false。在严格模式下会抛出语法错误([SyntaxError]
var Employee = {};
Object.defineProperty(Employee, 'name', {configurable: false});
console.log(delete Employee.name); // returns false
eg:
#######var, let以及const创建的不可设置的属性不能被delete操作删除。
var nameOther = 'XYZ';
// We can access this global property using:
Object.getOwnPropertyDescriptor(window, 'nameOther');
// output:
Object {
value: "XYZ",
// writable: true,
// enumerable: true,
// configurable: false
}// 因为“nameOther”使用var关键词添加,// 它被设置为不可设置(non-configurable)
delete nameOther; // return false

上一篇下一篇

猜你喜欢

热点阅读