// 1.
var buttons = [{
name: 'b1'
}, {
name: 'b2'
}, {
name: 'b3'
}];
function bind() {
for (var i = 0; i < buttons.length; i++) {
buttons[i].onclick = function () {
console.log(i);
}
}
};
bind();
buttons[0].onclick(); // 3
buttons[1].onclick(); // 3
buttons[2].onclick(); // 3
// 2.
var fn1 = 'ivan';
var name = 'good';
var fn1 = function (y) {
y();
}
function fn1(x) {
x(name);
}
function fn2(x) {
console.log(x); // undefined
console.log(name); // undefined
var name = 'hello';
console.log(name); // hello
}
fn1(fn2);
// 3.
var num = 5;
function func1() {
var num = 3;
var age = 4;
function func2() {
console.log(num); // undefined
var num = '123';
function func3() {
age = 6;
}
func3();
console.log(num); // 123
console.log(age); // 6
}
func2();
}
func1();
// 4.
function changeObjectProperty(o) {
o.siteUrl = "http://www.csser.com/";
o = new Object();
o.siteUrl = "http://www.popcg.com/";
}
var CSSer = new Object();
changeObjectProperty(CSSer);
console.log(CSSer.siteUrl); // http://www.csser.com/
// 5.
var x = 8;
var objA = {
x: 'good',
y: 32
}
function add(x, y) {
console.log(x.y + y); // 5+3=8
}
function fn(x, y) {
x.y = 5; // objA.y=5
y(x, 3); // add(objA,3)
}
fn(objA, add);
console.log(objA); // {x:"good",y:5}
// 6.
var obj1 = new Object();
obj1.name = 'abc';
var obj2 = obj1;
console.log(obj2.name); // abc
obj1.name = 'def';
console.log(obj2.name); // def
// 7.
var a = '' + 3;
var b = 4;
console.log(typeof a); // string
console.log(a + b); // "34"
console.log(a - b); // -1
console.log({} - b); // NaN
var foo = '11' + 2 + '1';
console.log(foo); // "1121"
console.log(typeof foo); // string
var foo1 = '11' + 2 * 2;
console.log(foo1); // "114"
// 8.
function Foo() {
getName = function () {
console.log(1);
}
return this;
}
Foo.getName = function () {
console.log(2);
}
Foo.prototype.getName = function () {
console.log(3);
}
var getName = function () {
console.log(4);
}
function getName() {
console.log(5);
}
Foo.getName(); // 2
getName(); // 4
Foo().getName(); // 1
getName(); // 1
new Foo.getName(); // 2
new Foo().getName(); // 3
// (new Foo()).getName()
// getName = function () {console.log(1);}
// new Foo()==>{__proto__:Foo.prototype==>getName = function () {console.log(3);}}
new new Foo().getName(); // 3
// new ((new Foo()).getName)()
// getName = function () {console.log(1);}
// new Foo()==>{__proto__:Foo.prototype==>getName = function () {console.log(3);}}
JS-练习题
于 2022-07-11 19:48:10 首次发布