一、函数扩展

1、参数默认值

参数有默认值,后面不可以再加没有默认值的变量。如以下test函数中,不可以加写成

function test(x,y="word",z){

}

function test(x,y="word"){
console.log("默认值",x,y);
}
test("lala"); //lala word
test("lala","你好啊"); //lala 你好啊

2、作用域的问题

//作用域的问题
let x="test";
function test2(x,y=x){
console.log("作用域",x,y);
}
test2("kill"); //kill kill
test2() //undefined undefined
function test3(c,y=x){
console.log("作用域",c,y);
}
test3("kill"); //kill test

  

3、参数问题

...arg后不可再加参数

function test4(...arg){
for(let v of arg){
console.log("rest",v);
}
}
test4(1,2,3,4,"a"); //1,2,3,4,a
console.log("a",...[1,2,3]); //a 1 2 3

4、伪调用  主要用于提升性能

 //伪调用
function trail(x){
console.log("tail",x);
} function fx(x){
return trail(x)
}
fx(123);

  

二、对象扩展  

  1、简洁表示法

 //简洁表示法
let o=1;let k=2;
let es5={
o:o,
K:k
};
let es6={
o,k
}
console.log(es5,es6); let es5_method={
hello:function(){
console.log("11hello");
}
}
let es6_methods={
hello(){
console.log("22hello")
}
} console.log(es5_method.hello(),es6_methods.hello());

2、属性表达式

//属性表达式
let a="b";
let es5_obj={
a:"c"
}
let es6_obg={
[a]:"c"
}
console.log(es5_obj,es6_obg);

3、新增API

  //新增api
console.log("字符串",Object.is("abc","abc"),"abc"==="abc"); //true true
console.log("数组",Object.is([],[]),[]===[]); //false false console.log("拷贝",Object.assign({a:"a"},{b:"b"})); //a:"a",b:"b"

  

  

  

es6之函数扩展与对象扩展的更多相关文章

  1. JavaScript 对象扩展代码

    JavaScript 扩展代码 更具需要写的几个扩展. 扩展核心自执行函数 Object.extend /** * 对象扩展体 参数是 {属性|方法:属性值|方法体} * 只执行实现 * * 实例对基 ...

  2. ES6对象扩展

    前面的话 随着JS应用复杂度的不断增加,开发者在程序中使用对象的数量也在持续增长,因此对象使用效率的提升就变得至关重要.ES6通过多种方式来加强对象的使用,通过简单的语法扩展,提供更多操作对象及与对象 ...

  3. ES6入门之对象扩展

    ES5对象(超类)原有: 属性:construct构造函数 方法: object.hasOwnProperty( propertyName ) //检测是否有一个本地的属性而不是继承的,返回boole ...

  4. ES6学习之对象扩展

    简介表示法(直接写入变量和函数,作为对象的属性和方法) let x = "test" let obj={ x, //属性名为变量名,属性值为变量值 y(){console.log( ...

  5. ES6 - 对象扩展(增强字面量)

    /** * 对象的扩展 * * 增强对象字面量 * * 解决问题:缩减代码 */ { /** * 1.属性简表示法 * 变量foo直接写在大括号里面.这时,属性名就是变量名, 属性值就是变量值 */ ...

  6. 关于ES6的对象扩展运算符

    对象的扩展运算符(...),用于取出参数对象中的所有可遍历属性,然后拷贝到当前对象之中 对象扩展运算符: 1. 复制对象 let obj1 = { x: 1, y: 2, z: 3 } let obj ...

  7. es6学习日记5-对象的扩展

    属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性和方法.这样的书写更加简洁. const foo = 'bar'; const baz = {foo}; baz // {foo: &q ...

  8. es6学习笔记9--函数的扩展

    函数参数的默认值 基本用法 在ES6之前,不能直接为函数的参数指定默认值,为了避免这个问题,通常需要先判断一下参数y是否被赋值,如果没有,再等于默认值. ES6允许为函数的参数设置默认值,即直接写在参 ...

  9. ES6学习笔记二:各种扩展

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7242967.html 一:字符串扩展 1:字符串遍历器 for (let char of str) { // ...

随机推荐

  1. golang学习之select用法

    早期的select函数是用来监控一系列的文件句柄,一旦其中一个文件句柄发生IO操作,该select调用就会被返回.golang在语言级别直接支持select,用于处理异步IO问题. select用法同 ...

  2. 域名解析成功后,怎样访问服务器上Eclipse中的Web工程

    右击工程选择Export-->选择Web文件夹下的WAR file-->Destination下选择文件存放的地址-->Finish就可以获得WAR文件了然后将WAR文件放到tomc ...

  3. Scrapy爬虫requests

    requests 模块 模块的由来: 浏览器可以浏览网站, 是由于浏览器发送了requests , 各种请求.打开一个网站可能有几十到几百个请求. 从而服务器端会反馈各种因应不同请求生成的数据. 我们 ...

  4. android应用js

    http://blog.csdn.net/carson_ho/article/details/64904691 通过 WebViewClient 的方法shouldOverrideUrlLoading ...

  5. Ubuntu14.04下如何安装Python爬虫框架Scrapy

    按照官方文档的说明,安装scrapy 需要以下程序或者库: (1).Python 2.7 (2).lxml. Most linux distributions ships PRepackaged ve ...

  6. SQL Server ->> Database Snapshot(数据块快照)

    Comming soon!!! 参考文献: View the Size of the Sparse File of a Database Snapshot 数据库快照 (SQL Server) 创建数 ...

  7. C++11标准之右值引用(rvalue reference)

    1.右值引用引入的背景 临时对象的产生和拷贝所带来的效率折损,一直是C++所为人诟病的问题.但是C++标准允许编译器对于临时对象的产生具有完全的自由度,从而发展出了Copy Elision.RVO(包 ...

  8. drag与drop事件

    为了支持网页上一些元素的拖动效果,可以使用drag和drog事件. 目前ie 5.0+, firefox 3.5+等都支持这些事件,ECMA Script第5版正式将其纳入标准. 对于被拖动的元素来说 ...

  9. [翻译] NimbusKit

    注意:NimbusKit 是Github上iOS部分开源库排名前20中的一员. http://nimbuskit.info/ https://github.com/jverkoey/nimbus ht ...

  10. QT的定时器使用

    http://blog.csdn.net/steven6977/article/details/9310997