javascript 忍者秘籍读书笔记
书名
"学徒"=>"忍者"
性能分析
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的指向 需要在后面加上() 让他执行
..........................................................................................................................................................
决定自己的高度的是你的态度,而不是你的才能
记得我们是终身初学者和学习者
总有一天我也能成为大佬

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2018-05-06 VScode 光标乱跳