小知识总结
- 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);
-
去除数组中重复的
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;
} -
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