程序题

第一题
		var product = 'apple';
		var obj = {
			produc:'pen',
			prop:{
				product:'apple pen',
				getProduct:function(){
					return this.product;
				}
			}
		}
		product='pineapple';
		console.log(obj.prop.getProduct());
		var buy = obj.prop.getProduct;
		console.log(buy());
		======执行结果为
		 =========================apple pen 
		 =========================pineapple
		第二题  考察箭头函数
		window.name = 'A'
		const obj = {
			name:'B',
			getName:()=>{
				console.log(this.name);
				console.log(this);
			}
		}
		const fn = obj.getName;
		fn();
		obj.getName();
		fn.call({name:'c'})
		=====================执行结果为 A A A
		第三题  考察arguments对象里是实参值
		function test(a,b){
			console.log(arguments)
			return arguments+b+arguments[2];

		}
		var result = test('a','b','c','d');
		console.log(result)

		第四题
		var a = { x:1 };
		var b = a;
		a = a.x={x:1};
		console.log(a)
		console.log(b)
		// ====================执行结果为
							// Object{x:1};
							// Object{x:{x:1}}
		第五题
		var num = 1;
		function myFunc(){
			alert(num);      //undefined
			var num =2;
			alert(num);			// 2
		}
		myFunc();
		第六题
		var v1 = 'global';
		var f1 = function(){
			console.log(v1);
		};
		f1();             //global
		var f2 = function(){
			var v1 = 'local';
			f1();
		};
		f2();			//global
		第七题  ??
		var name = "global";
		var obj = {
			name:"local",
			foo:function(){
				this.name = 'foo';
			}.bind(window)
		};
		var bar = new obj.foo();
		setTimeout(function(){
			console.log(window.name)  		//global
		},0)
		console.log(bar.name);			//foo

		var bar3=bar2=bar;
		bar2.name = 'foo2';
		console.log(bar3.name);           //foo2

		第八题  题目有问题
		var objName = " name1";
		function obj(){
			var objName = " name2";
			funciton innerObj(){
				alert(objName);
			}
			innerObj();
		}
		alert(obj());
		第九题
		window.a = 300;
		function fn1(){
			this.a = 100;
			this.b = 200;
			return function(){
				alert(this.a)
			}.call(arguments[0]);
		}
		function fn2(){
			this.a = new fn1();
		}
		var a = new fn1().b;
		var v = new fn1(fn2());
		分别弹出 300 200 [object Object]
		第十题   ??
		function Dog(){}
		Dog.prototype = {
				bark(){
					console.log(1)
				}
		}
		
		const dog = new Dog()
		dog.bark()
		Dog.prototype = {
				bark(){
					console.log(2)
				}
		}
		dog.bark()
		Dog.prototype = {
				bark(){
					console.log(3)
				}
		}
		dog.bark()
		输出三个 1
		第十题
		let num = 10;
		let output = '';
		for(let i=1;i<=num;i++){
			let sqRoot = Math.sqrt(i);
			if(Math.floor(sqRoot)!==sqRoot){
				continue;
			}
			output+=i+'';
		}	
		console.log(output);
		第十一题
		const name ='name';
		const test = `${name}`"${name}"`${name}`;
		console.log(test);
		const name = 'name';
		const test = {name};
		console.log(test)
		第十二题
		"use strict";
		a = 1;
			var a = 2;
			console.log(window.a);   //2
			console.log(a);			 //2
		第十三题
		var {a,b,c}={"c":10,"b":9,"a":8}
		console.log(a)		//8
		console.log(b)		//9
		console.log(c)		//10
		第十四题
		console.log(NaN==false)       //false
		console.log(!NaN==false)	//false
		console.log(!!NaN==false)	//true
		console.log(NaN==true)      //false
		console.log(!NaN==true)     //true 
		console.log(!!NaN==true)     //false 
		// 第十五题
		function test(a,b){
			return a+b+arguments[2];
		}
		var result = test("a","b","c","d")
		console.log(result);		//abc
		第十六题
		var a = new Date(2020,3,8)
		 console.log(a)
		 // Date Wed Apr 08 2020 00:00:00 GMT+0800 (中国标准时间)

原文地址:https://www.cnblogs.com/princeness/p/11664997.html