笔者自身是混了3年的前端开发,但是代码质量偏差,并且基础不扎实,所以在最近一次辞职后决定从头开始学习一遍温故知新,并且刚好遇到《JavaScript百炼成仙》这本书,决定通过这本书来巩固自身,读出来的感悟可能会让一些同行们对笔者产生鄙视,不过笔者觉得还是有必要记录一下,不喜请退出,
window.close()感谢
数据类型
- 原生数据类型
- number型
- String型
- Boolean型
- null
- undefined
- 对象数据类型
- object
数组Api
Arr[i]Arr.push(data)Arr.pop()删除数组的最后一项,会改变原数组Arr.splice(arg1,arg2,arg3)- arg1是代表从数组的第几项开始查询
- arg2是表示查询多少个
- arg3是选传参数,可用于插入,不传可以删除前面选中的那几项
Arr.join(data)根据传入的data作为分隔符将数组转成字符串并用data拼接
函数
function myFun () {}var a = function () {}- 以上两种声明函数的方式有一定的区别,第一种会直接被定义,所以在代码里面会有全局提升的能力,但是第二种是最开始先执行了
var a,在编译器里面会先进行声明变量操作,所以只有var会被全局提升,而匿名函数的加载是通过被赋值去定义的,所以函数并不会被全局提升
此处可以参考JavaScript的编译原理 1. 分词 2. 解析 解析后生成了语法树(AST)然后编译js,然后才开始运行js,AST内部有十分详细的代码编译后的结构 3. 代码生成
- 参数
arguments伪数组是函数内部自身的属性- 具有length属性
- 按索引方式存储数据
- 不具有数组的方法, 比如push(),pop()等 可以通过查询arguments来得知传入的所有参数,包括多传入的实参也可以在里面查询到,用于维护代码
目前就看了这么多,由于手记笔记的字实在是太惨不忍睹了,所以上传到掘金