es6 作业小结1-3

1.4-12

1、var和let区别?

//1.变量提升  var 有变量提升 let没有
			console.log(a);//undefined
			var a=10;
			console.log(m);//报错
			let m=10;
//2.let存在暂时性死区
// 块级作用域内let又声明了一个局部变量a,导致后者绑定这个块级作用域
//所以在let声明变量前,对a赋值会报错 而且let没有变量提升
	var a=100;
	{
		console.log(a);
		let a=10;
	}
// 3.let不能在一个作用域内部重复声明
let c=10;
let c=20;//报错
// var声明以后 let不能声明,声明也会存在重复声明报错的情况
	var a=10;
	let a=122;	//报错

2、分析代码执行结果?

var a=123;
if(true){
	a='zsh';
	let a;
}//报错  let没有变量提升

3、补全代码

//补充前
var person={
	name:'zs',
	age:12
}
let str=` `;
结果呈现:用户的姓名为 ,年龄是
result.innerHTML=str;
//补充后
var person={
	name:'zs',
	age:12
}
let str=`用户的姓名为${person.name},年龄是${person.age}  `;
result.innerHTML=str;
//结果呈现:用户的姓名为 zs,年龄是12

4、将下面字符串改用模板字符串实现?

$("#result").append(
	"He is <b>"+person.name+"</b>"+"and we wish to 
know his"+person.age+".That is all"  )

//模板字符串
$("#result").append(`He is <b>${person.name}</b>and we wish to 
know his${person.age}.That is all` )

5、下面程序输出的结果是?

let object = { first: 'Bill', lasts: 'Gates' };
let { first: firstName, last: lastName } = object;
console.log(firstName+'\t'+lastName); 
 // 第一个先找到同名的属性first 然后给变量赋值  
 // 第二个找不到同名的属性导致取不到值,最后等于undefined。

6、下列程序执行f()函数运行的结果是?

var tmp = new Date();//全局变量
function f(){
  console.log(tmp);
	  if (false){
	    var tmp = "hello world";//局部变量 声明提前
	  }
}
f() 
//undefined

7、对比以下两道程序输出的值相同吗?
A程序

var a = [];
	for (let i = 0; i < 10; i++) {//let 声明生产块级作用域,每一个都是独立的。打印的i和索引里面的i是相同
	  a[i] = function () {
	    console.log(i);
	  };
	}
	a[8](); //8
	a[9](); //9

B程序

var a = [];
	for (var i = 0; i < 10; i++) {//a函数会在for循环之后执行,输出结果 10,10
	  a[i] = function () {
	    console.log(i);
	  };
	}
	a[8](); //10
	a[9](); //10

2 4-14

1、画出 object person student原型链关系图
继承的原型链

1.编写程序使用ES6定义 Person类,包括类实例属性(name,age),实例方法say()该方法
返回name和age字符串

class Person{
	constructor(name,age){
		this.name=name;
		this.age=age;
	}
	say(){
		console.log(this.name+this.age);
	}
}
var person=new Person("zs",11);
person.say();

2.判断下面程序执行结果:

var p=new Person();
  console.log(p.__proto__===Person.prototype)//true

3.下面程序正确吗?错在哪里?如何改正?

class Point {
  constructor(x, y) {
    this.x = x;
    this.y = y;
  }
}
class ColorPoint extends Point {
          constructor(x, y, color) {
		super(x, y);	  	
	this.color = color; // super函数要再this函数前调用
		//  super(x, y);**				//子函数的实例化对象构建基于父类加工 只有super才能返回父类

           }
}
var cp=new ColorPoint(10,20,'red');

4.下面程序执行结果为?

class Parent {
//静态方法
  static myMethod(msg) {
    console.log('static', msg);
  }
  myMethod(msg) {
    console.log('instance', msg);
  }
}
class Child extends Parent {
  static myMethod(msg) {
    super.myMethod(msg);
  }
  myMethod(msg) {
    super.myMethod(msg);
  }
}
Child.myMethod(1); // static 1 
var child = new Child();
child.myMethod(2); // instance 2

5.请利用class重新定义Cat,并让它从已有的Animal继承,然后新增一个方法say(),
返回字符串’Hello, xxx!’

class Animal {
    constructor(name) {
        this.name = name;
    }
}
class Cat extends Animal{
	constructor (name){
		super(name);
	}
	say(){
		console.log("hello world")
	}
}
var cat=new Cat();
cat.say();

6.接上面程序分析下面代码执行结果为

var kitty = new Cat('Kitty');
var doraemon = new Cat('哆啦A梦');
if ((new Cat('x') instanceof Animal) && kitty && kitty.name === 'Kitty' && kitty.say &&
 typeof kitty.say === 'function' && kitty.say() === 'Hello,Kitty!'  && 
kitty.say === doraemon.say) {
         console.log('测试通过!');
} else {
        console.log('测试失败!');
}
//测试失败!

7.下面程序执行结果为

(typeof (new (class { class () {} })));//Object
//class{} 是一个类
//new 是实例化 对象 

3 4-16

1、node到底是什么?

node是一个平台 是用c++开发的 node提供了运行环境 让js可以运行在服务器上 。

2、node 和 java区别?

1、Node比Java 开发更快 :
2、Node.js 前后端都采用Javascript,代表未来发展的趋势,而java则是现在的最流行的服务器端编程语言。
3、Node.js和Java EE——一种是解释语言,一种是编译语言。
4、Java是一种编程语言,而NodeJS是用C,C ++编写的基于 Chrome V8 引擎的 JavaScript 运行环境。
5、Java严格来说是一种与浏览器无关的服务器端语言,而Node JS可以在客户端和服务器端有效地使用。

3node 和 php区别?

1.处理并发时的不同
2.Node.js的灵活性是这里需要特别提及的另一件事。该框架对它或任何类型的依赖项都没有很大的限制。
3.Node.js的另一个巨大好处是可以访问JSON。
4.PHP将HTML与框架语法结合在一起,所以扩展具有更多功能的PHP应用程序就存在困难。
5.PHP的总体代码库很大,因此代码管理不方便

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值