书名

"学徒"=>"忍者"

性能分析

console.time('sss')
console.timeEnd('sss')

函数

函数是第一类对象

通过字面量创建
function minjaFunction(){} 在变量或数组或者对象中的函数 let obj = {
name: 'zhangsan',
age() {
return 1
}
};
let arr = [1, 2, 3, 4, () => {
return 1;
}];
let nums=()=>{} 作用函数的参数来传递(高阶函数) add=(x,y,f)=>{
return f(x)+f(y)
};
add(1,3,x=>x); 作用函数的返回值(闭包) add=()=>{
let a=1;
return ()=>{
console.log(a)
}
} 具有动态创建和分配的属性(回调函数) var add=function(){
console.log(add.age);
};
add.age='zhangsan';
add(); 回调函数
函数作用另一个函数的参数,随后通过参数来调用该函数
function useless(nin){
return nin();
}

函数和对象的唯一区别

函数是可调用的,函数会被调用执行某项动作或者功能

纯函数缓存??

定义函数的方式

函数声明
function myFunction(){} 箭头函数(lambda函数)
item=>item*2 函数构造函数
let add=new Function('a','b','return a+b')
console.log(add(1, 3)); 生成器构造函数 function* myGen(){
yield 1;
} let a = myGen();
console.log(a.next()); 函数表达式
let a=()=>{} 立即执行函数
()()
+function(){}();
-function(){}();
!function(){}();
~function(){}();

函数的实参+形参

形参是定义的时候传递的变量
实参是调用的时候传递的变量 剩余参数
...
默认参数
a=(a,b=0)=>{}

函数调用

this: 调用函数的上下文对象

arguments 参数表示函数调用过程中传递的所有参数
... 代替了arguments要做的事
let a=(...b)=>{console.log(b)} //箭头函数没有arguments function a(){
console.log(Array.from(arguments));
}
> argumeng.length
> arguments是个伪数组 function fun(a = 3) {
arguments[0]=133;
console.log(a);
}
fun(10);//10
arguments只看调用的参数 调用函数的四种方式
* 作用函数
> func() 直接调用
> 作用函数被调用 this->window
* 作为方法
> a.func() 关联在一个对象上,实现面向对象编程
> 作用方法被调用,this-> 这个对象
* 构造函数
> new func() 实例化一个新的对象
> new 调用函数会触发
> 创建一个新的空对象
> 该对象作用this参数传递给构造函数
> 新构造的对象作为new运算符的返回值 * 通过函数的apply和call
> func.apply(null,[a,b])
> func.call(null,a,b)
* 通过bind() 改变this的指向 需要在后面加上() 让他执行

..........................................................................................................................................................

最新文章

  1. java的栈图形演示
  2. JAVA中int、String的类型转换
  3. 【转】libevent源码分析
  4. UNIX命令,统计当前目录(含子目录)下所有后缀为.log的文件中ERROR出现的行数
  5. Gradle系列教程之依赖管理(转)
  6. Linux时间不准确的问题![转]
  7. Codeforces Gym 100114 A. Hanoi tower 找规律
  8. 关于Excel中的需求或者是用例导入到QC中遇到的问题
  9. SpringBoot优化内嵌的Tomcat
  10. python成长之路10——socketserver源码分析
  11. 对dpkg: error processing package xxx (--configure) 的处理
  12. GuideActivity.java引导界面:
  13. S3C2440时钟系统详解
  14. Java大小写转化
  15. python通过Cookie跳过登录验证码
  16. CRM 常用SQL 脚本
  17. 使用cnpm install提示package not found
  18. 剑指offer——面试题19:正则表达式匹配
  19. 关于echart没有数据显示暂无数据
  20. 轻量级自动化运维工具Fabric的安装与实践

热门文章

  1. Python学习笔记之将数据写入到文件中
  2. 阻止鼠标右键和F5刷新
  3. TinyMCE基础配置
  4. docker 部署mysql redis
  5. c# 根据域名的到对应的IP
  6. ffmpeg 基本数据结构和对象(一): AVPacket、AVPicture、AVFrame
  7. MySQL 中操作excel表格总结
  8. AI-数据标注类型
  9. maven仓库报错 sqljdbc4、ojdbc6、tomcat-jdbc-8.5.14
  10. 混合高斯模型(Gaussian mixture model, GMM)