// 一个对象里面,属性名不能重复,属性名一般是字符串,数字属性名==字符串属性名 /* let a={},b='0',c=0; a[b]='abc'; a[c]='123' console.log(a[b]) */ //考点进一步深入提问:对象和数组的区别 /* let a={},b=Symbol('1'),c=Symbol('2'); a[b]='abc'; a[c]='123'; console.log(a[b]) */ //考点进一步深入提问:自己实现Symbol /* let a={},b={n:'1'},c={m:'2'}; a[b]='abc'; a[c]='123'; console.log(a[b]) */ //考点进一步深入提问:Object.prototype.toString()和valueOf的区别
下面代码打印值:
var test = (function(i){ return function(){ alert(i*=2) } })(2) test(5)
下面代码打印值:
// a++,先a先跟别人运算,然后再累加1 // ++a,先a自身累加1,然后再跟别人运算 var a = 0, b = 0; // alert(a++) function A(a) { A = function (b) { alert(a + b++); } alert(a++) } A(1); A(2);
下面代码打印值:
var x = 2; var y = { x: 3, z: (function (x) { this.x *= x; x += 2; return function (n) { this.x *= n; x += 3; console.log(x) } })(x) } var m = y.z m(4); y.z(5); console.log(x, y.x);