面试准备之ES6

ES6相关

说几个es6的新增的一些东西

  1. 新增声明命令let和const
  2. 模板字符串(Template String)
  3. 函数的扩展(默认参数和箭头函数)
  4. 对象扩展(属性和方法简写,Object.keys(对象)方法和Object.assign(target,obj1,obj2…)方法)
  5. import和export
  6. Promise
  7. 解构赋值
  8. 展开运算符(…运算符)
  9. class类

1. let count的详解

  1. let 和 const 都是块级作用域。以{}代码块作为作用域范围 只能在代码块里面使用。
  2. 不存在变量提升,只能先声明再使用,否则会报错。在代码块内,在声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”(temporal dead zone,简称 TDZ)。
  3. 在同一个代码块内,不允许重复声明。
  4. const声明的是一个只读常量,在声明时就需要赋值。(如果 const 的是一个对象,对象所包含的值是可以被修改的。抽象一点儿说,就是对象所指向的地址不能改变,而变量成员是可以修改的。)

2. 模板字符串详解

用一对反引号(`)标识,它可以当作普通字符串使用,也可以用来定义多行字符串,也可以在字符串中嵌入变量,js表达式或函数,变量、js表达式或函数需要写在${ }中

var str = `abc
def
gh`;
console.log(str);
let name = "小明";
function a() {
   
    return "ming";
}
console.log(`我的名字叫做${
     name},年龄${
     17+2}岁,性别${
     '男'},游戏ID:${
     a()}`);

3. 函数的扩展详解

  1. 可以给函数参数设置默认值
function A(a,b=1){
   
    console.log(a+b);
}
A(1);    //2
A(2,3);  //5
  1. 箭头函数

    1. 可以省略function关键字
    2. 可以不写函数名
    3. 如果只有一个表达式可以不需要写{} 和 返回值,直接加一个()即可

//省略写法
var people = name => ('hello' + name);
 
var getFullName = (firstName, lastName) => {
   
    var fullName = firstName + lastName;
    return fullName;
}

4. 对象的扩展详解

  1. 属性的简写。ES6 允许在对象之中,直接写变量,这时,属性名为变量名, 属性值为变量的值.
const foo = 'bar';
const baz = {
   foo};//简写
const baz = {
   foo: foo};// 等同于这个
  1. 方法简写。

var o = {
   
  method() {
   
    return "Hello!";
  }
};
 
// 等同于
var o = {
   
  method: function() {
   
    return "Hello!";
  }
};
  1. Object.keys()方法,获取对象的所有属性名或方法名(不包括原形的内容),返回一个数组
//直接传入对象,返回属性名数组
var obj={
   
    name: "john", 
    age: "21", 
    getName: function () {
    
        alert(this.name)
    	}
	};
console.log(Object.keys(obj));    // ["name", "age", "getName"]
console.log(Object.keys(obj).length);    //3
 //如果传入的是数组,则返回数组下标数组,如果传入的是字符串,则返回字符下标数组
console.log(Object.keys(["aa", "bb", "cc"]));    //["0", "1", "2"]
console.log(Object.keys("abcdef"));    //["0", "1", "2", "3", "4", "5"]

  1. Object.assign (),assign方法将多个原对象的属性和方法都合并到了目标对象上面。可以接收多个参数,第一个参数是目标对象,后面的都是源对象

var target  = {
   }; //目标对象
var source1 = {
   name : 'ming', age: '19'}; //源对象1
var source2 = {
   sex : '女'}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值